5

Windows Server 2008 で ActiveDirectory を使用して kerberos で統合 Windows 認証をセットアップしようとしていますが、すべてが正常に機能し、ログインに成功すると kerberos チケットを取得できます。このチケットを Apache が構成されているサーバーに転送する際に問題に直面しています。チケット転送時に KRB5CCNAME が Apache/PHP 環境変数に設定されていません。

私のケルベロス構成ファイル(krb5.conf)は

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = DIVAMI.COM
 default_keytab_file = /etc/krb5.keytab
 dns_lookup_realm = true
 dns_lookup_kdc = true
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 DIVAMI.COM = {
  kdc = meluha.divami.com:88
  admin_server = meluha.divami.com:749
  default_domain = divami.com
 }

[domain_realm]
meluha.divami.com = DIVAMI.COM
divami.com = DIVAMI.COM

Apache mod_auth_kerb 設定ファイル(auth_kerb)は

<Location /perfmon>
  AuthType Kerberos
  AuthName "Kerberos Login"
  KrbMethodNegotiate On
  KrbMethodK5Passwd Off
  KrbAuthRealms DIVAMI.COM
  Krb5KeyTab /etc/httpd/conf.d/apache.keytab
  KrbSaveCredentials On
  KrbServiceName HTTP/greenplum.divami.com
  require valid-user
  ErrorDocument 404 "No favicon"

</Location>

ブラウザ構成

ファイアフォックス

Set network.negotiate-auth.delegation-uris to greenplum.divami.com.
Set network.negotiate-auth.trusted-uris to greenplum.divami.com

IE

 In Internet Explorer, select Tools > Internet Options.
 In the Local Internet (Advanced) dialog box, enter all relative domain names that will be used on the intranet (e.g. greenplum.divami.com).

KrbMethodK5Passwd をオンに設定すると、有効な資格情報チケットを提供する際に kerberos のユーザー名とパスワードを求めるブラウザー プロンプトが生成され、キャッシュされた場所が Apache/PHP 環境変数 KRB5CCNAME に設定されます。この変数 KRB5CCNAME を使用すると、認証用の資格情報として転送される kerberos チケットを使用できます。

KrbMethodK5Passwd をオフにすると、次のエラー メッセージが表示されます。

[Wed Sep 25 18:48:11 2013] [debug] src/mod_auth_kerb.c(1939): [client 10.81.17.156] kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
[Wed Sep 25 18:48:11 2013] [debug] src/mod_auth_kerb.c(1939): [client 10.81.17.156] kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
[Wed Sep 25 18:48:11 2013] [debug] src/mod_auth_kerb.c(1278): [client 10.81.17.156] Acquiring creds for HTTP/greenplum.divami.com
[Wed Sep 25 18:48:11 2013] [debug] src/mod_auth_kerb.c(1691): [client 10.81.17.156] Verifying client data using KRB5 GSS-API
[Wed Sep 25 18:48:11 2013] [debug] src/mod_auth_kerb.c(1707): [client 10.81.17.156] Client didn't delegate us their credential
[Wed Sep 25 18:48:11 2013] [debug] src/mod_auth_kerb.c(1726): [client 10.81.17.156] GSS-API token of length 180 bytes will be sent back
plum.divami.com/perfmon/login.php
[Wed Sep 25 18:48:11 2013] [debug] src/mod_auth_kerb.c(1691): [client 10.81.17.156] Verifying client data using KRB5 GSS-API , referer:http://greenplum.divami.com/perfmon/login.php

ブラウザが kerberos チケットの選択に失敗したのか、ブラウザがチケットを選択したが、KRB5CCNAME にキャッシュされた場所を設定できないのか、私にはわかりません。この問題を解決するのを手伝ってください。

4

1 に答える 1