我正在尝试使用 tomcat 服务器上的 spnego 在我们的网络中实现 kerberos SSO。
我们已经在域上创建了一个帐户(TCNKRBGINA)用于预认证,并将其 setspn 到 http 服务器:
Setspn -A HTTPS/testtech.etat-ge.ch TCNKRBGINA
Setspn -A HTTP/testtech.etat-ge.ch TCNKRBGINA
但是客户端(IE 或 Firefox)发送的是 NTLM 令牌而不是 kerberos 票证。
问题似乎不在服务器端,因为当没有发送授权标头时,它会正确返回带有WWW-Authenticate: Negotiate
标头的 401 状态代码。在服务器有机会联系域控制器之前,客户端发送的下一个请求包含 NTLM 令牌。
答案1
明白了,感谢 wireshark。服务器名称 testtech.etat-ge.ch 在 DNS 中定义为 bleutest.ceti.etat-ge.ch 的别名。看来 kerberos 使用的名称是通过反向查找获得的。