Exportar (0) Imprimir
Expandir todo

Ejemplo de código: Página de inicio de sesión personalizada MVC 3 de ASP.NET

Publicada: mayo de 2011

Actualizado: marzo de 2015

Se aplica a: Azure

Este ejemplo muestra cómo crear una página de inicio de sesión personalizada o una página de detección de dominio de inicio en una aplicación MVC3 de ASP.NET que use Active Directory Access Control de Microsoft Azure (también conocido como Access Control Service o ACS). El código de este ejemplo se encuentra en el subdirectorio MVC3CustomSignInPage (C#\Websites\MVC3CustomSignInPage) 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)

  3. MVC3 de ASP .NET (http://www.asp.net/mvc/mvc3)

  4. SDK de Windows Identity Foundation

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. 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 establecer relaciones con los proveedores de identidades, haga clic en Proveedores de identidades y luego seleccione los proveedores de identidades que desea usar como, por ejemplo, Google, Yahoo! y Facebook. Para obtener más información sobre cómo obtener claves de requisitos previos para Facebook, vea Procedimiento: Configuración de Facebook como proveedor de identidades (http://go.microsoft.com/fwlink/?LinkId=221151). Luego haga clic en el vínculo Inicio situado en el menú de navegación izquierdo de la página para volver a la página principal.

  5. Para registrar la aplicación en el ACS, en el Portal de administración de Access Control Service, haga clic en el vínculo Aplicaciones de usuario de confianza situado en la página principal, seleccione Agregar y luego especifique la información siguiente en el formulario:

    • En el campo Nombre, escriba ASPNET MVC3 Custom.

    • En el campo Dominio, escriba http://localhost:64000/

    • En el campo Dirección URL de retorno, escriba http://localhost:64000/Account/SignIn

    • En el campo Formato de token, seleccione SAML 2.0.

    • En la sección Proveedores de identidades, seleccione Facebook, Google, Windows Live ID y Yahoo!

    • En el campo Firma de token, seleccione Usar el certificado de espacio de nombres del servicio (estándar).

  6. Haga clic en Guardar y luego vaya a la página principal.

  7. Una vez configurada la aplicación de usuario de confianza, deberá crear las reglas que determinen las notificaciones que ACS emitirá para su aplicación. En este ejemplo, se transmitirán todas las notificaciones emitidas por los proveedores de identidades. Para crear esta regla, haga clic en la página Grupos de reglas, situada en la página principal y luego haga clic en el grupo de reglas Grupo de reglas predeterminado para ASPNET MVC3 Custom.

  8. En la parte inferior de la página, haga clic en el vínculo Generar. Asegúrese de que Facebook, Yahoo y estén seleccionados y haga clic en Generar.

  9. Una vez configurado ACS, abra Visual Studio.

La solución de ejemplo de Visual Studio dispone de una aplicación de línea de comandos denominada ConfigureSample que usa el servicio de administació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 la información siguiente:

    • ServiceNamespace: se trata del espacio de nombres usado con ACS.

    • 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. En el proyecto ConfigureSample, abra Program.cs y especifique la información siguiente:

    1. applicationId: identificador de la aplicación de Facebook.

    2. applicationSecret: secreto de la aplicación de Facebook.

    Para obtener más detalles sobre cómo obtener estas claves, consulte Procedimiento: Configuración de Facebook como proveedor de identidades (http://go.microsoft.com/fwlink/?LinkId=221151).

  3. Ejecute la aplicación ConfigureSample en Visual Studio. De este modo, se configurará ACS para ejecutar este ejemplo.

  1. Abra el ejemplo que se encuentra en Websites\MVC3CustomSignInPage\MVC3CustomSignInPage.sln en Visual Studio.

  2. Para agregar ACS como referencia STS, haga clic con el botón secundario en MVCCustomSignInPage y seleccione la opción Agregar referencia STS del menú contextual.

  3. En el cuadro de diálogo, especifique la raíz de la aplicación web en el campo URI de la aplicación y haga clic en Siguiente. Para este ejemplo, el valor es http://localhost:64000/

    noteNota
    La barra final es importante porque coincide con los valores especificados en ACS para el usuario de confianza. El asistente mostrará una advertencia que indica que su sitio no usa SSL. Acepte esta advertencia. Para ello, haga clic en el botón , pero recuerde que los sitios web de producción deben usar SSL para este tipo de escenarios.

  4. En la ventana siguiente, seleccione el botón de opción Usar STS existente y especifique el URI de los metadatos de WS-Federation publicados por el Espacio de nombres Access Control. Encontrará dicho URI en el portal en Integración de aplicaciones. Si su Espacio de nombres Access Control es mvc3samples, el URI será https:// mvc3samples.accesscontrol.windows.net/FederationMetadata/2007-06/FederationMetadata.xml. Tras especificar este valor, haga clic en Siguiente.

  5. Puesto que su sitio web no requiere tokens cifrados, haga clic en Siguiente en el resto de cuadros de diálogo y luego haga clic en Finalizar.

  6. Su aplicación está ahora configurada para usar ACS con la protección de recursos abiertos de ASP .NET. Es necesario deshabilitar dicha protección para poder utilizar nuestra propia página de inicio de sesión personalizada que dispone de filtros de autenticación MVC3 más detallados. En el archivo web.config, en configuración, elimine el valor siguiente:

    <location path="FederationMetadata">
       <system.web>
         <authorization>
           <allow users="*" />
         </authorization>
       </system.web>
    </location>
    
    
  7. En system.web elimine el valor siguiente:

    <authorization>
         <deny users="?" />
       </authorization>
    
    

    Tras eliminar estos dos valores, ASP .NET no realizará ningún tipo de autenticación o autorización en nuestro nombre.

  8. Presione F5 en Visual Studio para ejecutar la aplicación. El explorador le llevará a la página principal de la aplicación.

  9. Haga clic en el vínculo Iniciar sesión situado en la esquina superior derecha y seleccione el proveedor de identidades de la lista que se muestra. Tras la autenticación, volverá a la página de inicio y se mostrará la información del usuario en la esquina superior derecha (tenga en cuenta que no proporcionará ningún nombre de usuario).

  10. Haga clic en Cerrar sesión para cerrar la sesión. De este modo, se borrarán las cookies de la sesión y volverá a la página principal.

  11. Haga clic en el vínculo Directorio. Puesto que ya no está autenticado, se le pedirá que seleccione un proveedor de identidades para tener acceso a la página Directorio.

Esto se debe a que la página Directorio (Índice en DirectoryController) está protegida mediante el atributo RequireAuthenticationAttribute. Tras seleccionar un proveedor de identidades y realizar la autenticación, se le redirigirá de nuevo a la página Directorio.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft