-1

これらの手順を使用して、Apache で Active Directory Kerberos 認証を設定しようとしています。

apache マシンが Samba 経由でドメインに参加することなく、apache が AD に対してユーザーを認証できるようにしたいと考えています。Kerberos についての私の理解では、Apache サーバーがドメインに参加する必要はないはずです (上記の手順では、キータブを簡単に生成できるようにするためだけにそれを行っていると思いました)。

しかし、実際には、apache ホストがドメインを離れると機能しません。結合されている限り、正常に機能します。離れて保護された URL にアクセスしようとすると、資格情報を求められますが、入力した資格情報は受け入れられません。その場合、Apache ログに表示される内容は次のとおりです。

[Wed Mar 27 12:33:38 2013] [debug] src/mod_auth_kerb.c(1939): [client 192.168.201.52] kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
[Wed Mar 27 12:33:43 2013] [debug] src/mod_auth_kerb.c(1939): [client 192.168.201.52] kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
[Wed Mar 27 12:33:43 2013] [debug] src/mod_auth_kerb.c(1031): [client 192.168.201.52] Using HTTP/centosjb.iga.local@ABC.LOCAL as server principal for password verification
[Wed Mar 27 12:33:43 2013] [debug] src/mod_auth_kerb.c(735): [client 192.168.201.52] Trying to get TGT for user myuser@ABC.LOCAL
[Wed Mar 27 12:33:44 2013] [debug] src/mod_auth_kerb.c(645): [client 192.168.201.52] Trying to verify authenticity of KDC using principal HTTP/centosjb.iga.local@ABC.LOCAL
[Wed Mar 27 12:33:44 2013] [debug] src/mod_auth_kerb.c(660): [client 192.168.201.52] krb5_get_credentials() failed when verifying KDC
[Wed Mar 27 12:33:44 2013] [error] [client 192.168.201.52] failed to verify krb5 credentials: Server not found in Kerberos database
[Wed Mar 27 12:33:44 2013] [debug] src/mod_auth_kerb.c(1110): [client 192.168.201.52] kerb_authenticate_user_krb5pwd ret=401 user=(NULL) authtype=(NULL)

これが私のkrb5.confファイルです(ログファイルの部分は省略しました):

[libdefaults]
 default_realm = ABC.LOCAL
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 ABC.LOCAL = {
  kdc = labdc12.abc.local
  admin_server = labdc12.abc.local
 }

[domain_realm]
 .abc.local = ABC.LOCAL
 abc.local = ABC.LOCAL

「サーバーが見つかりません」というメッセージに基づいて、DNSの問題と同じくらい単純なものかもしれないと感じました...つまり、Apacheホストがドメインに参加している場合にのみ解決できるものがあります。しかし、すべての名前を ping でテストすると問題なく解決されます。これがうまくいかない理由を誰か説明できますか?

4

1 に答える 1

2

このホストの SPN は、マシン アカウントの削除と共に削除されます (サーバーが Kerberos データベースに見つかりません)。最善の方法は次のとおりです。

$ net ads join
$ net ads keytab add HTTP

それがすべての DC にレプリケートされるのを待つと、問題が解決するはずです。

つまり、そのマシン アカウントに SPN が登録されていない場合を除き、上記のメッセージで失敗します。エラー 0x7については、こちらを参照してください。

于 2013-03-27T21:35:33.307 に答える