2 votes

Authentifier NTLM au niveau du reverse proxy devant les serveurs web non authentifiés

J'ai plusieurs serveurs HTTP Linux configurés sans qu'aucune authentification ne soit requise pour accéder au contenu web. J'aimerais que mes utilisateurs Windows puissent accéder à ces sites avec une authentification de type "pass-through".

Je ne veux pas avoir à essayer de configurer cela sur chaque serveur web. Mon idée est que je pourrais les authentifier NTLM sur un proxy inverse, puis le proxy pourrait faire la demande non authentifiée et les serveurs web n'accepteraient que les connexions provenant de ce proxy inverse. L'idéal serait de pouvoir restreindre l'accès à certains sites/urls en fonction du groupe AD des utilisateurs, mais ce n'est pas une obligation.

La plupart des exemples/tutoriels que j'ai trouvés lors de mes recherches concernent la transmission des informations d'identification jusqu'au serveur web de destination, mais je veux que le proxy se charge lui-même de l'authentification. Je suis d'accord pour exécuter le proxy sous Windows si nécessaire. Je cherche ce qui est le plus facile à mettre en place.

2voto

getsauce Points 81

J'ai fini par trouver deux solutions viables à ce problème. J'espère que cela sera utile à tous ceux qui essaient de mettre en place quelque chose de similaire.

  1. Configurer IIS avec ARR (Application Request Routing) et activer l'authentification Windows au niveau mondial. Configurez ensuite une règle d'autorisation globale pour permettre aux utilisateurs de votre choix de s'authentifier par l'intermédiaire du proxy inverse. L'inconvénient de cette méthode est qu'il n'est pas facile de définir des autorisations différentes pour les différents sites si vous en utilisez plusieurs. Vous pouvez spécifier un "chemin d'accès" dans une règle d'autorisation d'URL mais vous ne pouvez pas dire serveur1 autorise ces utilisateurs serveur2 autorise ces utilisateurs.

  2. J'ai choisi d'utiliser Apache 2.4 avec un plugin NTLM plus récent que j'ai trouvé sur Github ( https://github.com/TQsoft-GmbH/mod_authn_ntlm ). Je n'ai pas rencontré d'inconvénients en utilisant cette méthode. Config ci-dessous.

    <VirtualHost *:*>
      ProxyPass / http://server1/
      ProxyPassReverse / http://server1
    
      ServerName proxy1
    
      <Location /* >
        AuthType SSPI
        NTLMAuth On
        NTLMAuthoritative On
        NTLMOfferBasic On
        <RequireAny>
          Require sspi-user contoso\johnsmith
        </RequireAny>
      </Location>
    </VirtualHost>
    
    <VirtualHost *:*>
      ProxyPass / http://server2/
      ProxyPassReverse / http://server2
    
      ServerName proxy2
    
      <Location /* >
        AuthType SSPI
        NTLMAuth On
        NTLMAuthoritative On
        NTLMOfferBasic On
        <RequireAny>
          Require sspi-group "contoso\Domain Users"
        </RequireAny>
      </Location>
    </VirtualHost>

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