WWW-Authenticate 不适用于 Kerberos(仅 NTLM)

WWW-Authenticate not working with Kerberos (only NTLM)

我在为 Intranet 网站设置 SSO 时遇到问题。目前我正在使用 Tomcat 8.0 和 Waffle 1.8.4. They work great, but there is only 1 problem: the browsers (Firefox and IE after the settings were applied as described here and here) 无法进行 Kerberos 身份验证,只能进行 NTLM。

我用 Wireshark 分析了流量,Tomcat 发送了 http 头字段 "WWW-Authenticate" 并且浏览器在头字段 "Authentication" 中回答了一个 base64 编码的字符串,包含 NTLMSSP。我想这不是 Kerberos,是吗?

我读了一个 post (WWW-Authenticate uses NTLM and not Kerberos),要使 Kerberos 工作,必须使用命令 setspn.exe 在 AD 中注册服务器。 我试图获得 setspn (described here) 的正确语法,但没有任何运气。 服务器具有以下参数:

我将此命令用于 setspn:

setspn -A "HTTP/10.0.0.1:8080 company-net\foobar"

但不起作用。服务器和客户端都在同一个Windows域,使用Windows10.

有什么问题吗?

我还需要什么吗?

Kerberos 依靠 DNS(有效主机名)和 SPN 来运行。到目前为止,您似乎已经做了一些研究,这很好。鲜为人知的是,当您将原本运行良好的 Kerberos 客户端指向主机的 IP,而不是指向它的 DNS 主机名时,Kerberos 将被绕过,并且将采用回退身份验证机制 - NTLM案件。

Michael-O,本论坛的顶级 Kerberos 贡献者,said it best with his answer about this back in 2012

Kerberos does not work with IP adresses, it relies on domain names and correct DNS entries only.