NTLM permet d'authentifier des utilisateurs issus d'un annuaire Active Directory. NTLM réalise :
- Une authentification NTLM SSP, transparente pour l’utilisateur, pour les
utilisateurs utilisant un poste client membre du domaine ou ayant ouvert une
session Windows avec leur compte de domaine. L'utilisateur est authentifié à chaque requête.
- En solution de secours, une authentification NTLM basique, explicite pour l'utilisateur, pour les utilisateurs dont le poste n'est pas joint à l'AD.
Une fenêtre pop-up s'affichera et l'utilisateur devra saisir son identifiant et son mot de passe.
NTLM authentifiera tout utilisateur de l'annuaire, cependant, pour que les politiques (ainsi que les quotas, l'outrepassement, etc) puissent être appliquées, il faut que les utilisateurs soient synchronisés dans l'Olfeo. Les utilisateurs non synchronisés seront authentifiés et pourront accéder à internet, mais ils seront considérés comme des utilisateurs
inconnus et le moteur leur appliquera la politique par défaut.
Modes d'intégration compatibles
L'authentification NTLM peut uniquement être utilisée en mode proxy explicite. En effet, dans les autres modes d'intégration, le navigateur ne communique pas directement avec le proxy.
Contraintes et limitations
- L'authentification NTLM est un mécanisme fort, qui présente de fortes contraintes : voir Contraintes liées à la force de l'authentification. De plus, son coût réseau est élevé : d'une part, chaque requête doit être authentifiée, d'autre part l'authentification demande plusieurs allers-retours entre le client, le proxy et l'annuaire (il est normal que vous constatiez un grand nombre de codes 407 dans vos logs).
- Une infrastructure Active Directory est nécessaire, et l'Olfeo doit être joint au domaine Windows.
- Si vous avez des utilisateurs gérés via un annuaire autre qu'Active Directory, vous devrez utiliser une autre méthode d'authentification pour ceux-ci, et ajouter une exception à l'authentification NTLM pour ces utilisateurs.
- Pour que l'authentification NTLM fonctionne, l'Olfeo doit être synchronisé avec le serveur NTP interne à l'AD ou avec le même serveur NTP que l'AD. Voir Connecter votre Olfeo à un serveur NTP.
- Le hostname de la machine ne peut excéder 15 caractères.
Fonctionnement
Principe : La machine cliente et l'AD stockent tous les deux une représentation du mot de passe de l'utilisateur. Chacun va utiliser le mot de passe comme clé de chiffrement pour chiffrer une même chaîne. Si les résultats correspondent, l'authentification est validée.
Étapes du mécanisme :
- L'utilisateur ouvre une session Windows sur sa machine, sur un domaine Active Directory. La machine stocke une représentation du mot de passe de l'utilisateur.
- L'utilisateur tente d'accéder à une page web : le proxy reçoit sa requête.
- Le proxy envoie une demande d'authentification au navigateur (code 407). Celle-ci inclut l'en-tête Proxy-Authenticate: NTLM pour indiquer au navigateur qu'il attend une authentification NTLM (et Proxy-Authenticate: Basic realm="Squid Olfeo" pour indiquer la méthode de fallback).
- Le navigateur envoie à nouveau la requête au proxy, en incluant un en-tête Proxy-Authorization contenant l'identifiant de l'utilisateur, le hostname de la machine et son domaine.
- Le proxy envoie ces informations à l'annuaire AD, qui les stocke. L'annuaire sait donc que l'utilisateur cherche à s'authentifier.
- Afin de traiter la demande d'authentification, l'annuaire génère un "challenge", c'est-à-dire une chaîne aléatoire sur 16 octets, et l'envoie au proxy. Le proxy transmet le challenge au client dans une nouvelle demande d'authentification (407).
- Le client fait un hash du challenge avec son mot de passe et l'envoie au proxy, dans une nouvelle requête. Le proxy transmet ce hash à l'AD.
Mettre en place une authentification NTLM
- Synchronisez le ou les annuaires Active Directory contenant vos utilisateurs. Dans la page de configuration de l'annuaire, remplissez la section
Domaine. Si vous synchronisez plusieurs AD, relations d'approbation.
- Joignez l'Olfeo au domaine Windows.
- À la page , sélectionnez NTLM (Active Directory) dans la liste Méthode d'authentification. La page affiche les
options correspondantes. Le champ Statut indique le domaine Windows auquel l'Olfeo est joint.
Si besoin, modifiez le nombre de processus d'authentification instanciés dans le champ
Nombre d'instances. Le nombre d'instances correspond au nombre de
demandes d'authentification qui peuvent être traitées en parallèle à un instant donné.
(Si vous entrez 30, l'Olfeo lance 30 processus NTLM SSP et 30 NTLM basiques.)
- Dans la section Règles, définissez les cas dans lesquels une
authentification sera demandée ou non.
- Ajoutez une règle grâce au bouton .
- Définissez des critères :
- Sources : définissez les plages d'adresses IP concernées
par la règle.
- User-Agent : utilisez ce paramètre pour désactiver
l'authentification auprès du proxy HTTP pour certains types d'applications clientes
incapables de s'authentifier (lecteur audio/vidéo...). Définissez une expression
rationnelle sur l'en-tête User-agent de la requête. Attention, toutes les
requêtes n'incluent pas cet en-tête (le navigateur peut avoir été paramétré pour
l'omettre). Pour ajouter un user-agent, utilisez la dernière ligne du
tableau.
-
Ports du proxy : la règle ne s'appliquera qu'aux flux reçus
sur le port spécifié. La liste propose tous les ports qui ne sont pas en interception (en effet, l'interception ne tolère
pas l'authentification).
-
Destination : la règle s'appliquera uniquement aux requêtes à
destination de ces
domaines.
Vous pouvez indiquer des URLs spécifiques grâce à une expression rationnelle, ou
bien utiliser des listes d'URL ou des
listes de domaines existantes.
-
Authentification : définissez si dans le cas décrit par la
règle, le proxy doit demander une authentification ou non.
- Si besoin, modifiez l'ordre des règles grâce aux flèches et . Le proxy évaluera
les règles une par une de haut en bas : assurez-vous qu'aucune règle n'en bloque une
autre. Par exemple, positionnez une règle désactivant l'authentification pour la mise à jour d'un serveur applicatif avant une règle demandant l'authentification des utilisateurs du serveur, sinon les
mises à jour seront bloquées.
- Sous la liste de règles, dans la liste Par défaut, définissez le
comportement à adopter pour les requêtes ne correspondant à aucune des règles.
(Pas d'authentification, ou
Authentification).
- Cliquez sur le bouton Valider pour enregistrer les changements.