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.

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:

Obtención de la biblioteca

Puede obtener Microsoft Identity Web en NuGet, las plantillas de proyecto de .NET Corey GitHub.

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:

Plantillas de proyecto

Las plantillas de proyecto de Microsoft Identity Web se incluyen en .NET 5.0 y están disponibles para su descarga en los proyectos de ASP.NET Core 3.1.

Si utiliza ASP.NET Core 3.1, instale las plantillas con la CLI de .NET:

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

En el diagrama siguiente se muestra una vista de alto nivel de los tipos de aplicación admitidos y sus argumentos pertinentes:

Diagrama de las plantillas de proyecto disponibles en la CLI de .NET para 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

Este comando de ejemplo de la CLI de .NET que se ha tomado del tutorial de Blazor Server, genera un nuevo proyecto de Blazor Server que incluye los paquetes correctos y el código de inicio (valores de marcador de posición que se muestran):

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

GitHub

Microsoft Identity Web es un proyecto de código abierto hospedado en GitHub: AzureAD/microsoft-identity-web

La wiki del repositorio contiene documentación adicional y, si necesita ayuda o detecta un error, puede notificar un problema.

Características

Microsoft Identity Web incluye varias características que no se proporcionan 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
    Aplicación web o API llama a Microsoft Graph No
    Aplicación web o API llama a 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í: