Share via


Inicio de sesión de usuarios para obtener una aplicación web de muestra de ASP.NET Core en un inquilino externo

En esta guía paso a paso se usa una aplicación web de muestra de ASP.NET Core para mostrar los aspectos básicos de la autenticación moderna mediante la biblioteca de autenticación de Microsoft para .NET y Microsoft Identity Web para que ASP.NET Core controle la autenticación.

En este artículo, registrará una aplicación web en el centro de administración de Microsoft Entra y creará un flujo de usuario de inicio y cierre de sesión. Asociará la aplicación web con el flujo de usuario, descargará y actualizará una aplicación web de ASP.NET de muestra mediante sus propios detalles de inquilino externo. Por último, ejecutará y probará la aplicación web y la API de ejemplo.

Requisitos previos

Registro de la aplicación web

Para permitir que su aplicación inicie la sesión de los usuarios con Microsoft Entra, id. externa de Microsoft Entra debe tener en cuenta la aplicación que haya creado. El registro de la aplicación establece una relación de confianza entre la aplicación y Microsoft Entra. Al registrar una aplicación, External ID genera un identificador único conocido como Id. de aplicación (cliente), un valor que se usa para identificar la aplicación al crear solicitudes de autenticación.

En los pasos siguientes, se muestra cómo registrar una aplicación en el centro de administración de Microsoft Entra:

  1. Inicie sesión en el Centro de administración de Microsoft Entra al menos como Desarrollador de aplicaciones.

  2. Si tiene acceso a varios inquilinos, use el icono Configuración en el menú superior para cambiar al inquilino externo desde el menú Directorios y suscripciones.

  3. Vaya aIdentidad>Aplicaciones>Registros de aplicaciones.

  4. Seleccione + Nuevo registro.

  5. En la página Registrar una aplicación que aparece;

    1. Introduzca un Nombre de aplicación significativo que se muestre a los usuarios de la aplicación, por ejemplo ciam-client-app.
    2. En Tipos de cuenta admitidos, seleccione Solo las cuentas de este directorio organizativo.
  6. Seleccione Registrar.

  7. Se muestra el panel Información general de la aplicación tras registrarse correctamente. Registre el Id. de la aplicación (cliente) que se usará en el código fuente de la aplicación.

Definición de la plataforma y las direcciones URL

Para especificar el tipo de aplicación en el registro de la aplicación, siga estos pasos:

  1. En Administrar, seleccione Autenticación.
  2. En la página Configuraciones de plataforma, seleccione Agregar una plataforma y, a continuación, seleccione la opción Web.
  3. Para URI de redireccionamiento, escriba https://localhost:7274/signin-oidc.
  4. En Dirección URL de cierre de sesión del canal frontal, escriba https://localhost:7274/signout-callback-oidc para cerrar sesión.
  5. Selecciona Configurar para guardar los cambios.

Habilitación de flujos implícitos e híbridos

La aplicación que compila usa el flujo implícito, que debe habilitarse.

  1. En la sección Flujos de concesión implícita e híbridos, seleccione la opción de Tokens de id.
  2. Seleccione Guardar.

Adición de secreto de cliente de la aplicación

Cree un secreto de cliente para la aplicación registrada. La aplicación usa el secreto de cliente para demostrar su identidad al solicitar tokens.

  1. En la página Registros de aplicaciones, seleccione la aplicación que creó (como ciam-client-app) para abrir la página Información general.
  2. En Administrar, seleccione Certificados y secretos.
  3. Seleccione Nuevo secreto de cliente.
  4. Escriba una descripción para el secreto de cliente en el cuadro Descripción (por ejemplo, secreto de cliente de ciam app).
  5. En Expira, seleccione el tiempo durante el cual es válido el secreto (según las reglas de seguridad de su organización) y, a continuación, elija Agregar.
  6. Registre el Valor del secreto. Este valor se usará para la configuración en un paso posterior. El valor del secreto no se volverá a mostrar y no se podrá recuperar por ningún medio, después de salir del Certificados y secretos. Asegúrese de grabarlo.

Concesión de permisos de API

  1. En la página Registros de aplicaciones, seleccione la aplicación que creó (como ciam-client-app) para abrir la página Información general.

  2. En Administrar, seleccione Permisos de API.

  3. En Permisos configurados, seleccione Agregar un permiso.

  4. Seleccione la pestaña API de Microsoft.

  5. En la sección API de Microsoft más usadas, seleccione Microsoft Graph.

  6. Seleccione la opción Permisos delegados.

  7. En la sección Seleccionar permisos, busque y seleccione los permisos openid y offline_access.

  8. Seleccione el botón Agregar permisos.

  9. En este momento, ha asignado los permisos correctamente. Sin embargo, dado que se trata de un inquilino del cliente, los propios usuarios consumidores no pueden dar su consentimiento a estos permisos. Como administrador, debes dar tu consentimiento a estos permisos en nombre de todos los usuarios del inquilino:

    1. Seleccione Conceder consentimiento del administrador para <nombre del inquilino> y seleccione .
    2. Seleccione Actualizar y luego compruebe que aparece Concedido para <nombre del inquilino> en Estado para ambos ámbitos.

Creación de un flujo de usuario

Siga estos pasos para crear un flujo de usuario que un cliente pueda usar para iniciar sesión o registrarse en una aplicación.

  1. Inicie sesión en el centro de administración de Microsoft Entra como mínimo un administrador de flujo de usuario de identificador externo.

  2. Si tiene acceso a varios inquilinos, use el icono Configuración en el menú superior para cambiar al inquilino externo desde el menú Directorios y suscripciones.

  3. Vaya a Identidad> Identidades externas> Flujos de usuarios.

  4. Seleccione + Nuevo flujo de usuario.

  5. En la página Crear:

    1. Escriba un nombre para el flujo de usuario, como SignInSignUpSample.

    2. En la lista Proveedores de identidades, seleccione Cuentas de correo electrónico. Este proveedor de identidades permite a los usuarios iniciar sesión o registrarse con su dirección de correo electrónico.

      Nota

      Los proveedores de identidades adicionales se mostrarán aquí solo después de que configure la federación con ellos. Por ejemplo, si configura la federación con Google o Facebook, podrá seleccionar esos proveedores de identidades adicionales aquí.

    3. En Cuentas de correo electrónico, puede seleccionar una de las dos opciones. En este tutorial, seleccione Correo electrónico con contraseña.

      • Correo electrónico con contraseña: permite a los nuevos usuarios registrarse e iniciar sesión con una dirección de correo electrónico como nombre de inicio de sesión y una contraseña como credencial del primer factor.
      • Código de acceso de un solo uso de correo electrónico: permite a los nuevos usuarios registrarse e iniciar sesión con una dirección de correo electrónico como el nombre de inicio de sesión y el código de acceso de un solo uso como credencial del primer factor. El código de acceso de un solo uso de correo electrónico debe estar habilitado en el nivel de inquilino (Todos los proveedores de identidades>Código de acceso de un solo uso de correo electrónico) para que esta opción esté disponible en el nivel de flujo de usuario.
    4. En Atributos de usuario, elija los atributos que quiere recopilar del usuario tras registrarse. Al seleccionar Mostrar más, puede elegir los atributos y las notificaciones de País o región, Nombre para mostrar y Código postal. Seleccione Aceptar. (A los usuarios solo se les solicitan atributos cuando se registran por primera vez).

  6. Seleccione Crear. El nuevo flujo de usuario aparece en la lista Flujos de usuario. Si es necesario, actualice la página.

Para habilitar el autoservicio de restablecimiento de contraseña, siga los pasos descritos en el artículo Habilitar el autoservicio de restablecimiento de contraseña.

Asociación de la aplicación web al flujo de usuarios

Aunque muchas aplicaciones se pueden asociar a su flujo de usuario, una sola aplicación solo se puede asociar a un flujo de usuario. Un flujo de usuario permite la configuración de la experiencia del usuario para aplicaciones específicas. Por ejemplo, puede configurar un flujo de usuario que requiera que los usuarios inicien sesión o se registren con la dirección de correo electrónico.

  1. En el menú de la barra lateral, seleccione Identidad.

  2. Seleccione External Identities y, a continuación, Flujos de usuario.

  3. En la página Flujos de usuario, seleccione el nombre del flujo de usuario que creó anteriormente; por ejemplo, SignInSignUpSample.

  4. En Usar, seleccione Aplicaciones.

  5. Seleccione Agregar una aplicación.

  6. Seleccione la aplicación de la lista, como ciam-client-app, o use el cuadro de búsqueda para buscar la aplicación y selecciónela.

  7. Elija Seleccionar.

Clonación o descarga de la aplicación web de ejemplo

Para obtener la aplicación de ejemplo, puede clonarla desde GitHub o descargarla como archivo .zip.

  • Para clonar la muestra, abra un símbolo del sistema y navegue hasta donde desea crear el proyecto, e introduzca el siguiente comando:

    git clone https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial.git
    
  • Descargue el archivo .zip. Extráigalo en una ruta de acceso de archivo donde la longitud del nombre sea inferior a 260 caracteres.

Configuración de la aplicación

  1. Vaya a la carpeta raíz de la muestra que ha descargado y el directorio que contiene la aplicación de ASP.NET Core de muestra:

    cd 1-Authentication\1-sign-in-aspnet-core-mvc
    
  2. Abra el archivo appsettings.json.

  3. En Autoridad, busque Enter_the_Tenant_Subdomain_Here y reemplácelo por el subdominio del inquilino. Por ejemplo, si el dominio principal del inquilino es caseyjensen@onmicrosoft.com, el valor que debe escribir es casyjensen.

  4. Busque el valor Enter_the_Application_Id_Here y reemplácelo por el identificador de aplicación (clientId) de la aplicación que registró en el centro de administración de Microsoft Entra.

  5. Reemplace Enter_the_Client_Secret_Here con el valor de secreto de cliente que configuró en Agregar secreto de cliente de la aplicación.

Ejecución del ejemplo de código

  1. Desde el shell o en la línea de comandos, ejecute los siguientes comandos:

    dotnet run
    
  2. Abra el explorador web y vaya a https://localhost:7274.

  3. Inicio de sesión con una cuenta registrada en el inquilino externo.

  4. Una vez que haya iniciado sesión, el nombre para mostrar está junto al botón Cerrar sesión, como se muestra en la siguiente captura de pantalla.

    Captura de pantalla del inicio de sesión en una aplicación web de ASP.NET Core.

  5. Para cerrar sesión en la aplicación, seleccione el botón Cerrar sesión.

Consulte también