2013-11-27 3 views
2

Я устанавливаю Tomcat для использования аутентификации SPNEGO, поэтому пользователи могут использовать Single-Sign-On для наших веб-приложений без ввода пароля, и все работает нормально. Вчера я изменил пароль учетной записи службы, и я воссоздал файл keytab, но после того, как Tomcat перезапустил SSO, он отказался работать. В журналах я нашел:Ошибка аутентификации Kerberos/Spnego после изменения пароля

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) 

Поскольку конфигурация должна быть хорошо я не знаю, почему я получаю эту ошибку ... Может быть что-то связано с билетом выдачи билетов, что не обновляется?

ответ

1

Одна из возможностей - это люди, у которых были выдающиеся служебные билеты, выданные со старым паролем. Если вы обновили keytab, но не сохранили старый ключ в keytab, вы ожидаете, что любой, кто не выйдет из системы и не войдет в систему, чтобы обновить свои билеты и у кого были служебные билеты для ваших услуг, чтобы сгенерировать эту ошибку. Если он будет работать, если вы получите совершенно новый TGT на стороне клиента (скажем, полностью войдя в систему из Windows и войдя в систему), это то, что происходит. Если это не сработает, отредактируйте свой вопрос, чтобы добавить подробности, и я расскажу о других неудачах в другом ответе.

Смежные вопросы