Client Client Certificate Mapping Authentication <ClientCertificateMappingAuthentication>

Panoramica

<clientCertificateMappingAuthentication> elemento dell'elemento <authentication> specifica se il mapping dei certificati client tramite Active Directory è abilitato per Internet Information Services (IIS) 7.

Nota

L'autenticazione di mapping dei certificati client con Active Directory è diversa dall'autenticazione del mapping dei certificati client tramite IIS nei modi seguenti:

  • Autenticazione mapping certificati client tramite Active Directory : questo metodo di autenticazione richiede che il server IIS 7 sia membro di un dominio Active Directory e che gli account utente siano archiviati in Active Directory. Questo metodo di autenticazione del certificato client ha ridotto le prestazioni a causa del round trip al server Active Directory.
  • Autenticazione del mapping dei certificati client IIS : questo metodo di autenticazione non richiede Active Directory e pertanto funziona con i server autonomi. Questo metodo di autenticazione del certificato client ha migliorato le prestazioni, ma richiede una maggiore configurazione e richiede l'accesso ai certificati client per creare mapping.

Per altre informazioni, vedere Configurazione dell'autenticazione in IIS 7.0 nel sito Web Microsoft TechNet.

Compatibilità

Versione Note
IIS 10.0 L'elemento <clientCertificateMappingAuthentication> non è stato modificato in IIS 10.0.
IIS 8,5 L'elemento <clientCertificateMappingAuthentication> non è stato modificato in IIS 8.5.
IIS 8,0 L'elemento <clientCertificateMappingAuthentication> non è stato modificato in IIS 8.0.
IIS 7,5 L'elemento <clientCertificateMappingAuthentication> non è stato modificato in IIS 7.5.
IIS 7.0 L'elemento <clientCertificateMappingAuthentication> dell'elemento <authentication> è stato introdotto in IIS 7.0.
IIS 6.0 N/D

Installazione

L'elemento <clientCertificateMappingAuthentication> non è disponibile nell'installazione predefinita di IIS 7 e versioni successive. Per installarlo, seguire questa procedura.

Windows Server 2012 o Windows Server 2012 R2

  1. Sulla barra delle applicazioni fare clic su Server Manager.
  2. In Server Manager fare clic sul menu Gestisci e quindi su Aggiungi ruoli e funzionalità.
  3. Nella procedura guidata Aggiungi ruoli e funzionalità fare clic su Avanti. Selezionare il tipo di installazione e fare clic su Avanti. Selezionare il server di destinazione e fare clic su Avanti.
  4. Nella pagina Ruoli server espandere Server Web (IIS), server Web, sicurezzae quindi selezionare Autenticazione mapping certificati client. Fare clic su Avanti.
    Immagine del riquadro Server Web e Sicurezza espansa con l'opzione Autenticazione mapping certificati client selezionata. .
  5. Nella pagina Selezione funzionalità fare clic su Avanti.
  6. Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
  7. Nella pagina Risultati fare clic su Chiudi.

Windows 8 o Windows 8.1

  1. Nella schermata Start spostare il puntatore fino all'angolo inferiore sinistro, fare clic con il pulsante destro del mouse sul pulsante Start e quindi scegliere Pannello di controllo.
  2. In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva funzionalità di Windows.
  3. Espandere Internet Information Services, servizi Web a livello globale, sicurezza, quindi selezionare Autenticazione mapping certificati client.
    Screenshot del riquadro Servizi Web globale espanso e Autenticazione mapping certificati client selezionata.
  4. Fare clic su OK.
  5. Fare clic su Close.

Windows Server 2008 o Windows Server 2008 R2

  1. Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Server Manager.
  2. Nel riquadro della gerarchia Server Manager espandere Ruoli, quindi fare clic su Server Web (IIS).
  3. Nel riquadro Server Web (IIS) scorrere fino alla sezione Servizi ruolo e quindi fare clic su Aggiungi servizi ruolo.
  4. Nella pagina Selezione servizi ruolo della Procedura guidata Aggiungi servizi ruolo selezionare Autenticazione mapping certificati client e quindi fare clic su Avanti.
    Immagine della pagina Selezione servizi ruolo con il riquadro Sicurezza espanso e l'opzione Autenticazione mapping certificati client selezionata.
  5. Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
  6. Nella pagina Risultati fare clic su Chiudi.

Windows Vista o Windows 7

  1. Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
  2. In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva funzionalità di Windows.
  3. Espandere Internet Information Services, quindi selezionare Autenticazione mapping certificati client, quindi fare clic su OK.
    Screenshot del riquadro Internet Information Services espanso e Autenticazione mapping certificato client evidenziata.

Procedure

Come abilitare l'autenticazione del mapping dei certificati client per un server

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

      • Sulla barra delle applicazioni fare clic su Server Manager, scegliere Strumenti, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows 8 o Windows 8.1:

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni fare clic sul nome del server.

  3. Nel riquadro Home del server fare doppio clic su Autenticazione.
    Screenshot del riquadro Home dei server che mostra l'opzione Autenticazione evidenziata.

  4. Nella pagina Autenticazione fare clic su Abilita nel riquadro Azioni .
    Immagine del riquadro Azioni nella pagina Autenticazione con l'opzione Autenticazione del certificato client di Active Directory evidenziata.

Configurazione

Attributi

Attributo Descrizione
enabled Attributo booleano facoltativo.

Specifica se l'autenticazione di mapping dei certificati client tramite Active Directory è abilitata. Per rendere effettiva questa impostazione, è necessario impostare questo attributo con Gestione IIS. Se si utilizza un altro metodo per impostare questo attributo, è necessario riavviare il server Web per rendere effettiva l'impostazione.

Il valore predefinito è false.

Elementi figlio

Nessuno.

Esempio di configurazione

Nell'esempio di configurazione seguente viene abilitata l'autenticazione del mapping dei certificati client tramite Active Directory per il sito Web predefinito e viene configurato il sito per richiedere certificati client SSL e negoziare i certificati client.

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

Codice di esempio

Gli esempi di codice seguenti abilitano l'autenticazione del mapping dei certificati client usando Active Directory per il sito Web predefinito e configurano il sito per richiedere certificati SSL e negoziare i certificati client.

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

Nota

È necessario assicurarsi di impostare il parametro commit su apphost quando si usa AppCmd.exe per configurare queste impostazioni. In questo modo le impostazioni di configurazione vengono confermate nella sezione relativa al percorso appropriato nel file 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()