10 votes

Cette configuration Kerberos/AD est-elle possible ?

Nous avons une configuration IDAM un peu compliquée :

enter image description here

En d'autres termes, la machine et le navigateur de l'utilisateur final se trouvent dans un réseau avec l'AD parent, et notre application basée sur Jetty et l'AD avec lequel elle peut communiquer (AD local) se trouvent dans l'autre réseau.

Il existe une confiance réciproque entre les deux AD. Le navigateur du réseau parent a le domaine local dans les sites de confiance.

La configuration du serveur Jetty est la suivante :

  • il utilise un fichier keytab généré à partir d'un principal dans l'AD local
  • il fonctionne en tant que service Windows sous un utilisateur défini dans l'AD local
  • le domaine, le mappage domaine-règne et le kdc sont définis par rapport au domaine de l'AD local
  • il utilise spnego - isInitiator est fixé à false ; doNotPrompt est true ; storeKey est true

Le problème est le suivant :

  • à titre de test, accéder au serveur à partir d'un navigateur situé à l'intérieur du réseau local (c'est-à-dire lié à l'AD local) travaux - 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 se connecte automatiquement. Brillant.
  • cependant L'accès au serveur à partir d'un navigateur situé à l'intérieur du réseau parent (ce qui est le cas de nos utilisateurs) ne fonctionne pas ! Le navigateur reçoit en retour un message 401 unauth mais demande ensuite des informations d'identification qui, une fois saisies, donnent lieu à un écran vide. Le fait de cliquer sur la barre d'adresse et d'appuyer sur Entrée provoque l'une des deux choses suivantes, selon que les informations d'identification concernent l'AD local ou distant :

    • les identifiants AD locaux se connectent correctement, avec Kerberos à partir de zéro dans les journaux (demande GET, réponse 401 unauth, demande d'en-têtes Kerberos, etc.)
    • les identifiants AD distants ne permettent pas de se connecter (requête GET, réponse 401 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 s'agisse d'une incitation n'est pas correct !

Y a-t-il une explication à ces symptômes ? L'installation dont nous disposons peut-elle faire ce que nous voulons ?

En ce qui concerne ce qui pourrait être erroné dans la description ci-dessus : toute configuration que j'ai mentionnée concernant le serveur Jetty devrait être exacte, puisque c'est moi qui l'ai faite. Je suis prêt à fournir plus de détails. Toute configuration concernant AD ou le navigateur du réseau parent est potentiellement suspecte, parce qu'elle n'est pas sous mon contrôle et qu'on m'a rapporté la configuration plutôt que de l'avoir vue de mes propres yeux.

3voto

user2320464 Points 761

Sans voir la capture de paquets, je dirais que la HTTP/www.website.com Le SPN doit être enregistré sur le compte qui exécute l'application. L'équipe des services d'annuaire de Microsoft a publié un excellent article en plusieurs parties sur ce sujet à l'adresse suivante.

https://blogs.technet.microsoft.com/askds/2008/05/29/kerberos-authentication-problems-service-principal-name-spn-issues-part-1/

Effectuez une capture de paquets (netmon, wireshark) à partir d'un client dans chaque environnement afin d'identifier le SPN recherché. Une fois que vous l'avez déterminé, utilisez la commande setpn pour l'enregistrer sur le compte qui exécute l'application.

À titre d'information, Kerberos ne fonctionne que sur le réseau local. Si quelqu'un a besoin d'accéder à un endroit où les contrôleurs de domaine ne sont pas accessibles, vous devrez envisager un SSO tel que Shibboleth ou ADFS.

EDIT : comme mentionné par @alex-h les navigateurs devront être configurés pour s'authentifier silencieusement via Kerberos.

  • Internet Explorer - Bien que l'article de TechNet ne concerne pas spécifiquement votre application, les étapes sont les mêmes.
  • ファイアフォックス - identique au lien IE, pas de correspondance exacte mais les étapes sont les mêmes.

Enfin, il s'agit d'un problème courant dans les déploiements de Microsoft Sharepoint. Ils veulent que le SSO via Kerberos se produise silencieusement une fois que les utilisateurs se sont authentifiés au domaine. Ainsi, si les réponses ci-dessus ne résolvent pas votre problème, essayez de consulter leurs forums tels que le suivant :

Kerberos sur Chrome, Safari ou FireFox

0voto

Random Citizen Points 476

Essayez d'abord à partir d'un navigateur qui n'a pas NTLM activé (Chrome/Firefox). Il semble que le problème vienne du fait que vous avez activé la préauthentification et qu'il est possible que la confiance réciproque ne soit pas en place.

Pour la pré-authentification, voir ici https://support.microsoft.com/en-us/kb/2749007 et ici https://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X