我将 Tomcat 设置为使用 SPNEGO 身份验证,因此用户无需输入密码即可单点登录到我们的 Web 应用程序,并且一切正常。 昨天我更改了服务帐户的密码并重新创建了 keytab 文件但是在 Tomcat 重新启动后 SSO 停止工作。 在我发现的日志中:

 exception [GSSException: Failure unspecified at GSS-API level (Mechanism level: Checksum failed)] with root cause 
java.security.GeneralSecurityException: Checksum failed 
        at sun.security.krb5.internal.crypto.dk.ArcFourCrypto.decrypt(ArcFourCrypto.java:388) 
        at sun.security.krb5.internal.crypto.ArcFourHmac.decrypt(ArcFourHmac.java:74) 
        at sun.security.krb5.internal.crypto.ArcFourHmacEType.decrypt(ArcFourHmacEType.java:83) 
        at sun.security.krb5.internal.crypto.ArcFourHmacEType.decrypt(ArcFourHmacEType.java:77) 
        at sun.security.krb5.EncryptedData.decrypt(EncryptedData.java:168) 
        at sun.security.krb5.KrbApReq.authenticate(KrbApReq.java:267) 
        at sun.security.krb5.KrbApReq.<init>(KrbApReq.java:134) 
       at sun.security.jgss.krb5.InitSecContextToken.<init>(InitSecContextToken.java:79) 
        at sun.security.jgss.krb5.Krb5Context.acceptSecContext(Krb5Context.java:724) 
        at sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:323) 
        at sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:267) 
        at sun.security.jgss.spnego.SpNegoContext.GSS_acceptSecContext(SpNegoContext.java:874) 
        at sun.security.jgss.spnego.SpNegoContext.acceptSecContext(SpNegoContext.java:541) 
        at sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:323) 
        at sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:267) 
        at net.sourceforge.spnego.SpnegoAuthenticator.doSpnegoAuth(SpnegoAuthenticator.java:444) 
        at net.sourceforge.spnego.SpnegoAuthenticator.authenticate(SpnegoAuthenticator.java:283) 

由于配置应该没问题,我不知道为什么会出现此错误...可能与未刷新的票证授予票证有关吗?

请您参考如下方法:

一种可能性是那些持有使用旧密码签发的未完成服务票的人。如果您重新生成了 keytab 但没有在 keytab 中保留旧 key ,您会期望没有注销并登录的任何人刷新他们的票证,并且拥有您服务的服务票证的人会生成该错误。如果您在客户端获得一个全新的 TGT(例如通过完全退出 Windows 并重新登录),如果它有效,那就是正在发生的事情。如果这不起作用,请编辑您的问题以添加详细信息,我将在另一个答案中探讨其他失败的原因。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!