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
- 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 Digest. 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’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.
- Dans le 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 Digest.
- 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 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 Digest, 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 le 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é, sélectionnez Authentification Digest, puis cliquez sur OK.
Procédure
Comment activer l’authentification Digest et désactiver l’authentification anonyme
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 cliquez sur le site, l’application ou le service web pour lequel vous souhaitez activer l’authentification de base.
Faites défiler jusqu’à la section Sécurité dans le volet Accueil, puis double-cliquez sur Authentification.
Dans le volet Authentification, sélectionnez Authentification Digest puis, dans le volet Actions, cliquez sur Activer.
Dans le volet Authentification, sélectionnez Authentification anonyme, puis cliquez sur Désactiver dans le volet Actions.
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()