Exportar (0) Imprimir
Expandir todo

Ejemplo de código: Autenticación de certificado de OAuth 2.0

Publicada: mayo de 2011

Actualizado: noviembre de 2014

Se aplica a: Azure

En este ejemplo se muestra cómo autenticarse en Active Directory Access Control de Microsoft Azure (también conocido como Access Control Service o ACS) usando el protocolo OAuth 2.0 al presentar un token SAML firmado por un certificado X.509. Este certificado se corresponde con un ServiceIdentity configurado en ACS, y ACS emite un SWT con una notificación nameidentifier de ServiceIdentity. Este SWT se usa para autenticarse en un recurso protegido de OAuth 2.0. Este ejemplo cumple con el borrador 13 del protocolo OAuth 2.0. El código de este ejemplo se encuentra en el subdirectorio OAuth2 (C#\OAuth2) del paquete Ejemplos de código de control de acceso (ACS) a Microsoft Azure Active Directory.

Para ejecutar este ejemplo, necesitará realizar lo siguiente:

  1. Una cuenta en el portal de Azure y un Espacio de nombres Access Control.

  2. Visual Studio 2010 (cualquier versión)

Para obtener más detalles, vea Requisitos previos de ACS (http://go.microsoft.com/fwlink/?LinkId=221065).

La configuración del ACS necesaria para este ejemplo se puede definir mediante el Portal de administración de ACS o el Servicio de administración de ACS. En este tema se describen ambas opciones.

  1. Opción 1: Configuración del ejemplo mediante el Portal de administración de ACS

  2. Opción 2: Configuración del ejemplo mediante el Servicio de administración de ACS

  1. Vaya al Portal de administración de Microsoft Azure (https://manage.WindowsAzure.com), inicie sesión y haga clic en Active Directory. (Sugerencia para solución de problemas: falta el elemento "Active Directory" o no está disponible)

  2. Para crear un espacio de nombres Access Control, haga clic en Nuevo, Servicios de aplicaciones, Access Control y, a continuación, en Creación rápida. (O haga clic en espacios de nombres Access Control antes de hacer clic en Nuevo.)

  3. Para administrar el espacio de nombres Access Control, seleccione el espacio de nombres y, a continuación, haga clic en Administrar. (O haga clic en espacios de nombres Access Control, seleccione el espacio de nombres y, a continuación, haga clic en Administrar.)

    Esta acción abre el portal de administración del Servicio de control de acceso.

  4. Para registrar la aplicación en ACS, haga clic en Aplicaciones de usuario de confianza, haga clic en Agregar, escriba la información siguiente en el formulario:

    • En el campo Nombre, escriba OAuth2 RP.

    • En el campo Dominio kerberos, escriba https://oauth2relyingparty.

    • En el campo Formato de token, seleccione SWT.

    • Haga clic en Generar para crear una clave.

    • En el campo Fecha de expiración, escriba la fecha de expiración apropiada para la clave. La clave ya no será válida en esa fecha.

  5. Haga clic en Guardar.

  6. Una vez registrado el usuario de confianza, deberá crear las reglas que determinen las notificaciones que ACS emitirá para su aplicación. En este ejemplo, crearemos una regla que conceda el pase de cualquier notificación generada por ACS.

    Para crear esta regla, haga clic en Grupos de reglas y luego haga clic en Grupo de reglas predeterminado para OAuth2 RP. Para agregar una nueva regla, use la configuración siguiente:

    • En la sección Emisor de notificaciones, seleccione Servicio de control de acceso.

    • En la sección Tipo de notificación de entrada, seleccione Cualquiera.

    • En la sección Valor de notificación de entrada, seleccione Cualquiera.

    • En la sección Tipo de notificación de salida, seleccione Tipo de notificación de entrada de paso a través.

    • En la sección Valor de notificación de salida, seleccione Valor de notificación de entrada de paso a través.

  7. Este ejemplo se basa en las credenciales administradas por ACS.

    Para configurar un nuevo certificado de cliente para la aplicación cliente, haga clic en Identidades de servicio, haga clic en Agregar y luego escriba un nombre. Agregue un tipo de credencial de Certificado X.509 y vaya al archivo ACS2ClientCertificate.cer en la carpeta Certificates de este ejemplo. Haga clic en Guardar.

  8. Ahora que se ha configurado ACS, abra Visual Studio.

La solución de Visual Studio de ejemplo tiene una aplicación de consola llamada ConfigureSample que usa el servicio de administración de ACS y las aplicaciones auxiliares comunes definidas en la biblioteca de la clase Common. Esta aplicación se puede usar para configurar su Espacio de nombres Access Control para usarlo con este ejemplo.

  1. Actualice la biblioteca de la clase Common con la información sobre su Espacio de nombres Access Control. Abra SamplesConfiguration.cs y escriba lo siguiente:

    • ServiceNamespace: nombre de su Espacio de nombres Access Control

    • ManagementServiceIdentityName: nombre de la cuenta del servicio de administración

    • ManagementServiceIdentityKey: contraseña asociada a la cuenta del servicio de administración

    • AcsHostUrl: nombre de host de ACS

  2. Ejecute la aplicación ConfigureSample en Visual Studio. Con esto, ACS se configurará para ejecutar este ejemplo.

  3. Cuando la aplicación ConfigureSample haya finalizado, enviará a la consola la clave de firma de usuario de confianza generada. Copie esta clave en el portapapeles.

  1. Abra el ejemplo en Visual Studio. Además de ConfigureSample y Common, la solución consta de dos proyectos: ProtectedResourceWebApp y Client.

  2. Si aún no lo ha hecho, escriba los detalles del Espacio de nombres Access Control en Common\SamplesConfiguration.cs. Para más información, vea el paso 1 de la opción 2: Configuración mediante el servicio de administración de ACS anterior. El proyecto Client también usa este archivo.

  3. Abra el archivo web.config en el proyecto ProtectedResourceWebApp.

  4. Escriba la clave de firma de token en los elementos AppSettings apropiados. Si usó el servicio de administración para configurar ACS, este es el valor que copió en el portapapeles. Para obtener la clave de firma de token, haga clic en Certificados y claves en el portal de ACS. A continuación encontrará un fragmento de código que muestra esta sección del archivo web.config:

    <appSettings>
       <add key="SigningKey" value="...Copy Signing Key..."/>
    </appSettings>
    
  5. Para ejecutar el ejemplo, inicie ProtectedResourceWebApp. Aparece un explorador web, pero el cuadro de texto está vacío porque el explorador web no se ha autenticado.

  6. Ejecute Client. El HTML aparecerá en la ventana de la consola. Tenga en cuenta que el HTML indica que el usuario se ha autenticado y muestras las notificaciones de ACS.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft