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>
  • 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