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

时间:2017-03-02 19:26:59

标签: active-directory websphere kerberos 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)

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

1 个答案:

答案 0 :(得分:4)

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

据我所知,Kerberos preauthentification使用时间戳(生成一次性密码),所以我敢打赌NTP问题可能会导致这类问题。

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

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