Sécurité d’accès <access>
Vue d’ensemble
L’élément <access>
vous permet de configurer si un site web ou une application utilise des certificats clients pour l’authentification et vous permet de définir la force de chiffrement nécessaire pour le chiffrement de ces certificats.
L’élément <access>
contient un attribut sslFlags que vous pouvez définir sur l’une des valeurs suivantes :
- Aucun. Ce paramètre par défaut désactive SSL pour le site ou l’application.
- Ssl. Le site ou l’application nécessite SSL.
- SslNegotiateCert. Le site ou l’application accepte les certificats clients pour l’authentification.
- SslRequireCert. Le site ou l’application nécessite les certificats clients pour l’authentification.
- Ssl128. Le site ou l’application nécessite un chiffrement de certificat SSL 128 bits.
Vous pouvez utiliser l’élément access pour configurer un site, une application ou un répertoire virtuel pour exiger des certificats clients. Pour ce faire, définissez une liaison HTTPS pour votre site ou votre application, puis demandez et recevez des certificats d’une autorité de certification. Les certificats peuvent être des certificats de serveur Internet, des certificats de serveur de domaine ou des certificats de serveur auto-signés. Les certificats de serveur Internet nécessitent qu’une autorité de certification émette un certificat pour votre ou vos serveurs une fois que vous en avez demandé un. Un certificat de serveur de domaine est émis par un ordinateur d’autorité de certification s’exécutant sur le domaine de votre entreprise et peut vous aider à contrôler l’accès aux ressources internes aux seuls employés qui ont installé le certificat. Vous pouvez utiliser un certificat auto-signé pour résoudre les problèmes de certificat tiers, pour gérer Internet Information Services (IIS) 7 à distance, pour créer un canal privé sécurisé entre le serveur et un groupe d’utilisateurs sélectionné, ou pour tester les fonctionnalités d’application qui s’appuient sur SSL.
Compatibilité
Version | Notes |
---|---|
IIS 10.0 | L’élément <access> n’a pas été modifié dans IIS 10.0. |
IIS 8.5 | L’élément <access> n’a pas été modifié dans IIS 8.5. |
IIS 8.0 | L’élément <access> n’a pas été modifié dans IIS 8.0. |
IIS 7.5 | L’élément <access> n’a pas été modifié dans IIS 7.5. |
IIS 7.0 | L’élément <access> a été introduit dans IIS 7.0. |
IIS 6.0 | L’élément <access> remplace les propriétés métabase SSLAlwaysNegoClientCert et AccessSSLFlags IIS 6.0. |
Programme d’installation
L’élément <access>
est inclus dans l’installation par défaut d’IIS 7.
Procédure
Comment exiger SSL (Secure Sockets Layer)
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, accédez au site, à l’application ou au répertoire pour lequel vous souhaitez configurer des spécifications SSL. Vous ne pouvez pas configurer SSL au niveau du serveur.
Dans le volet Paramètres SSL, cliquez sur Exiger SSL.
Dans le volet Actions, cliquez sur Appliquer.
Configuration
Vous pouvez configurer l’élément <access>
au niveau du serveur dans le fichier ApplicationHost.config ou bien au niveau du site, de l’application ou du répertoire dans le fichier Web.config approprié.
Attributs
Attribut | Description | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
sslFlags |
L’attribut sslFlags peut être l’une des valeurs possibles suivantes. Par défaut, il s’agit de None .
|
Éléments enfants
Aucune.
Exemple Configuration
L’exemple de configuration suivant, lorsqu’il est inclus dans le fichier ApplicationHost.config, nécessite une connexion SSL entre un site web nommé Contoso et tous les navigateurs clients.
<location path="Contoso">
<system.webServer>
<security>
<access sslFlags="ssl">
</security>
</system.webServer>
</location>
Exemple de code
Les exemples suivants rendent SSL obligatoire pour accéder à un site web nommé Contoso.
AppCmd.exe
appcmd.exe set config "Contoso" -section:system.webServer/security/access /sslFlags:"Ssl" /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 accessSection = config.GetSection("system.webServer/security/access", "Contoso");
accessSection["sslFlags"] = @"Ssl";
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 accessSection As ConfigurationSection = config.GetSection("system.webServer/security/access", "Contoso")
accessSection("sslFlags") = "Ssl"
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Contoso");
accessSection.Properties.Item("sslFlags").Value = "Ssl";
adminManager.CommitChanges();
VBScript
Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Contoso")
accessSection.Properties.Item("sslFlags").Value = "Ssl"
adminManager.CommitChanges()