de contrôle ont échoué: Kerberos / Printemps / Active Directory (2008)

Nous rencontrez des difficultés à obtenir Kerberos/authentification AD de travailler avec un Printemps webapp, et je crois que le problème a à voir avec les types de chiffrement pour les tickets Kerberos et l'Active Directory niveau fonctionnel du domaine.

La configuration de base est:

J'ai un environnement où l'Active Directory niveau fonctionnel de domaine Windows Server 2003 et tout fonctionne bien, avec des clients de l'authentifier comme prévu, s'ils sont enregistrés sur le domaine. À l'aide de kerbtray pour examiner les billets dans cet environnement, je peux voir qu'ils ont tous les deux billets du type de chiffrement et la clé de chiffrement de type "RSADSI RC4-HMAC".

J'ai un nouveau domaine avec le niveau fonctionnel Windows Server 2008, et c'est là que l'authentification ne fonctionne pas. La demande de retour d'erreur lorsque vous tentez de valider le billet est:

Kerberos validation not successful...
Caused by: GSSException: Failure unspecified at GSS-API level (Mechanism level: Checksum failed)
at sun.security.jgss.krb5.Krb5Context.acceptSecContext(Unknown Source)
at sun.security.jgss.GSSContextImpl.acceptSecContext(Unknown Source)
at sun.security.jgss.GSSContextImpl.acceptSecContext(Unknown Source)
at sun.security.jgss.spnego.SpNegoContext.GSS_acceptSecContext(Unknown Source)
at sun.security.jgss.spnego.SpNegoContext.acceptSecContext(Unknown Source)
at sun.security.jgss.GSSContextImpl.acceptSecContext(Unknown Source)
at sun.security.jgss.GSSContextImpl.acceptSecContext(Unknown Source)
at org.springframework.security.extensions.kerberos.SunJaasKerberosTicketValidator$KerberosValidateAction.run(SunJaasKerberosTicketValidator.java:146)
at org.springframework.security.extensions.kerberos.SunJaasKerberosTicketValidator$KerberosValidateAction.run(SunJaasKerberosTicketValidator.java:136)
... 34 more
Caused by: KrbException: Checksum failed
at sun.security.krb5.internal.crypto.ArcFourHmacEType.decrypt(Unknown Source)
at sun.security.krb5.internal.crypto.ArcFourHmacEType.decrypt(Unknown Source)
at sun.security.krb5.EncryptedData.decrypt(Unknown Source)
at sun.security.krb5.KrbApReq.authenticate(Unknown Source)
at sun.security.krb5.KrbApReq.<init>(Unknown Source)
at sun.security.jgss.krb5.InitSecContextToken.<init>(Unknown Source)
... 43 more
Caused by: java.security.GeneralSecurityException: Checksum failed
at sun.security.krb5.internal.crypto.dk.ArcFourCrypto.decrypt(Unknown Source)
at sun.security.krb5.internal.crypto.ArcFourHmac.decrypt(Unknown Source)

La trace de la pile de montre "ArcfourCrypto.décrypter" donc, vraisemblablement, est de traiter le ticket Kerberos comme RC4-HMAC. À l'aide de kerbtray à nouveau pour examiner les billets de ce temps, il ya 2 billets sur le client pour le domaine: krbtgt/.COM. Les deux billets ont la clé de chiffrement de type RSADS1 RC4-HMAC, on a aussi cette pour billet type de cryptage, mais l'autre a "Kerberos AES256-CTS-HMAC-SHA1-96".

Je ne sais pas pour sûr que c'est la cause du problème, mais c'est la seule différence que j'ai pu trouver dans les deux environnements qui pourrait expliquer l'authentification de l'exception. J'ai essayé de changer l'ANNONCE politique de chiffrement, essayé IE et Firefox, et à peu près tout ce que je pouvais penser, mais rien n'a fonctionné.

Tout, contribuer à résoudre ce serait bien apprécié. Je préfère pour le fixer sur le java fin comme je l'ai probablement ne peut pas imposer trop de choses à propos de la production d'ANNONCE de l'installation.

Avez-vous vérifier la communication dans Wireshark et avoir les billets examiné?
Merci @Michael-O - j'ai fait d'utiliser Wireshark en travaillant sur cette plus tôt, mais n'ont pas la sortie plus disponible.Je n'ai pas pu obtenir que cela fonctionne à tous - je revenue sur le domaine de test de niveau fonctionnel Windows Server 2003, puis il a travaillé normalement. Maintenant j'ai besoin de la configuration d'une nouvelle 2008 domaine de test pour essayer de trouver une solution viable....

OriginalL'auteur slt | 2011-12-14