Tomcat Internet Explorer kerberos身份验证401未授权

时间:2016-01-11 10:54:18

标签: active-directory tomcat7 single-sign-on windows-authentication kerberos

我们使用kerberos(我们想要SSO)配置tomcat以使用Windows身份验证 通过Internet Explorer从不同的客户端计算机发送HTTP Get,浏览器返回401,标题为Negotiate 我们将Internet Explorer配置为使用集成安全性,并将tomcat站点地址添加为本地Intranet。

在tomcat日志中,我看到:

Loaded from Java config
>>> KdcAccessibility: reset
>>> KrbCreds found the default ticket granting ticket in credential cache.
>>> Obtained TGT from LSA: Credentials:
  client=wfuser@MY.DOM
  server=krbtgt/MY.DOM@MY.DOM
  authTime=20160111063609Z
  startTime=20160111063609Z
  endTime=20160111163609Z
  renewTill=null
  flags=INITIAL;PRE-AUTHENT
  EType (skey)=17
  (tkt key)=18
  Search Subject for SPNEGO ACCEPT cred (<<DEF>>, sun.security.jgss.spnego.SpNegoCredElement)
Search Subject for Kerberos V5 ACCEPT cred (<<DEF>>, sun.security.jgss.krb5.Krb5AcceptCredential)
Found ticket for wfuser@MY.DOM to go to krbtgt/NIA.DOM@MY.DOM expiring on Mon Jan 11 18:36:09 IST 2016

可能是什么问题?这是一个互联网浏览器问题吗?或者tomcat问题?

1 个答案:

答案 0 :(得分:1)

客户端和Tomcat服务器似乎位于不同的Kerberos领域(由于您标记帖子的方式,我将假设由Active Directory控制)。也就是说,Active Directory域客户端在MY.DOM中,但在NIA.DOM中是Tomcat服务器。为了使其按照您的预期工作,他们需要处于相同的AD域/ Kerberos领域。根据日志片段,客户端和KDC显示在同一个领域 - MY.DOM - 根据这个:

>>> Obtained TGT from LSA: Credentials:
  client=wfuser@MY.DOM
  server=krbtgt/MY.DOM@MY.DOM

但Tomcat服务器一定不能,因为它似乎要求客户端提供来自名为NIA.DOM的Kerberos域的推荐票。

Found ticket for wfuser@MY.DOM to go to krbtgt/NIA.DOM@MY.DOM expiring on Mon Jan 11 18:36:09 IST 2016

检查MY.DOM和NIA.DOM之间的AD信任关系,并确保它是双向的而不是破坏。