Biblioteca de autenticación de Microsoft Identity Web

Microsoft Identity Web es un conjunto de bibliotecas de ASP.NET Core que simplifican la compatibilidad con la autenticación y la autorización de aplicaciones web y API web que se integran con la plataforma de identidad de Microsoft. Asimismo, proporciona una cómoda capa de API de una sola superficie que une ASP.NET Core, su middleware de autenticación y la biblioteca de autenticación de Microsoft (MSAL) para .NET.

Puede obtener Microsoft.Identity.Web desde NuGet o mediante una plantilla de proyecto de Visual Studio para crear un nuevo proyecto de aplicación.

Escenarios de aplicación admitidos

Si va a compilar las aplicaciones web de ASP.NET Core o las API web y quiere usar Azure Active Directory (Azure AD) o Azure AD B2C para administrar las identidades y el acceso (IAM), se recomienda usar Microsoft Identity Web para todos estos escenarios:

Se instala desde NuGet

Microsoft Identity Web está disponible en NuGet como un conjunto de paquetes que proporcionan funcionalidad modular en función de las necesidades de la aplicación. Use el comando dotnet add de la CLI de .NET o el administrador de paquetes de NuGet de Visual Studio para instalar los paquetes adecuados para su proyecto:

Instalar mediante una plantilla de proyecto de Visual Studio

En las versiones 5.0 y posteriores del SDK de .NET se incluyen varias plantillas de proyecto que usan Microsoft Identity Web. Las plantillas de proyecto no se incluyen en el SDK ASP.NET Core 3.1, pero puede instalarlas por separado.

.NET 5.0+: plantillas de proyecto incluidas

Las plantillas de proyecto web de Identidad de Microsoft se incluyen en las versiones 5.0 y posteriores del SDK de .NET.

Este comando de la CLI de .NET de ejemplo crea un proyecto de Blazor Server que incluye Microsoft Identity Web.

dotnet new blazorserver --auth SingleOrg --calls-graph --client-id "00000000-0000-0000-0000-000000000000" --tenant-id "11111111-1111-1111-1111-111111111111" --output my-blazor-app

No anexe 2 al argumento de tipo de aplicación (blazorserver en el ejemplo) si usa las plantillas incluidas en el SDK de .NET 5.0+. Incluya el sufijo 2solo si está en ASP.NET Core 3.1 e instaló las plantillas por separado, tal y como se describe en la sección siguiente.

ASP.NET Core 3.1: instalación de las plantillas de proyecto

Si usa ASP.NET Core 3.1, instale las plantillas de proyecto desde NuGet.

dotnet new --install Microsoft.Identity.Web.ProjectTemplates

Para ASP.NET Core 3.1 solo, anexe un 2 al argumento de tipo de aplicación al crear un proyecto:

dotnet new blazorserver2 --auth SingleOrg --calls-graph --client-id "00000000-0000-0000-0000-000000000000" --tenant-id "11111111-1111-1111-1111-111111111111" --output my-blazor-app

En el diagrama siguiente se muestran varias de las plantillas de tipo de aplicación disponibles y sus argumentos. Anexe un 2 al argumento de tipo de aplicación (blazorserver2 en el ejemplo) solo si usa el SDK de ASP.NET Core 3.1 y ha instalado las plantillas mediante dotnet new --install.

Diagram of the available dot net CLI project templates for Microsoft Identity Web
*MultiOrg no es compatible con webapi2, pero se puede habilitar en appsettings.json estableciendo el inquilino en common o organizations.
**--calls-graph no se admite en Azure AD B2C

Características de las plantillas de proyecto

Microsoft Identity Web incluye varias características que no están disponibles si usa las plantillas de proyecto predeterminadas de ASP.NET 3.1.

Característica ASP.NET Core 3.1 Web de Microsoft Identity
Inicio de sesión de usuarios en aplicaciones web
  • Cuentas profesionales o educativas
  • Identidades sociales (con Azure AD B2C)
  • Cuentas profesionales o educativas
  • Cuentas personales de Microsoft
  • Identidades sociales (con Azure AD B2C)
  • Proteger las API web
  • Cuentas profesionales o educativas
  • Identidades sociales (con Azure AD B2C)
  • Cuentas profesionales o educativas
  • Cuentas personales de Microsoft
  • Identidades sociales (con Azure AD B2C)
  • Validación de emisores en aplicaciones de varios inquilinos No Sí, para todas las nubes y Azure AD B2C
    La aplicación web o la API llaman a Microsoft graph No
    La aplicación web o la API llaman a la API web No
    Admite credenciales de certificado No Sí, incluyendo Azure Key Vault
    Compatibilidad con el consentimiento incremental y el acceso condicional en aplicaciones web No Sí, en MVC, páginas de Razor y Blazor
    Certificados de cifrado de tokens en API web No
    Validación de roles de ámbitos o aplicaciones en las API web No
    Generación de encabezados WWW-Authenticate en las API web No

    Pasos siguientes

    Para ver cómo funciona Microsoft Identity Web, pruebe nuestro tutorial de Blazor Server:

    Tutorial: creación de una aplicación Blazor Server que usa la plataforma de identidad de Microsoft para la autenticación.

    La wiki de Microsoft Identity Web en GitHub contiene una amplia documentación de referencia acerca de diversos aspectos de la biblioteca. Por ejemplo, el uso de certificados, el consentimiento incremental y la referencia de acceso condicional se pueden encontrar aquí: