我正在尝试在 tomcat 服务器上使用 spnego 在我们的网络中实现 kerberos SSO。
我们在域上创建了一个帐户 (TCNKRBGINA) 用于预身份验证,并将其设置到 http 服务器:
Setspn -A HTTPS/testtech.etat-ge.ch TCNKRBGINA
Setspn -A HTTP/testtech.etat-ge.ch TCNKRBGINA
Run Code Online (Sandbox Code Playgroud)
但是客户端(IE 或 Firefox)发送的是 NTLM 令牌而不是 kerberos 票证。
问题似乎不在服务器端,因为当没有发送 Authorization 标头时,它会正确返回带有WWW-Authenticate: Negotiate标头的 401 状态代码。在服务器有机会联系域控制器之前,客户端发送的下一个请求包含 NTLM 令牌。