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

  1. Dans la barre des tâches, cliquez sur Gestionnaire de serveur.
  2. Dans Gestionnaire de serveur, cliquez sur le menu Gérer, puis sur Ajouter des rôles et des fonctionnalités.
  3. 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.
  4. Dans la page Rôles serveur, développez Serveur web (IIS), Serveur web, Sécurité, puis sélectionnez Authentification Windows. Sélectionnez Suivant.
    Screenshot of the Server Roles page with the Windows Authentication option being highlighted. .
  5. Dans la page Sélectionner les composants, cliquez sur Suivant.
  6. Dans la page Confirmer les sélections d’installation, cliquez sur Installer.
  7. Dans la page Résultats , cliquez sur Fermer.

Windows 8 ou Windows 8.1

  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.
  2. Dans Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.
  3. Développez Internet Information Services, Services World Wide Web, Sécurité, puis sélectionnez Authentification Windows.
    Screenshot of the Internet Information Services folder's contained folders, with the Windows Authentication folder being highlighted.
  4. Cliquez sur OK.
  5. Cliquez sur Fermer.

Windows Server 2008 ou Windows Server 2008 R2

  1. Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire de serveur.
  2. Dans le volet de hiérarchie du Gestionnaire de serveur, développez Rôles, puis cliquez sur Serveur web (IIS).
  3. 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.
  4. 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.
    Screenshot of the Select Role Services page with the Windows Authentication option being highlighted.
  5. Dans la page Confirmer les sélections pour l'installation, cliquez sur Installer.
  6. Dans la page Résultats , cliquez sur Fermer.

Windows Vista ou Windows 7

  1. Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
  2. Dans Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.
  3. Développez Internet Information Services, Services World Wide Web, puis Sécurité.
  4. Sélectionnez Authentification Windows, puis cliquez sur OK.
    Screenshot of the expandable Internet Information Services folder with the Windows Authentication folder being highlighted.

Procédure

Comment activer l’authentification Windows pour un site web, une application web ou un service web

  1. 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).
  2. 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.

  3. Faites défiler jusqu’à la section Sécurité dans le volet Accueil, puis double-cliquez sur Authentification.

  4. Dans le volet Authentification, sélectionnez Authentification Windows, puis cliquez sur Activer dans le volet Actions.
    Screenshot of the Authentication pane which contains the Name and Status fields.


Comment activer la protection étendue pour l’authentification Windows

  1. 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).
  2. 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.

  3. Faites défiler jusqu’à la section Sécurité dans le volet Accueil, puis double-cliquez sur Authentification.

  4. Dans le volet Authentification, sélectionnez Authentification Windows.

  5. Cliquez sur Activer dans le volet Actions.
    Screenshot of the Authentication pane and its Group by field.

  6. Cliquez sur Paramètres avancés dans le volet Actions.

  7. 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.
      Screenshot of the Advanced Settings dialog box with the Extended Protection field's Accept option being highlighted.
  8. 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()