WWW身份验证不适用于Kerberos(仅适用于NTLM)

时间:2018-11-13 15:14:00

标签: single-sign-on kerberos ntlm

我在为Intranet网站设置SSO时遇到问题。目前,我正在使用Tomcat 8.0和Waffle 1.8.4。它们工作得很好,但是只有一个问题:浏览器(按herehere所述应用设置后的Firefox和IE)不能进行Kerberos身份验证,只能进行NTLM。

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

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

  • IP:10.0.0.1

  • 服务:Tomcat-Http

  • 端口:8080

  • 帐户名:company-net \ foobar

我将以下命令用于setpn:

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

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

这是怎么了?

我还需要其他东西吗?

1 个答案:

答案 0 :(得分:0)

Kerberos依靠DNS(有效主机名)和SPN起作用。到目前为止,您似乎已经做了一些研究,这很好。众所周知的是,当您将一个本可以正常运行的优良Kerberos客户端指向主机的IP,而不是其DNS主机名时,将绕过Kerberos,而将使用后备身份验证机制-NTLM案件。

Michael-O,该论坛的最大Kerberos贡献者,said it best with his answer about this back in 2012

  

Kerberos不适用于IP地址,它依赖于域名和   仅正确的DNS条目。