Ejemplo de código: Servicio Web ASP.NET

Actualizado: 19 de junio de 2015

Se aplica a: Azure

En este ejemplo se muestra cómo integrar Microsoft Azure Active Directory Access Control (también conocido como servicio de Access Control o ACS) en un servicio web simple. En este ejemplo se usa ASP.NET como host de servicio web y como cliente de línea de comandos. El servicio web ASP.NET requiere un token SWT emitido por ACS. El cliente solicita un token de ACS con un nombre de usuario y una contraseña registrados con ACS. El código de este ejemplo se encuentra en el subdirectorio ASPNETSimpleService (C#\WebServices\ASPNETSimpleService) del paquete de ejemplos de código de Microsoft Azure Active Directory Access Control (ACS).

Requisitos previos

Para ejecutar este ejemplo, necesitará lo siguiente:

  1. Para crear una cuenta en la página principal de Azure y crear un espacio de nombres Access Control.

  2. Visual Studio 2010 (cualquier versión)

Para obtener más información, consulte Requisitos previos de ACS (https://go.microsoft.com/fwlink/?LinkId=221065).

Configuración del ejemplo

La configuración de ACS necesaria para este ejemplo se puede realizar 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: Configurar el ejemplo mediante el Portal de administración de ACS

  2. Opción 2: Configurar el ejemplo mediante el servicio de administración de ACS

Opción 1: Configurar el ejemplo mediante el Portal de administración de ACS

Para configurar el ejemplo mediante el Portal de administración de ACS

  1. Vaya al Portal de administración de Microsoft Azure (https://manage.WindowsAzure.com), inicie sesión y, a continuación, haga clic en Active Directory. (Sugerencia de 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, App Services, 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 de Access Control Service.

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

    • En el campo Nombre, escriba ASPNET Simple Service.

    • En el campo Dominio, escriba https://localhost:8000/Service/

    • En el campo Url de retorno , escriba . https://localhost:8000/Service/

    • Seleccione SWT del cuadro de lista desplegable Formato de token.

    • En el campo Clave de firma de token, haga clic en Generar para crear una clave de firma de token. Copie esta clave para su posterior uso en la configuración.

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

    • No cambie los demás campos con valores predeterminados.

  5. Haga clic en Guardar y luego haga clic en Inicio para volver a la página de inicio del portal de administración de Access Control Service.

  6. Con el usuario de confianza registrado, ahora es el momento de crear las reglas que determinan las notificaciones que ACS emitirá a la aplicación. En este ejemplo, crearemos una regla que conceda una notificación de acción a cualquier nombre de usuario y contraseña registrados, junto con el valor reverse. Para crear esta regla, haga clic en Inicio para volver a la página de inicio del portal de administración de Access Control Service, haga clic en Grupos de reglas y luego haga clic en Grupo de reglas predeterminado para el servicio simple ASP.NET. Agregue una nueva regla con la configuración siguiente:

    • En la sección Emisor de notificaciones, seleccione Access Control Service.

    • 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 Escribir tipo y escriba action en el campo.

    • En la sección Valor de notificación de salida, seleccione Escribir valor y escriba reverse en el campo.

  7. A diferencia de los ejemplos del sitio web, este ejemplo se basa en las credenciales administradas por ACS. El último paso para configurar ACS es registrar el nombre de usuario y la contraseña de la aplicación cliente que se va a usar. Para configurar un nuevo nombre de usuario y una nueva contraseña, haga clic en Inicio para volver a la página de inicio del portal de administración de Access Control Service. Haga clic en Identidades de servicio, haga clic en Agregar y rellene el formulario. Para este ejemplo, use el nombre de usuario acssample, el tipo de credencial Password y la contraseña pass@word1.

  8. Haga clic en Guardar y luego haga clic en Inicio para volver a la página de inicio del portal de administración de Access Control Service.

Opción 2: Configurar el ejemplo mediante el servicio de administración de ACS

La solución de ejemplo Visual Studio tiene una aplicación de consola denominada ConfigureSample que usa el servicio de administración de ACS y los asistentes comunes definidos en la biblioteca de clases Comunes. Esta aplicación se puede usar para configurar un espacio de nombres de Access Control para usarlo con este ejemplo.

Para configurar el ejemplo mediante el servicio de administración de ACS

  1. Para configurar el ejemplo, abra SamplesConfiguration.cs (acs\Management\ManagementService\Common). Reemplace los marcadores de posición de la clase SamplesConfiguration de la biblioteca de clases comunes por información sobre el espacio de nombres de Access Control. Puede encontrar la información en el Portal de administración de ACS.

    Para ir al Portal de administración de ACS: vaya al Portal de administración de Microsoft Azure (https://manage.WindowsAzure.com), inicie sesión y, a continuación, haga clic en Active Directory. (Sugerencia de solución de problemas: falta el elemento "Active Directory" o no está disponible) Para administrar un espacio de nombres de 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.)

    • ServiceNamespace: escriba el nombre del espacio de nombres de Access Control.

    • ManagementServiceIdentityName : escriba el nombre de una cuenta de servicio de administración de ACS. El valor predeterminado es ManagementClient.

      Para buscar el nombre de la cuenta de servicio de administración, en el Portal de administración de ACS, haga clic en Servicio de administración. Las cuentas aparecen por nombre bajo Cuentas del servicio de administración.

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

      Para buscar la contraseña de la cuenta de servicio de administración, en el Portal de administración de ACS, haga clic en Servicio de administración. Haga clic en el nombre de una cuenta del servicio de administración y luego, en Credenciales, haga clic en Contraseña. La contraseña aparece en el campo Contraseña. Para copiar la contraseña, haga clic en Mostrar contraseña.

  2. Ejecute la aplicación ConfigureSample en Visual Studio. Esto configurará ACS 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.

Ejecutar el ejemplo

Para ejecutar el ejemplo

  1. Abra el ejemplo en Visual Studio. La solución consta de dos proyectos: servicio y cliente.

  2. Si aún no lo ha hecho, escriba los detalles del espacio de nombres de Access Control en Common\SamplesConfiguration.cs. Para obtener más información, vea el paso 1 de la opción 2: Configuración a través del servicio de administración de ACS. Los proyectos Service y Client también usan este archivo.

  3. Abra el archivo web.config en el proyecto Service. Escriba la clave de firma de token en los elementos AppSettings apropiados. Si configuró ACS mediante el servicio de administración, este es el valor que copió en el Portapapeles. Para obtener la clave de firma de token, consulte el área Certificados y claves del portal. A continuación se muestra un fragmento de código que muestra esta área del archivo web.config del servicio.

    <appSettings>
        <add key="IssuerSigningKey" value="...update to your signing key..."/>
      </appSettings>
    
  4. Abra el archivo app.config en el proyecto Client. Escriba su nombre de usuario y su clave en los elementos AppSettings apropiados. Para obtener el nombre de usuario y la contraseña previamente registrados, consulte el área Identidades de servicio del portal. A continuación se muestra un fragmento de código que muestra esta área (debidamente actualizada) del archivo app.config del proyecto Client.

      <appSettings>
        <add key="OAuthUserName" value="acssample" />
        <add key="OAuthPassword" value="pass@word1" />
        <add key="ServiceAddress" value="https://localhost:8000/Service/Default.aspx" />   
      </appSettings>
    
  5. Para ejecutar el ejemplo, inicie el servicio y luego inicie el cliente. En el cliente, escriba una cadena para revertir. A continuación, la ventana de la consola de cliente debe mostrar la salida que indica que ha recibido un token de ACS.