Autenticación de asignación de certificados de cliente <clientCertificateMappingAuthentication>

Información general

El elemento <clientCertificateMappingAuthentication> del elemento <authentication> especifica si la asignación de certificados de cliente mediante Active Directory está habilitada para Internet Information Services (IIS) 7.

Nota:

La autenticación de asignación de certificados de cliente con Active Directory difiere de la autenticación de asignación de certificados de cliente mediante IIS en los siguientes aspectos:

  • Autenticación de asignación de certificados de cliente mediante Active Directory: este método de autenticación requiere que el servidor IIS 7 sea miembro de un dominio de Active Directory y las cuentas de usuario se almacenan en Active Directory. Este método de autenticación de certificados de cliente ha reducido el rendimiento debido al recorrido de ida y vuelta al servidor de Active Directory.
  • Autenticación de asignación de certificados de cliente de IIS: este método de autenticación no requiere Active Directory y, por tanto, funciona con servidores independientes. Este método de autenticación de certificados de cliente ha aumentado el rendimiento, pero requiere más configuración y requiere acceso a los certificados de cliente para crear asignaciones.

Para obtener más información, consulte Configuración de la autenticación en IIS 7.0 en el sitio web de Microsoft TechNet.

Compatibilidad

Versión Notas
IIS 10.0 El elemento <clientCertificateMappingAuthentication> no se modificó en IIS 10.0.
IIS 8.5 El elemento <clientCertificateMappingAuthentication> no se modificó en IIS 8.5.
IIS 8.0 El elemento <clientCertificateMappingAuthentication> no se modificó en IIS 8.0.
IIS 7.5 El elemento <clientCertificateMappingAuthentication> no se modificó en IIS 7.5.
IIS 7.0 El elemento <clientCertificateMappingAuthentication> del elemento <authentication> se introdujo en IIS 7.0.
IIS 6,0 N/D

Configuración

El elemento <clientCertificateMappingAuthentication> no está disponible en la instalación predeterminada de IIS 7 y versiones posteriores. Para instalarlo, siga estos pasos.

Windows Server 2012 o Windows Server 2012 R2

  1. En la barra de tareas, haga clic en Administrador del servidor.
  2. En Administrador del servidor, haga clic en el menú Administrar y, después, haga clic en Agregar roles y características.
  3. En el asistente para Agregar roles y características, haga clic en Siguiente. Seleccione el tipo de instalación y haga clic en Siguiente. Seleccione el servidor de destino y haga clic en Siguiente.
  4. En la página Roles de servidor, expanda Servidor web (IIS), expanda Servidor web, expanda Seguridad y, a continuación, seleccione Autenticación de asignación de certificado de cliente. Haga clic en Next.
    Image of Web Server and Security pane expanded with Client Certificate Mapping Authentication selected..
  5. En la página Seleccionar características, haz clic en Siguiente.
  6. En la página Confirmar selecciones de instalación, haga clic en Instalar.
  7. En la página Resultados , haga clic en Cerrar.

Windows 8 o Windows 8.1

  1. En la pantalla Inicio, mueva el puntero hasta la esquina inferior izquierda, haga clic con el botón derecho en el botón Inicio y, a continuación, haga clic en Panel de control.
  2. En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
  3. Expanda Internet Information Services, expanda Servicios World Wide Web, expanda Seguridad y, a continuación, seleccione Autenticación de asignación de certificados de cliente.
    Screenshot of World Wide Web Services pane expanded and Client Certificate Mapping Authentication selected.
  4. Haga clic en OK.
  5. Haga clic en Cerrar.

Windows Server 2008 o Windows Server 2008 R2

  1. En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, luego, haga clic en Administrador del servidor.
  2. En el panel de jerarquía del Administrador del servidor, expanda Roles y, luego, haga clic en Servidor web (IIS).
  3. En el panel Servidor web (IIS), desplácese hasta la sección Servicios de rol y, luego, haga clic en Agregar servicios de rol.
  4. En la página Seleccionar servicios de rol del Asistente para agregar servicios de rol, seleccione Autenticación de asignación de certificados de cliente y, a continuación, haga clic en Siguiente.
    Image of Select Role Services page with Security pane expanded and Client Certificate Mapping Authentication selected.
  5. En la página Confirmar selecciones de instalación, haz clic en Instalar.
  6. En la página Resultados , haga clic en Cerrar.

Windows Vista o Windows 7

  1. En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
  2. En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
  3. Expanda Internet Information Services, seleccione Autenticación de asignación de certificados de cliente y, a continuación, haga clic en Aceptar.
    Screenshot of Internet Information Services pane expanded and Client Certificated Mapping Authentication highlighted.

Procedimientos

Habilitación de la autenticación de asignación de certificados de cliente para un servidor

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, haga clic en el nombre del servidor.

  3. En el panel Inicio del servidor, haga doble clic en Autenticación.
    Screenshot of servers Home pane displaying Authentication highlighted.

  4. En la página Autenticación, haga clic en Habilitar en el panel Acciones.
    Image of Actions pane in Authentication page displaying Active Directory Client Certificate Authentication option highlighted.

Configuración

Atributos

Atributo Descripción
enabled Atributo Boolean opcional.

Especifica si está activada la autenticación de asignación de certificados de cliente mediante Active Directory. Para que esta configuración surta efecto, debe establecer este atributo con el administrador de IIS. Si usa cualquier otro método para establecer este atributo, debe reiniciar el servidor web para que la configuración surta efecto.

El valor predeterminado es false.

Elementos secundarios

Ninguno.

Ejemplo de configuración

El siguiente ejemplo de configuración habilita la autenticación de asignación de certificados de cliente mediante Active Directory para el sitio web predeterminado y configura el sitio para que requiera SSL y negocie certificados de cliente.

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

Código de ejemplo

Los ejemplos de código siguientes habilitan la autenticación de asignación de certificados de cliente mediante Active Directory para el sitio web predeterminado y configuran el sitio para requerir certificados SSL y negociar certificados de cliente.

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:

Debe asegurarse de establecer el parámetro de confirmación en apphost cuando use AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo 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()