L’authentification intégrée (Kerberos) résulte en une erreur avec une application JAVA (GSSException: No valid credentials provided (Mechanism level: Fail to create credential. (63)) - No service creds)
Il est possible que certains prérequis soient nécessaires pour faire fonctionner l'authentification Kerberos avec par exemple une application de type JAVA.
Le symptôme est généralement le suivant : l'authentification Kerberos fonctionne parfaitement sur l'ensemble du site sauf quand vous accédez à une application particulière (type JAVA). Vous êtes prompté et le site n'est pas accessible.
L'application peut renvoyer l'erreur suivante : GSSException: No valid credentials provided (Mechanism level: Fail to create credential. (63)) - No service creds
Pour mon client qui a rencontré ce problème, il a fallu appliquer les trois actions suivantes pour corriger le problème :
- Activer l'impersonnation
- Il suffit d'ajouter ce qui suit dans le Web.Config de votre application :
<system.web>
<identity impersonate="true" />
</system.web>
- Il suffit d'ajouter ce qui suit dans le Web.Config de votre application :
- Référencer le bon contrôleur de domaine dans le fichier KRB5.ini :
- Ce fichier est utilisé pour interagir avec des implémentations Kerberos tierce
- Activer la clé AllowTgtSessionKey : https://support.microsoft.com/kb/837361/fr
- Cette clé permet l'échange de ticket entre différent monde (Windows, JAVA, Samba…)
- Elle est désactivée par défaut pour des raisons de sécurité
- Cette clé est entièrement utilisable sous W2K8 & W2K8 R2
En espérant que cet article vous sera utile.
Sylvain Lecerf & L'équipe de Support IIS Microsoft France