使用 Kerberos 进行身份验证时登录错误

yog*_*sma 5 websphere kerberos active-directory spnego gssapi

我们正面临一个有趣的问题。用户使用 Kerberos 身份验证登录到应用程序。有几次他们成功了,但突然他们的用户登录信息面临锁定,他们在屏幕上看到下面的错误

Login error: com.ibm.security.krb5.KrbException, status code: 24
    message: Pre-authentication information was invalid
Stack Trace : 
javax.security.auth.login.FailedLoginException: Login error: com.ibm.security.krb5.KrbException, status code: 24
    message: Pre-authentication information was invalid
    at com.ibm.security.jgss.i18n.I18NException.throwFailedLoginException(I18NException.java:33)
    at com.ibm.security.auth.module.Krb5LoginModule.a(Krb5LoginModule.java:457)
    at com.ibm.security.auth.module.Krb5LoginModule.b(Krb5LoginModule.java:377)
    at com.ibm.security.auth.module.Krb5LoginModule.login(Krb5LoginModule.java:200)
    at sun.reflect.GeneratedMethodAccessor36.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
    at java.lang.reflect.Method.invoke(Method.java:620)
    at javax.security.auth.login.LoginContext.invoke(LoginContext.java:781)
    at javax.security.auth.login.LoginContext.access$000(LoginContext.java:215)
    at javax.security.auth.login.LoginContext$4.run(LoginContext.java:706)
    at javax.security.auth.login.LoginContext$4.run(LoginContext.java:704)
    at java.security.AccessController.doPrivileged(AccessController.java:452)
Run Code Online (Sandbox Code Playgroud)

当我们重新启动 websphere 应用程序服务器时,一切都对相同的用户有效,直到他们再次面临问题。我们试图检查日志并更改密钥表文件,但没有任何效果。有没有人遇到过这个问题?

oli*_*erg 5

它可能与时间 (NTP) 问题有关。

据我所知,Kerberos 预身份验证使用时间戳(生成一次性密码),因此我敢打赌 NTP 问题可能会导致此类问题。

此外,我认为未销毁凭据可能会导致此类问题(例如,用户未正确注销)

检查您的所有服务器(运行应用程序的应用程序服务器以及 Kerberos KDC)是否与 NTP 服务器同步并具有完全相同的时间。