【发布时间】:2016-04-15 15:42:04
【问题描述】:
我们将 tomcat 配置为使用 kerberos 进行 Windows 身份验证(我们需要 SSO)。
我们通过 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
可能是什么问题?这是 Internet Explorer 的问题吗?或者可能是tomcat问题?
【问题讨论】:
-
您是否检查过浏览器发回“授权”请求标头的 HTTP 跟踪(如 liveHTTPHeaders 插件)。在日志中看到的 'TGT' 由 Tomcat 本身使用......请参阅您的其他帖子
-
您能告诉我们您的 login.conf 文件/设置吗? docs.oracle.com/javase/7/docs/jre/api/security/jaas/spec/com/…
-
根据您的输出感觉有些不对劲。 Tomcat 必须为机器帐户使用 keytab,或者如果在 Windows 上运行,则必须访问机器帐户的凭据缓存。您的日志文件中没有发生任何事情。除非您显示异常和更多日志输出,否则无法为您提供帮助。
标签: active-directory tomcat7 single-sign-on windows-authentication kerberos