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)

  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, 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.

  3. Dans le volet Accueil, double-cliquez sur Paramètres SSL.
    Screenshot of the Home pane with the S S L Settings icon being highlighted.

  4. Dans le volet Paramètres SSL, cliquez sur Exiger SSL.

  5. 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.
Valeur Description
None Désactiver SSL.
Ssl Exiger SSL.
SslNegotiateCert Accepter les certificats clients pour l’authentification.
SslRequireCert Exiger des certificats clients pour l’authentification.
SslMapCert Activer l’authentification par mappage de certificat.
Ssl128 Exiger SSL 128 bits.

É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()