我正在尝试使用apache使用these说明设置Active Directory Kerberos身份验证。
我希望apache能够在没有apache机器通过Samba加入域的情况下对AD进行身份验证。我对Kerberos的理解是我的apache服务器不需要加入域(我认为上面的说明只是为了能够轻松生成keytab)。
但事实上,如果我让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测试所有名称都可以解决问题。任何人都可以解释为什么这不起作用?
答案 0 :(得分:2)
删除计算机帐户(Kerberos数据库中找不到服务器)后,将删除此主机的SPN。最好的方法是:
$ net ads join
$ net ads keytab add HTTP
等待所有DC复制,你的问题就会消失。
换句话说:除非没有为该计算机帐户注册SPN,否则您将失败并显示上述消息。有关错误0x7,请参阅here。