Comment configurer l’authentification NTLM sur un serveur IIS ?
Sommaire
I. Présentation
Dans ce tutoriel, nous allons apprendre à configurer l'authentification NTLM sur un serveur Web IIS, pour qu'une fenêtre de connexion s'affiche lorsque l'on tente d'accéder à une page Web. Pour accéder au site Web protégé par une authentification, il sera nécessaire d'utiliser un compte autorisé, en l'occurrence ici un compte de l'Active Directory (mais il peut s'agir d'un compte local sur le serveur Web).
Ce tutoriel est là avant tout à des fins éducatives et de tests (et pour accompagner mon article qui sera mis en ligne demain), car il est recommandé de ne pas utiliser l'authentification NTLM puisqu'elle est vulnérable à différents types d'attaques. Préférez l'utilisation de l'authentification Kerberos. Pour cette démo, j'utilise un serveur IIS sous Windows Server 2022 mais vous pouvez utiliser une autre version.
II. Ajouter l'authentification Windows à IIS
Tout d'abord, il faut ajouter la fonctionnalité "Authentification Windows" au serveur IIS. Pour cela, vous pouvez utiliser PowerShell ou le gestionnaire de serveur en cochant la fonctionnalité "Authentification Windows" à l'emplacement suivant : Serveur Web (IIS) > Serveur Web > Sécurité. Comme ceci :
Quelques secondes plus tard, la fonctionnalité sera installée et elle sera disponible dans la console IIS.
III. Configurer l'authentification dans IIS
Ouvrez la console IIS et sélectionnez le site ou le dossier sur lequel vous désirez activer l'authentification. En effet, l'authentification peut être activée par site ou par dossier. À droite, double cliquez sur "Authentification".
Ici, vous avez une liste... Effectuez un clic droit sur "Authentification Windows" et cliquez sur "Activer" car par défaut, c'est désactivé.
Tout à droite, vous pouvez cliquer sur "Fournisseurs" pour voir la liste des fournisseurs d'authentification disponibles. Dans cette liste, "Negotiate" et "NTLM" : "Negotiate" fait référence à Kerberos (même s'il y a aussi Negotiate:Kerberos). Pour vos tests sur NTLM, vous pouvez positionner NTLM en premier.
Enfin, il ne reste plus qu'à effectuer une connexion sur le site Web, à partir de l'adresse IP ou du nom du serveur. La mire d'authentification va apparaître, comme sur l'image ci-dessous.
Si l'authentification réussie, le site Web va s'afficher ! Sinon, l'erreur "Erreur HTTP 401.2 - Unauthorized" s'affichera dans le navigateur ! Ainsi, l'accès au site Web est protégé.
Maintenant que l'authentification NTLM fonctionne, faites vos tests et pensez à basculer sur l'authentification Kerberos si cette configuration doit être utilisée en production !
Pour utiliser Kerberos, indiquez uniquement "Negotiate" dans la liste des fournisseurs et accédez à votre site Web via le nom de votre serveur Web (par exemple : http://serveur-web.it-connect.local) car avec l'adresse IP, l'authentification échouera. Si vous avez besoin d'approfondir le sujet sur l'authentification Kerberos, vous pouvez consulter ce lien.
Bonjour, merci pour cette article enrichissant.
La bascule de la négociation NTLM vers la négociation Kerberos peut elle engendré des effets de bord sur un environnement de production ?
Si oui lesquels, et quelles sont les remédiations.
Cordialement.