Authentification Windows <windowsAuthentication>
Vue d’ensemble
L’élément <windowsAuthentication>
définit des paramètres de configuration pour le module d’authentification Windows Internet Information Services (IIS) 7.... Vous pouvez utiliser l’authentification Windows lorsque votre serveur IIS 7 s’exécute sur un réseau d’entreprise qui utilise des identités de domaine de service Microsoft Active Directory ou d’autres comptes Windows pour identifier les utilisateurs. Pour cette raison, vous pouvez utiliser l’authentification Windows que votre serveur soit membre ou non d’un domaine Active Directory.
L’authentification Windows (anciennement nommée NTLM et également appelée authentification par stimulation/réponse Windows NT) est une forme d’authentification sécurisée, car le nom d’utilisateur et le mot de passe sont hachés avant d’être envoyés sur le réseau. Lorsque vous activez l’authentification Windows, le navigateur client envoie une version fortement hachée du mot de passe dans un échange de chiffrement avec votre serveur web.
L’authentification Windows prend en charge deux protocoles d’authentification, Kerberos et NTLM, qui sont définis dans l’élément<providers>
. Lorsque vous installez et activez l’authentification Windows sur IIS 7, le protocole par défaut est Kerberos. L’élément <windowsAuthentication>
peut également contenir un attribut useKernelMode qui configure s’il faut utiliser la fonctionnalité d’authentification en mode noyau qui est nouvelle pour Windows Server 2008.
L’authentification Windows est idéale pour un environnement intranet pour les raisons suivantes :
- Les ordinateurs clients et les serveurs web se trouvent dans le même domaine.
- Les administrateurs peuvent s’assurer que chaque navigateur client est Internet Explorer 2.0 ou version ultérieure.
- Les connexions de proxy HTTP, qui ne sont pas prises en charge par NTLM, ne sont pas requises.
- Kerberos version 5 nécessite une connexion à Active Directory, ce qui n’est pas possible dans un environnement Internet.
Nouveautés dans IIS 7.5
L’élément <extendedProtection>
a été introduit dans IIS 7.5, ce qui vous permet de configurer les paramètres des nouvelles fonctionnalités de protection étendue intégrées à l’authentification Windows.
Compatibilité
Version | Notes |
---|---|
IIS 10.0 | L’élément <windowsAuthentication> n’a pas été modifié dans IIS 10.0. |
IIS 8.5 | L’élément <windowsAuthentication> n’a pas été modifié dans IIS 8.5. |
IIS 8.0 | L’élément <windowsAuthentication> n’a pas été modifié dans IIS 8.0. |
IIS 7.5 | L’élément <extendedProtection> a été ajouté dans IIS 7.5. |
IIS 7.0 | L’élément <windowsAuthentication> a été introduit dans IIS 7.0. |
IIS 6.0 | L’élément <windowsAuthentication> remplace des parties des propriétés métabase AuthType et AuthFlags IIS 6.0. |
Programme d’installation
L’installation par défaut d’IIS 7 et versions ultérieures n’inclut pas le service de rôle d’authentification Windows. Pour utiliser l’authentification Windows sur IIS, vous devez installer le service de rôle, désactiver Authentification anonyme pour votre site web ou votre application, puis activer Authentification Windows pour le site ou l’application.
Remarque
Après avoir installé le service de rôle, IIS 7 valide les paramètres de configuration suivants dans le fichier ApplicationHost.config.
<windowsAuthentication enabled="false" />
Windows Server 2012 ou Windows Server 2012 R2
- Dans la barre des tâches, cliquez sur Gestionnaire de serveur.
- Dans Gestionnaire de serveur, cliquez sur le menu Gérer, puis sur Ajouter des rôles et des fonctionnalités.
- Dans l’Assistant Ajout de rôles et de fonctionnalités, cliquez sur Suivant. Sélectionnez le type d’installation, puis cliquez sur Suivant. Sélectionnez le serveur de destination, puis cliquez sur Suivant.
- Dans la page Rôles serveur, développez Serveur web (IIS), Serveur web, Sécurité, puis sélectionnez Authentification Windows. Sélectionnez Suivant.
. - Dans la page Sélectionner les composants, cliquez sur Suivant.
- Dans la page Confirmer les sélections d’installation, cliquez sur Installer.
- Dans la page Résultats , cliquez sur Fermer.
Windows 8 ou Windows 8.1
- Dans l’écran Démarrer, déplacez le pointeur jusqu’au coin inférieur gauche, cliquez avec le bouton droit sur le bouton Démarrer, puis cliquez sur Panneau de configuration.
- Dans Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.
- Développez Internet Information Services, Services World Wide Web, Sécurité, puis sélectionnez Authentification Windows.
- Cliquez sur OK.
- Cliquez sur Fermer.
Windows Server 2008 ou Windows Server 2008 R2
- Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire de serveur.
- Dans le volet de hiérarchie du Gestionnaire de serveur, développez Rôles, puis cliquez sur Serveur web (IIS).
- Dans le volet Serveur web (IIS), faites défiler jusqu’à la section Services de rôle, puis cliquez sur Ajouter des services de rôle.
- Dans la page Sélectionner des services de rôle de l’Assistant Ajout de services de rôle, sélectionnez Authentification Windows, puis cliquez sur Suivant.
- Dans la page Confirmer les sélections pour l'installation, cliquez sur Installer.
- Dans la page Résultats , cliquez sur Fermer.
Windows Vista ou Windows 7
- Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
- Dans Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.
- Développez Internet Information Services, Services World Wide Web, puis Sécurité.
- Sélectionnez Authentification Windows, puis cliquez sur OK.
Procédure
Comment activer l’authentification Windows pour un site web, une application web ou un service web
Ouvrez le Gestionnaire Internet Information Services (IIS) :
Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :
- Dans la barre des tâches, cliquez sur Gestionnaire de serveur, sur Outils, puis sur Gestionnaire Internet Information Services (IIS).
Si vous utilisez Windows 8 ou Windows 8.1 :
- Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
- Cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :
- Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
Si vous utilisez Windows Vista ou Windows 7 :
- Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
- Double-cliquez sur Outils d’administration, puis sur Gestionnaire Internet Information Services (IIS).
Dans le volet Connexions, développez le nom du serveur, développez Sites, puis le site, l’application ou le service web pour lequel vous souhaitez activer l’authentification Windows.
Faites défiler jusqu’à la section Sécurité dans le volet Accueil, puis double-cliquez sur Authentification.
Dans le volet Authentification, sélectionnez Authentification Windows, puis cliquez sur Activer dans le volet Actions.
Comment activer la protection étendue pour l’authentification Windows
Ouvrez le Gestionnaire Internet Information Services (IIS) :
Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :
- Dans la barre des tâches, cliquez sur Gestionnaire de serveur, sur Outils, puis sur Gestionnaire Internet Information Services (IIS).
Si vous utilisez Windows 8 ou Windows 8.1 :
- Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
- Cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :
- Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
Si vous utilisez Windows Vista ou Windows 7 :
- Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
- Double-cliquez sur Outils d’administration, puis sur Gestionnaire Internet Information Services (IIS).
Dans le volet Connexions, développez le nom du serveur, développez Sites, puis le site, l’application ou le service web pour lequel vous souhaitez activer la protection étendue pour l’authentification Windows.
Faites défiler jusqu’à la section Sécurité dans le volet Accueil, puis double-cliquez sur Authentification.
Dans le volet Authentification, sélectionnez Authentification Windows.
Cliquez sur Paramètres avancés dans le volet Actions.
Quand la boîte de dialogue Paramètres avancés s’affiche, sélectionnez l’une des options suivantes dans le menu déroulant Protection étendue :
- Sélectionnez Accepter si vous souhaitez activer la protection étendue tout en fournissant une prise en charge de bas niveau pour les clients qui ne prennent pas en charge la protection étendue.
- Sélectionnez Obligatoire si vous souhaitez activer la protection étendue sans fournir de prise en charge de bas niveau.
Cliquez sur OK pour fermer la boîte de dialogue Paramètres avancés.
Configuration
L’élément <windowsAuthentication>
est configurable au niveau du site, de l’application ou du répertoire virtuel dans le fichier ApplicationHost.config.
Attributs
Attribut | Description |
---|---|
authPersistNonNTLM |
Attribut Boolean facultatif. Spécifie si IIS réauthentifie automatiquement chaque requête non-NTLM (par exemple, Kerberos), même celles sur la même connexion. False permet plusieurs authentifications pour les mêmes connexions. Remarque : la valeur true signifie que le client ne sera authentifié qu’une seule fois sur la même connexion. IIS met en cache un jeton ou un ticket sur le serveur pour une session TCP qui reste établie. Par défaut, il s’agit de false . |
authPersistSingleRequest |
Attribut Boolean facultatif. La définition de cet indicateur sur true spécifie que l’authentification persiste uniquement pour une seule requête sur une connexion. IIS réinitialise l’authentification à la fin de chaque requête et force la réauthentification sur la requête suivante de la session. La valeur par défaut est false . |
enabled |
Attribut booléen obligatoire. Spécifie si l’authentification Windows est activée. La valeur par défaut est false . |
useKernelMode |
Attribut Boolean facultatif. Spécifie si l’authentification Windows est effectuée en mode noyau. True spécifie que l’authentification Windows utilise le mode noyau. L’authentification en mode noyau peut améliorer les performances d’authentification et empêcher les problèmes d’authentification avec les pools d’applications configurés pour utiliser une identité personnalisée. Comme meilleure pratique, ne désactivez pas ce paramètre si vous utilisez l’authentification Kerberos et que vous avez une identité personnalisée sur le pool d’applications. Par défaut, il s’agit de true . |
Éléments enfants
Élément | Description |
---|---|
extendedProtection |
Élément facultatif. Spécifie les options de protection étendue pour l’authentification Windows. Remarque : cet élément a été ajouté dans IIS 7.5. |
providers |
Élément facultatif. Spécifie les fournisseurs de support de sécurité utilisés pour l’authentification Windows. |
Exemple Configuration
L’élément par défaut <windowsAuthentication>
suivant est configuré dans le fichier ApplicationHost.config racine dans IIS 7.0 et désactive l’authentification Windows par défaut. Il définit également les deux fournisseurs d’authentification Windows pour IIS 7.0.
<windowsAuthentication enabled="false">
<providers>
<add value="Negotiate" />
<add value="NTLM" />
</providers>
</windowsAuthentication>
L’exemple suivant active l’authentification Windows et désactive l’authentification anonyme pour un site web nommé Contoso.
<location path="Contoso">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
Exemple de code
Les exemples suivants désactivent l’authentification anonyme pour un site nommé Contoso, puis activent l’authentification Windows pour le site.
AppCmd.exe
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /enabled:"False" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/windowsAuthentication /enabled:"True" /commit:apphost
Remarque
Vous devez veiller à définir le paramètre commit sur apphost
quand vous utilisez AppCmd.exe pour configurer ces paramètres. Cela valide les paramètres de configuration dans la section d’emplacement appropriée dans le fichier ApplicationHost.config.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample {
private static void Main() {
using(ServerManager serverManager = new ServerManager()) {
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection anonymousAuthenticationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso");
anonymousAuthenticationSection["enabled"] = false;
ConfigurationSection windowsAuthenticationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso");
windowsAuthenticationSection["enabled"] = true;
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim anonymousAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso")
anonymousAuthenticationSection("enabled") = False
Dim windowsAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso")
windowsAuthenticationSection("enabled") = True
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
anonymousAuthenticationSection.Properties.Item("enabled").Value = false;
var windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
windowsAuthenticationSection.Properties.Item("enabled").Value = true;
adminManager.CommitChanges();
VBScript
Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
anonymousAuthenticationSection.Properties.Item("enabled").Value = False
Set windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
windowsAuthenticationSection.Properties.Item("enabled").Value = True
adminManager.CommitChanges()