我在为Intranet网站设置SSO时遇到问题。目前,我正在使用Tomcat 8.0和Waffle 1.8.4。它们工作得很好,但是只有一个问题:浏览器(按此处和此处所述应用设置后的Firefox和IE )不能进行Kerberos身份验证,只能进行NTLM。
我用Wireshark分析了流量,Tomcat发送了http
头字段“ WWW-Authenticate”,浏览器在头字段“ Authentication”中回答了包含NTLMSSP的base64编码的字符串。我想这不是Kerberos,不是吗?
我读了一篇文章(WWW-Authenticate使用NTLM而不是Kerberos),要使Kerberos正常工作,必须使用命令setspn.exe在AD中注册服务器。我尝试为setspn(在此描述)获取正确的语法,但是没有任何运气。服务器具有以下参数:
IP:10.0.0.1
服务:Tomcat-Http
端口:8080
帐户名:company-net \ foobar
我对setspn使用此命令:
setspn -A "HTTP/10.0.0.1:8080 company-net\foobar"
但不起作用。使用Windows 10,服务器和客户端都在同一Windows域中。
怎么了
我还需要其他东西吗?
Kerberos依靠DNS(有效主机名)和SPN起作用。到目前为止,您似乎已经做了一些研究,这很好。众所周知的是,当您将一个本可以正常运行的优良Kerberos客户端指向主机的IP,而不是其DNS主机名时,将绕过Kerberos,而将使用后备身份验证机制-NTLM案件。
该论坛的最大Kerberos贡献者Michael-O最好的回答是在2012年:
Kerberos不适用于IP地址,它仅依赖域名和正确的DNS条目。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句