Single sign on WWW身份验证不使用Kerberos(仅NTLM)

Single sign on WWW身份验证不使用Kerberos(仅NTLM),single-sign-on,kerberos,ntlm,Single Sign On,Kerberos,Ntlm,我在为intranet网站设置SSO时遇到问题。目前我正在使用Tomcat 8.0和。它们工作得很好,但只有一个问题:浏览器(Firefox和IE在按照描述应用了设置之后)不能进行Kerberos身份验证,只有NTLM 我用Wireshark分析了流量,Tomcat发送http头字段“WWW-Authenticate”,浏览器回答头字段“Authentication”中包含NTLMSSP的base64编码字符串。我想这不是Kerberos,是吗 我读过一篇帖子(),为了让Kerberos工作,必

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

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

我读过一篇帖子(),为了让Kerberos工作,必须使用命令setspn.exe在AD中注册服务器。 我试图为setspn()获取正确的语法,但没有任何运气。 服务器具有以下参数:

  • IP:10.0.0.1

  • 服务:Tomcat Http

  • 端口:8080

  • Accountname:company net\foobar

我将此命令用于setspn:

setspn -A "HTTP/10.0.0.1:8080 company-net\foobar"
但这不管用。服务器和客户端都在同一个Windows域中,使用Windows 10

怎么了

我还需要什么吗?

Kerberos依赖DNS(有效主机名)和SPN来运行。看起来到目前为止你已经做了一些研究,这很好。不太为人所知的是,当您将一个工作正常的Kerberos客户端指向主机的IP而不是DNS主机名时,Kerberos将被绕过,而将使用回退身份验证机制—在本例中为NTLM

Michael-O,本论坛的顶级Kerberos贡献者:

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


就是这个。不支持IP地址。除了他们现在,在Win 10 1507+中感谢您的帮助。弄清楚这个IP地址是不允许的,这会花费我很多时间。我刚刚读到,Windows 10禁用了注册表项allowtgtsessionkey(,),因此我们必须使用Windows SSPI API(华夫格,使用C访问安全上下文),并且可以忘记纯Java解决方案,如JGSS、JAAS或SPNEGO。你注意到了吗?