Partager via


Authentification Digest <digestAuthentication>

Vue d’ensemble

L’élément <digestAuthentication> contient des paramètres de configuration pour le module d’authentification Digest Internet Information Services (IIS) 7. Vous configurez cet élément pour activer ou désactiver l’authentification Digest, et vous pouvez éventuellement spécifier le domaine d’authentification Digest.

L’authentification Digest n’est pas aussi largement utilisée que l’authentification de base, mais présente des avantages distincts par rapport à l’authentification de base ou l’authentification Windows. L’inconvénient majeur de l’utilisation de l’authentification de base sur les moyens de communication non chiffrés est que le nom d’utilisateur et le mot de passe du client sont envoyés en tant que message de texte en clair encodé en base 64, ce qui permet à un utilisateur malveillant d’écouter très facilement les communications et de récupérer le nom d’utilisateur et le mot de passe. L’authentification Windows résout ce problème via diverses options de sécurité, mais l’authentification Windows ne fonctionne généralement pas dans un environnement Internet.

L’authentification Digest traite les deux limitations ci-dessus par les moyens suivants :

  • Contrairement au schéma de texte en clair utilisé par l’authentification de base, l’authentification Digest demande au client d’envoyer un hachage de ses informations sur le canal de communication. Par conséquent, le nom d’utilisateur et le mot de passe du client ne sont jamais envoyés sur le réseau.
  • L’authentification Digest fonctionne bien sur Internet, ce qui rend l’authentification Digest mieux adaptée à cet environnement que l’authentification Windows.

Remarque

L’authentification Digest protège uniquement le nom d’utilisateur et le mot de passe du client : le corps de la communication HTTP est toujours en texte en clair. Pour sécuriser le corps de votre communication, vous devez utiliser SSL (Secure Sockets Layer).

Compatibilité

Version Notes
IIS 10.0 L’élément <digestAuthentication> n’a pas été modifié dans IIS 10.0.
IIS 8.5 L’élément <digestAuthentication> n’a pas été modifié dans IIS 8.5.
IIS 8.0 L’élément <digestAuthentication> n’a pas été modifié dans IIS 8.0.
IIS 7.5 L’élément <digestAuthentication> n’a pas été modifié dans IIS 7.5.
IIS 7.0 L’élément <digestAuthentication> a été introduit dans IIS 7.0.
IIS 6.0 L’élément <digestAuthentication> 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 Digest. Pour utiliser l’authentification Digest sur IIS 7 et versions ultérieures, vous devez installer le service de rôle, désactiver Authentification anonyme pour votre site web ou votre application, puis activer Authentification Digest pour le site ou l’application.

Pour installer le service de rôle d’authentification Digest, procédez comme suit.

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 Digest. Sélectionnez Suivant.
    Image of Web Server and Security pane expanded with Digest Authentication selected. .
  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’accueil, 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 le 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 Digest.
    Screenshot of World Wide Web Services and Security pane expanded with Digest Authentication 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 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 Digest, puis cliquez sur Suivant. Image of Select Role Services page displaying Digest Authentication option selected.
  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 le 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é, sélectionnez Authentification Digest, puis cliquez sur OK.
    Screenshot of World Wide Web Services and Security pane expanded showing Digest Authentication selected.

Procédure

Comment activer l’authentification Digest et désactiver l’authentification anonyme

  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 cliquez sur le site, l’application ou le service web pour lequel vous souhaitez activer l’authentification de base.

  3. Faites défiler jusqu’à la section Sécurité dans le volet Accueil, puis double-cliquez sur Authentification.
    Image of Home pane in Security section with Authentication application highlighted.

  4. Dans le volet Authentification, sélectionnez Authentification Digest puis, dans le volet Actions, cliquez sur Activer.

  5. Dans le volet Authentification, sélectionnez Authentification anonyme, puis cliquez sur Désactiver dans le volet Actions.
    Image of Authentication pane displaying Anonymous Authentication option highlighted.

Configuration

L’élément <digestAuthentication> est configurable au niveau du site, de l’application, du répertoire virtuel et de l’URL. Après avoir installé le service de rôle, IIS 7 valide les paramètres de configuration suivants dans le fichier ApplicationHost.config.

<digestAuthentication enabled='false' />

Attributs

Attribut Description
enabled Attribut booléen facultatif.

Spécifie si l’authentification Digest est activée.

La valeur par défaut est false.
realm Attribut String facultatif.

Spécifie le domaine pour l’authentification Digest.

Éléments enfants

Aucune.

Exemple Configuration

L’exemple de configuration suivant active l’authentification Digest pour un site web, une application web ou un service web. Par défaut, ces paramètres doivent être inclus dans votre fichier ApplicationHost.config, et vous devez les inclure dans un élément <location> et utiliser l’attribut path pour définir le site web ou l’application où vous souhaitez appliquer les paramètres d’authentification.

<security>
   <authentication>
      <anonymousAuthentication enabled="false" />
      <digestAuthentication enabled="true" />
   </authentication>
</security>

Exemple de code

Les exemples suivants activent l’authentification Digest pour un site.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/digestAuthentication /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 digestAuthenticationSection = config.GetSection("system.webServer/security/authentication/digestAuthentication", "Contoso");
         digestAuthenticationSection["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 digestAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/digestAuthentication", "Contoso")
      digestAuthenticationSection("enabled") = True

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var digestAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/digestAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
digestAuthenticationSection.Properties.Item("enabled").Value = true;

adminManager.CommitChanges();

VBScript

Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set digestAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/digestAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
digestAuthenticationSection.Properties.Item("enabled").Value = True

adminManager.CommitChanges()