Authentification par mappage de certificat client <clientCertificateMappingAuthentication>
Vue d’ensemble
L’élément <clientCertificateMappingAuthentication>
de l’élément <authentication>
spécifie si le mappage de certificat client à l’aide d’Active Directory est activé pour Internet Information Services (IIS) 7.
Remarque
L’authentification par mappage de certificat client à l’aide d’Active Directory diffère de l’authentification par mappage de certificat client à l’aide d’IIS des manières suivantes :
- Authentification par mappage de certificat client à l’aide d’Active Directory : cette méthode d’authentification nécessite que le serveur IIS 7 soit membre d’un domaine Active Directory et que les comptes d’utilisateur soient stockés dans Active Directory. Cette méthode d’authentification de certificat client a réduit les performances en raison de l’aller-retour au serveur Active Directory.
- Authentification par mappage de certificat client IIS : cette méthode d’authentification ne nécessite pas Active Directory et fonctionne donc avec des serveurs autonomes. Cette méthode d’authentification de certificat client a augmenté les performances, mais nécessite davantage de configuration et l’accès aux certificats clients pour créer des mappages.
Pour plus d’informations, consultez Configuration de l’authentification dans IIS 7.0 sur le site web Microsoft TechNet.
Compatibilité
Version | Notes |
---|---|
IIS 10.0 | L’élément <clientCertificateMappingAuthentication> n’a pas été modifié dans IIS 10.0. |
IIS 8.5 | L’élément <clientCertificateMappingAuthentication> n’a pas été modifié dans IIS 8.5. |
IIS 8.0 | L’élément <clientCertificateMappingAuthentication> n’a pas été modifié dans IIS 8.0. |
IIS 7.5 | L’élément <clientCertificateMappingAuthentication> n’a pas été modifié dans IIS 7.5. |
IIS 7.0 | L’élément <clientCertificateMappingAuthentication> de l’élément <authentication> a été introduit dans IIS 7.0. |
IIS 6.0 | S/O |
Programme d’installation
L’élément <clientCertificateMappingAuthentication>
n’est pas disponible dans l’installation par défaut d’IIS 7 et versions ultérieures. Pour l’installer, 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 par mappage de certificat client. 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 par mappage de certificat client.
- 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 par mappage de certificat client, 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, puis sélectionnez Authentification par mappage de certificat client, puis cliquez sur OK.
Procédure
Comment activer l’authentification par mappage de certificat client pour un serveur
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, cliquez sur le nom du serveur.
Dans le volet Accueil du serveur, double-cliquez sur Authentification.
Dans la page Authentification, cliquez sur Activer dans le volet Actions.
Configuration
Attributs
Attribut | Description |
---|---|
enabled |
Attribut booléen facultatif. Spécifie si l’authentification par mappage de certificat client à l’aide d’Active Directory est activée. Pour que ce paramètre prenne effet, vous devez définir cet attribut avec le Gestionnaire IIS. Si vous utilisez une autre méthode pour définir cet attribut, vous devez redémarrer le serveur web pour que le paramètre prenne effet. La valeur par défaut est false . |
Éléments enfants
Aucune.
Exemple Configuration
L’exemple de configuration suivant active l’authentification par mappage de certificat client à l’aide d’Active Directory pour le site web par défaut et configure le site pour exiger SSL et négocier des certificats clients.
<location path="Default Web Site">
<system.webServer>
<security>
<access sslFlags="Ssl, SslNegotiateCert" />
<authentication>
<windowsAuthentication enabled="false" />
<anonymousAuthentication enabled="false" />
<digestAuthentication enabled="false" />
<basicAuthentication enabled="false" />
<clientCertificateMappingAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
Exemple de code
Les exemples de code suivants activent l’authentification par mappage de certificat client à l’aide d’Active Directory pour le site web par défaut et configurent le site pour exiger SSL et négocier des certificats clients.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/security/authentication/clientCertificateMappingAuthentication /enabled:"True" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/security/access /sslFlags:"Ssl, SslNegotiateCert" /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 clientCertificateMappingAuthenticationSection = config.GetSection("system.webServer/security/authentication/clientCertificateMappingAuthentication", "Default Web Site");
clientCertificateMappingAuthenticationSection["enabled"] = true;
ConfigurationSection accessSection = config.GetSection("system.webServer/security/access", "Default Web Site");
accessSection["sslFlags"] = @"Ssl, SslNegotiateCert";
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 clientCertificateMappingAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/clientCertificateMappingAuthentication", "Default Web Site")
clientCertificateMappingAuthenticationSection("enabled") = True
Dim accessSection As ConfigurationSection = config.GetSection("system.webServer/security/access", "Default Web Site")
accessSection("sslFlags") = "Ssl, SslNegotiateCert"
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var clientCertificateMappingAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/clientCertificateMappingAuthentication", "MACHINE/WEBROOT/APPHOST/Default Web Site");
clientCertificateMappingAuthenticationSection.Properties.Item("enabled").Value = true;
var accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Default Web Site");
accessSection.Properties.Item("sslFlags").Value = "Ssl, SslNegotiateCert";
adminManager.CommitChanges();
VBScript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set clientCertificateMappingAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/clientCertificateMappingAuthentication", "MACHINE/WEBROOT/APPHOST/Default Web Site")
clientCertificateMappingAuthenticationSection.Properties.Item("enabled").Value = True
Set accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Default Web Site")
accessSection.Properties.Item("sslFlags").Value = "Ssl, SslNegotiateCert"
adminManager.CommitChanges()