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
- En la barra de tareas, haga clic en Administrador del servidor.
- En Administrador del servidor, haga clic en el menú Administrar y, después, haga clic en Agregar roles y características.
- 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.
- 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.
. - En la página Seleccionar características, haz clic en Siguiente.
- En la página Confirmar selecciones de instalación, haga clic en Instalar.
- En la página Resultados , haga clic en Cerrar.
Windows 8 o Windows 8.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.
- En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
- 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.
- Haga clic en OK.
- Haga clic en Cerrar.
Windows Server 2008 o Windows Server 2008 R2
- En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, luego, haga clic en Administrador del servidor.
- En el panel de jerarquía del Administrador del servidor, expanda Roles y, luego, haga clic en Servidor web (IIS).
- En el panel Servidor web (IIS), desplácese hasta la sección Servicios de rol y, luego, haga clic en Agregar servicios de rol.
- 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.
- En la página Confirmar selecciones de instalación, haz clic en Instalar.
- En la página Resultados , haga clic en Cerrar.
Windows Vista o Windows 7
- En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
- En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
- Expanda Internet Information Services, seleccione Autenticación de asignación de certificados de cliente y, a continuación, haga clic en Aceptar.
Procedimientos
Habilitación de la autenticación de asignación de certificados de cliente para un servidor
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).
En el panel Conexiones, haga clic en el nombre del servidor.
En el panel Inicio del servidor, haga doble clic en Autenticación.
En la página Autenticación, haga clic en Habilitar en el panel Acciones.
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()