Compartir a través de


Inicio rápido: Adición del inicio de sesión con Microsoft a una aplicación web de ASP.NET Core

¡Bienvenido! Probablemente esta no sea la página que esperaba. Mientras trabajamos en una corrección, este vínculo debería llevarle al artículo correcto:

Inicio rápido: Adición del inicio de sesión con Microsoft en una aplicación web de ASP.NET Core

Lamentamos las molestias y agradecemos su paciencia mientras trabajamos para resolverlo.

En este inicio rápido, descargará y ejecutará un código de ejemplo que muestra cómo una aplicación web de ASP.NET Core puede realizar el inicio de sesión de los usuarios desde cualquier organización de Microsoft Entra.

Paso 1: Configuración de la aplicación en Azure Portal

Para que el código de ejemplo de este inicio rápido funcione:

  • En URI de redirección, escriba https://localhost:44321/ y https://localhost:44321/signin-oidc .
  • En Dirección URL de cierre de sesión del canal frontal, escriba https://localhost:44321/signout-oidc.

El punto de conexión de autorización emitirá tokens de identificador de solicitud.

Ya configurada La aplicación está configurada con estos atributos.

Paso 2: Descarga del proyecto de ASP.NET Core

Ejecuta el proyecto .

Sugerencia

Para evitar errores causados por limitaciones de longitud de ruta de acceso en Windows, se recomienda extraer el archivo o clonar el repositorio en un directorio cerca de la raíz de la unidad.

Paso 3: La aplicación está configurada y lista para ejecutarse

Hemos configurado el proyecto con los valores de las propiedades de su aplicación y está preparado para ejecutarse.

Nota:

Enter_the_Supported_Account_Info_Here

Más información

En esta sección, se proporciona una introducción al código necesario para el inicio de sesión de usuarios. Esta introducción puede ser útil para comprender cómo funciona el código, cuáles son los argumentos principales y cómo agregar el inicio de sesión a una aplicación ASP.NET Core existente.

Funcionamiento del ejemplo

Diagrama de la interacción entre el explorador web, la aplicación web y la plataforma de identidad de Microsoft en la aplicación de ejemplo.

Clase Startup

El middleware Microsoft.AspNetCore.Authentication usa una clase Startup que se ejecuta al iniciarse el proceso de hospedaje:

public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
        .AddMicrosoftIdentityWebApp(Configuration.GetSection("AzureAd"));

    services.AddControllersWithViews(options =>
    {
        var policy = new AuthorizationPolicyBuilder()
            .RequireAuthenticatedUser()
            .Build();
        options.Filters.Add(new AuthorizeFilter(policy));
    });
   services.AddRazorPages()
        .AddMicrosoftIdentityUI();
}

El método AddAuthentication() configura el servicio para agregar la autenticación basada en cookies. Esta autenticación se usa en escenarios de explorador y para establecer el desafío en OpenID Connect.

La línea que contiene .AddMicrosoftIdentityWebApp agrega la autenticación de la Plataforma de identidad de Microsoft a la aplicación. Posteriormente, la aplicación se configura para iniciar sesión a los usuarios según la información de la sección AzureAD del archivo de configuración appsettings.json:

Clave del archivo appsettings.json Descripción
ClientId El Id. de aplicación (cliente) de la aplicación registrada en Azure Portal.
Instance El punto de conexión del servicio de token de seguridad (STS) para que el usuario se autentique. Normalmente, este valor es https://login.microsoftonline.com/, que indica la nube pública de Azure.
TenantId Nombre o identificador (GUID) del inquilino, o bien common, para el inicio de sesión de usuarios con cuentas profesionales o educativas o cuentas personales de Microsoft.

El método Configure() contiene dos métodos importantes, app.UseAuthentication() y app.UseAuthorization(), que habilitan su funcionalidad con nombre. También en el método Configure(), debe registrar las rutas de Microsoft Identity Web mediante al menos una llamada a endpoints.MapControllerRoute() o a endpoints.MapControllers():

app.UseAuthentication();
app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    endpoints.MapRazorPages();
});

Atributo para proteger el controlador o los métodos

Puede proteger un controlador o los métodos de controlador mediante el atributo [Authorize]. Este atributo restringe el acceso al controlador o los métodos al permitir únicamente usuarios autenticados. Si el usuario aún no se ha autenticado, se puede iniciar un desafío de autenticación para acceder al controlador.

Ayuda y soporte técnico

Si necesita ayuda, quiere notificar un problema o desea obtener información sobre las opciones de soporte técnico, consulte Ayuda y soporte técnico para desarrolladores.

Pasos siguientes

El repositorio de GitHub que contiene este tutorial de ASP.NET Core incluye instrucciones y más ejemplos de código que muestran cómo:

  • Agregar la autenticación a una nueva aplicación web de ASP.NET Core.
  • Llamar a Microsoft Graph, otras API de Microsoft o sus propias API web.
  • Agregar la autorización.
  • Iniciar la sesión de usuarios en nubes nacionales o con identidades sociales.