Nous avons une configuration IDAM légèrement compliquée:
C'est-à-dire que la machine et le navigateur de l'utilisateur final sont assis dans un réseau avec l'AD parent, et notre application basée sur Jetty et l'AD avec lequel il peut parler (AD local) sont assis dans l'autre.
Il existe une approbation bidirectionnelle entre les deux AD. Le navigateur du réseau parent possède le domaine local dans les sites de confiance.
La configuration du serveur Jetty est la suivante:
- il utilise un fichier keytab généré par rapport à un principal dans l'AD local
- il s'exécute en tant que service Windows sous un utilisateur défini dans l'AD local
- le domaine, le mappage domaine-domaine et kdc sont définis par rapport au domaine de l'AD local
- il utilise spnego - isInitiator est défini sur false; doNotPrompt est vrai; storeKey est vrai
Le problème est:
- comme test, l'accès au serveur à partir d'un navigateur à l'intérieur du réseau local (c'est-à-dire lié à l'AD local) fonctionne - les informations de débogage Kerberos apparaissent dans les journaux, je peux voir la négociation Kerberos correcte dans le trafic HTTP et l'utilisateur est connecté automatiquement . Brillant.
cependant , accéder au serveur à partir d'un navigateur à l'intérieur du réseau parent (c'est ainsi que nos utilisateurs feront les choses) ne fonctionne pas! Le navigateur récupère un 401, mais demande ensuite des informations d'identification qui, une fois entrées, donnent un écran vide. Ensuite, cliquer dans la barre d'adresse et appuyer sur Entrée fait l'une des deux choses, selon que les informations d'identification sont pour l'AD distant ou local:
- les informations d'identification AD locales se connectent ensuite correctement, avec Kerberos à partir de zéro dans les journaux (demande GET, réponse 401 nonauth, demande d'en-têtes Kerberos, etc.)
- les informations d' identification à distance AD ne consignent pas (requête GET, 401 réponse unauth, ce qui ressemble à un en- tête NTLM:
Authorization: Negotiate <60 or so random chars>
)
Quoi qu'il en soit, le fait qu'il incite est faux!
Y a-t-il une explication à ces symptômes? La configuration que nous avons peut-elle faire ce que nous voulons?
En ce qui concerne la description ci-dessus, cela pourrait être faux: toute configuration que j'ai mentionnée concernant le serveur Jetty devrait être précise, comme je l'ai fait. Je suis heureux de fournir plus de détails. Toute configuration concernant AD ou le navigateur du réseau parent est potentiellement suspecte, car elle n'est pas sous mon contrôle et j'ai eu la configuration rapportée plutôt que de la voir par moi-même.