按IP地址访问受Kerberos保护的站点时出现问题。 例如:
http:/10.10.1.x:3001/
失败。
http:/my-host:3001/
sso已成功完成。
Apache错误日志说:
src / mod_auth_kerb.c(1261):[client 10.10.1.x]获取信用证 HTTP@10.10.1.x [client 10.10.1.x] gss_acquire_cred()失败: 未指定的GSS故障。次要代码可能会提供更多信息(密钥 表格条目未找到)
src / mod_auth_kerb.c(1261):[客户10.10.1.x获取信用证 HTTP @ my-host [debug] src / mod_auth_kerb.c(1407):[client 10.10.1.x] 使用KRB5 GSS-API验证客户端数据[debug] src / mod_auth_kerb.c(1423):[client 10.10.1.x]返回验证 代码0
您可以看到Kerberos尝试查找HTTP@10.10.1.x
或HTTP@my-host
主体。两个主体都在ActiveDirectory中创建了虚拟帐户。在keytab文件中还包括它们:
KVNO Timestamp Principal
---- ----------------- -----------------------------------------------------
5 01/01/70 03:00:00 HTTP/10.10.1.x@MY_DOMAIN.LAN (ArcFour with HMAC/md5)
11 09/04/12 12:03:01 HTTP/my-host@MY_DOMAIN.LAN (ArcFour with HMAC/md5)
Kinit适用于他们两个。
服务器上的Kerberos配置:
Krb5Keytab /etc/krb5.keytab
AuthType Kerberos
KrbMethodNegotiate On
AuthName "Kerberos Login"
KrbAuthRealms MY_DOMAIN.LAN
KrbVerifyKDC Off
KrbMethodK5Passwd On
Require valid-user
有人可以猜到问题出在哪里?是否可以在Kerberos SSO中使用IP地址?
答案 0 :(得分:9)
Kerberos不支持IP地址,它仅依赖于域名和正确的DNS条目。
答案 1 :(得分:1)
在微软知识库文章中,它说的是设计:
https://support.microsoft.com/en-ca/kb/322979
以上KB的标题是: 使用IP地址
连接到SMB共享时不使用Kerberos答案 2 :(得分:0)
我意识到这是一个非常的旧线程,但这是所有相关搜索的首选。我认为值得注意的是Microsoft has recently added Kerberos client support using IPv4 and IPv6.
从Windows 10版本1507和Windows Server 2016开始, 可以将Kerberos客户端配置为支持IPv4和IPv6主机名 在SPN中。
为减少禁用NTLM的影响,引入了一项新功能 允许管理员使用IP地址作为服务中的主机名 主体名称。通过以下方式在客户端上启用此功能 注册表项值。
由于这是一个客户端修补程序,因此您的Kerberos客户端必须正在运行相应版本的Windows,并收到TryIPSPN注册表项。您的服务还必须在Active Directory中注册有基于IP的SPN。