Cómo: Proteger una aplicación ASP.NET mediante certificados de cliente

Seleccione idioma Seleccione idioma
Id. de artículo: 315588 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Para las aplicaciones Web altamente seguras, tales como sitios de banca de Internet, es aconsejable implementar una solución más segura para la autenticación de usuario que la combinación de nombre y contraseña de usuario. Puede utilizar certificados digitales de cliente para comprobar la identidad del usuario. Además, puede asignar certificados digitales de cliente a cuentas de Windows en el servidor si es necesario.


Requisitos

La lista siguiente describe el hardware recomendado, software, infraestructura de red y service Pack que necesitan:
  • Servidor de Microsoft Windows 2000 Service Pack 2
  • Microsoft Internet Explorer 6.0
  • Microsoft Visual Studio .NET
  • Servicios de Microsoft Certificate Server (si debe generar sus propios certificados)
En este artículo se supone que está familiarizado con los temas siguientes:
  • Desarrollo de ASP.NET con Visual Basic o Visual C#
  • Configuración de Microsoft Internet Information Services (IIS)

Crear la aplicación Web de ASP.NET

En esta sección, se crea una sencilla aplicación de ASP.NET. En las secciones siguientes, utilizará la autenticación de certificado de cliente para garantizar esta aplicación.
  1. Inicie Visual Studio .NET de y, a continuación, cree un nuevo proyecto de aplicación Web de ASP.NET denominado SecureSite.
  2. Arrastrar un Etiqueta del cuadro de herramientas al formulario Web WebForm1.aspx y, a continuación, establezca su ID. propiedad greetingLabel.
  3. Arrastre un segundo Etiqueta en WebForm1.aspx y, a continuación, establezca su ID. propiedad certDataLabel.
  4. Agregue el código siguiente a la Page_Load procedimiento de evento:
    'Visual Basic
    Dim username As String
    userName = User.Identity.Name
    greetingLabel.Text = "Welcome " & userName
    Dim cert As HttpClientCertificate = Request.ClientCertificate
    If cert.IsPresent Then
    	'Get the Organization (O) field from the Subject section.
    	certDataLabel.Text = cert.Get("Subject O")
    Else
    	certDataLabel.Text = "No certificate was found."
    End If
    					
    //Visual C#
    string userName;
    userName = User.Identity.Name;
    greetingLabel.Text = "Welcome " + userName;
    HttpClientCertificate cert = Request.ClientCertificate;
    if (cert.IsPresent)
        certDataLabel.Text = cert.Get("SUBJECT O");
    else
        certDataLabel.Text="No certificate was found.";
    					
  5. Crear y guardar el proyecto y cierre Visual Studio.
  6. Inicie Internet Explorer y vaya a la página siguiente:
    http://localhost/SecureSite/WebForm1.aspx
    Observe que la página muestra el "Bienvenido" y "se ha encontrado ningún certificado" mensajes. Observe que la página no muestra un nombre de usuario porque no se ha autenticado el usuario.
  7. Cierre Internet Explorer.

Configurar el servidor Web para la autenticación basada en certificados

En esta sección, se configura el proyecto SecureSite para utilizar certificados para la autenticación. Para utilizar certificados de cliente, debe instalar un certificado de servidor. Puede utilizar un certificado de servidor existente de cualquier entidad emisora o puede generar un certificado de servidor con servicios de Microsoft Certificate Server.


Para crear una solicitud de certificado de servidor

  1. En el Inicio menú, seleccione Programas, seleccione Herramientas administrativasy, a continuación, haga clic en Administrador de servicios Internet.
  2. Expanda el nodo del servidor y, a continuación, haga clic en Sitio Web predeterminado.
  3. En el Acción menú, haga clic en Propiedades.
  4. En el Seguridad de directorios ficha, haga clic en Certificado de servidor. Siga estos pasos en el asistente:
    1. Haga clic en Siguiente en la primera página del asistente.
    2. En el Certificado de servidor la página, haga clic en crear un certificado nuevoy, a continuación, haga clic en Siguiente.
    3. En la página Petición demorada o inmediata , haga clic en Preparar la petición ahora pero enviarla más tardey, a continuación, haga clic en Siguiente.
    4. En la página nombre y configuración de seguridad , acepte la configuración predeterminada y, a continuación, haga clic en Siguiente.
    5. En el Información de la organización tipo de la página MSDN para la organización, escriba Cómo los artículos para la unidad organizativa y, a continuación, haga clic en Siguiente.
    6. En el Nombre común de su sitio tipo de la página localhosty, a continuación, haga clic en Siguiente.
    7. En el Información geográfica la página, escriba el país, la región y la información de la ciudad y, a continuación, haga clic en Siguiente.
    8. En el Nombre de archivo de petición de certificado la página, acepte el nombre de archivo predeterminado (normalmente c:\certreq.txt) y, a continuación, haga clic en Siguiente.
    9. En el Resumen del archivo de solicitud página, confirme que todos los datos son correctos y, a continuación, haga clic en Siguiente.
    10. Haga clic en Finalizar para cerrar al asistente.
  5. Abra el archivo de certificado que se genera y, a continuación, copie todo el contenido del archivo del certificado al Portapapeles.

Para enviar una solicitud de certificado de servidor

  1. Inicie Internet Explorer y vaya a la página siguiente:
    http://localhost/certsrv
    NOTA: Los servicios de Microsoft Certificate Server debe estar instalado.
  2. Siga estos pasos en el asistente:
    1. Haga clic en Solicitar un certificadoy, a continuación, haga clic en Siguiente.
    2. En el Elegir tipo de solicitud la página, haga clic en solicitud avanzaday, a continuación, haga clic en Siguiente.
    3. En el Solicitudes de certificados avanzadas la página, haga clic en Enviar una solicitud de certificado con base64 codificado el archivo PKCS #10y, a continuación, haga clic en Siguiente.
    4. En el Enviar una solicitud guardada la página, haga clic en el cuadro de solicitud de certificado codificado de Base64 (PKCS #10 o #7) y, a continuación, presione la combinación de teclas CTRL+V para pegar la solicitud de certificado que copió anteriormente en el Portapapeles. Haga clic en Enviar.
  3. Cierre Internet Explorer.

Para emitir un certificado de servidor

  1. En el Inicio menú, seleccione Programas, seleccione Herramientas administrativasy, a continuación, haga clic en Entidad emisora de certificados.
  2. Expanda el nodo de la entidad emisora de certificados y, a continuación, seleccione Solicitudes pendientes.
  3. Seleccione la solicitud de certificado que acaba de enviar. En el Acción menú, seleccione Todas las tareasy, a continuación, haga clic en Problema.
  4. Confirme que el certificado aparece en la carpeta certificados emitidos y, a continuación, haga doble clic en el certificado para verla.
  5. En el Detalles ficha, haga clic en Copiar en archivo. Guarde el certificado como Base64 codificado X.509 a C:\Servercert.cer.
  6. Cerrar el Propiedades cuadro de diálogo para el certificado.
  7. Cierre la herramienta entidad emisora de certificados.

Para instalar un certificado de servidor

  1. En el Inicio menú, seleccione Programas, seleccione Herramientas administrativasy, a continuación, haga clic en Administrador de servicios Internet.
  2. Expanda el nodo del servidor y, a continuación, haga clic en Sitio Web predeterminado.
  3. En el Acción menú, haga clic en Propiedades.
  4. En el Seguridad de directorios ficha, haga clic en Certificado de servidor. Siga estos pasos en el asistente:
    1. Haga clic en Siguiente en la primera página del asistente.
    2. Haga clic en procesar la petición pendiente para instalar el certificado y, a continuación, haga clic en Siguiente.
    3. Busque el archivo de certificado de C:\Servercert.cer que guardó anteriormente. Haga clic en Siguiente dos veces y, a continuación, haga clic en Finalizar.
  5. Haga clic en ACEPTAR para cerrar el Propiedades cuadro de diálogo.

Para configurar el sitio de SecureSite para SSL y los certificados de cliente

  1. En el Administrador de servicios Internet, seleccione el subweb de SecureSite y ver sus propiedades.
  2. Siga estos pasos en el asistente:
    1. En el Seguridad de directorios ficha, haga clic en Editar en la sección comunicaciones seguras .
    2. Active la casilla de verificación Requerir canal seguro (SSL) . Esto garantiza que se cifran las comunicaciones con este subweb.
    3. Active la casilla de verificación requerir certificados de cliente . Esto garantiza que el sitio puede verse sólo aquellos usuarios que tengan instalado un certificado de cliente.
    4. Active la casilla de verificación Habilitar asignación de certificado de cliente . Esto se utiliza para asignar certificados de cliente a cuentas de usuario de Windows.
    5. Haga clic en Editar. Observe que puede asignar cada certificado a una cuenta de Windows individual, o puede asignar muchos certificados a la misma cuenta de Windows.
    6. En el Varios-1 ficha, haga clic en Agregar Para agregar una regla de asignación. El nombre de esta regla Regla de asignacióny, a continuación, haga clic en Siguiente.
    7. Haga clic en Nuevo Para crear una nueva regla en la que el campo de sub O (organización) de la sección de asunto del certificado tiene los criterios "MSDN". Haga clic en ACEPTAR Para aplicar la asignación a usuarios cuyos certificados contienen un atributo de la organización de "MSDN". En un entorno de producción, la regla de asignación es más estricta y a menudo valida al emisor del certificado, así como el tema. Haga clic en Siguiente.
    8. En el Asignación página, seleccione Aceptar este certificado para la autenticación de inicio de sesión. Haga clic en Examinar Para seleccionar la cuenta de Windows que desea asignar a los usuarios MSDN. Para este ejemplo, utilice la cuenta de administrador. (En una aplicación real, se crea una cuenta dedicada de Windows con privilegios restringidos.) Asegúrese de que escribe la contraseña correcta.
    9. Haga clic en Finalizary, a continuación, confirme la contraseña.
  3. Haga clic en ACEPTAR para cerrar el Asignaciones de cuentas cuadro de diálogo.
  4. Haga clic en ACEPTAR para cerrar el Comunicaciones seguras cuadro de diálogo. Si se le pide para aplicar la configuración a las carpetas y los archivos secundarios, haga clic en Seleccionar todoy, a continuación, haga clic en ACEPTAR.
  5. Haga clic en ACEPTAR para cerrar el Propiedades de SecureSite cuadro de diálogo.

Para comprobar la autenticación basada en certificados

  1. Inicie Internet Explorer y vaya a la página siguiente:
    https://localhost/SecureSite/WebForm1.aspx
    Observe que utilizan el protocolo seguro https.
  2. Confirme que recibe un mensaje de que la página requiere un certificado de cliente.
  3. Cierre Internet Explorer.

Instalar un certificado de cliente

En esta sección, se instala un certificado de cliente. Puede utilizar un certificado de cualquier entidad emisora de certificados, o puede utilizar los servicios de Microsoft Certificate Server para generar su propio certificado.


Para solicitar un certificado de cliente

  1. Inicie Internet Explorer y vaya a la página siguiente:
    http://localhost/certsrv
  2. Siga estos pasos en el asistente:
    1. Haga clic en Solicitar un certificadoy, a continuación, haga clic en Siguiente.
    2. En el Elegir tipo de solicitud Haga clic en Certificado de explorador Weby, a continuación, haga clic en Siguiente.
    3. Escriba la información necesaria. Asegúrese de que escribe MSDN en el Compañía cuadro de texto.
    4. Haga clic en Enviar para completar la solicitud.
  3. Cierre Internet Explorer.

Para emitir un certificado de cliente

  1. Inicie la herramienta entidad emisora de certificados desde el Herramientas administrativas grupo de programas.
  2. Expanda el nodo de la entidad emisora de certificados y, a continuación, seleccione Solicitudes pendientes.
  3. Seleccione la solicitud de certificado que acaba de enviar. En el Acción menú, seleccione Todas las tareasy, a continuación, haga clic en Problema.
  4. Confirme que el certificado aparece en la carpeta certificados emitidos y, a continuación, haga doble clic en el certificado para verla.
  5. En el Detalles ficha, haga clic en Copiar en archivo. Guarde el certificado como Base64 codificado X.509 a C:\Clientcert.cer.
  6. Cerrar el Propiedades cuadro de diálogo para el certificado.
  7. Cierre la herramienta entidad emisora de certificados.

Para instalar un certificado de cliente

  1. Abra el Explorador de Windows y haga doble clic en Clientcert.cer para ver el archivo de certificado.
  2. Siga estos pasos en el Asistente para importación de certificados:
    1. En la primera página del asistente, haga clic en Instalar certificadoy, a continuación, haga clic en Siguiente.
    2. Active la casilla de verificación Seleccionar automáticamente el almacén de certificados según el tipo de certificado y, a continuación, haga clic en Siguiente.
    3. Haga clic en Finalizar para completar al asistente.
  3. El cuadro de mensaje de confirmación y, a continuación, haga clic en ACEPTAR para cerrar el certificado.

Comprobar que funciona

En esta sección, compruebe que las aplicaciones de cliente con certificados que especifican "MSDN" como la compañía puede ven el sitio SecureSite. Los usuarios se asignan a la cuenta especificada en la regla de asignación.
  1. Inicie Internet Explorer y vaya a la página siguiente:
    https://localhost/SecureSite/WebForm1.aspx
  2. Confirme que:
    • Aparecerá la página Web.
    • Se utiliza la cuenta de Windows correspondiente.
    • La organización "MSDN" se lee desde el certificado.

Referencias

Para obtener información adicional acerca de cómo utilizar Secure Sockets Layer (SSL) para proteger un sitio Web, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
298805 Cómo: Habilitar SSL para todos los clientes que interactúan con su sitio Web en servicios de Internet Information Server

Propiedades

Id. de artículo: 315588 - Última revisión: lunes, 11 de noviembre de 2013 - Versión: 5.0
La información de este artículo se refiere a:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
  • Servicios de Microsoft Internet Information Server 6.0
Palabras clave: 
kbhowtomaster kbsecurity kbmt KB315588 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 315588

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com