Elección de una versión de MSAL.NET

Importante

A partir del 1 de mayo de 2025, Azure AD B2C ya no está disponible para comprar nuevos clientes. Obtenga más información en nuestras preguntas más frecuentes.

Según el tipo de aplicación que cree y su plataforma subyacente, puede elegir usar MSAL.NET, Microsoft Identity Web o ambos.

Microsoft Identity Web es un conjunto de bibliotecas de ASP.NET Core que simplifica la adición de compatibilidad de autenticación y autorización a aplicaciones web y API web que se integran con el Plataforma de identidad de Microsoft. Proporciona una capa de comodidad de API de una sola superficie que vincula ASP.NET Core, su middleware de autenticación y el Biblioteca de autenticación de Microsoft (MSAL) para .NET.

Siga el árbol de decisión siguiente para determinar si el escenario requiere MSAL.NET, Microsoft Identity Web o ambos.

Imagen del árbol de decisión al trabajar con bibliotecas de autenticación de .NET

Cuándo uso MSAL.NET

Va a compilar una aplicación móvil o de escritorio. Use MSAL.NET directamente y empiece a adquirir tokens para la aplicación cliente pública. Para obtener más información, consulte:

Uso de Microsoft Identity Web

Va a compilar una aplicación cliente confidencial (aplicación web, API web, demonio o aplicación de servicio) que se ejecuta en ASP.NET Core, ASP.NET OWIN o .NET framework/.NET Core. Vea lo que Microsoft Identity Web tiene que ofrecer:

  • Inicio de sesión de los usuarios a través de aplicaciones web en Microsoft Entra ID, Azure AD B2C y aplicaciones de Id. externa de Microsoft Entra
    • Soporte técnico Microsoft cuentas personales
    • Admitir usuarios invitados
    • Consentimiento incremental y acceso condicional en aplicaciones web
    • Controlar SameSite
    • Se integra con "Autenticación de app services"
    • Admite PKCE para aplicaciones cliente confidenciales
    • Aporta serializadores de caché de tokens de rendimiento, incluidos los distribuidos.
  • Protección de la API web (con Microsoft Entra ID, Azure AD B2C o Id. externa de Microsoft Entra)
    • Valida el emisor (incluidas las aplicaciones multiinquilino, cualquier nube)
    • admite el descifrado de tokens en las API web
    • Valida el ámbito y el rol de aplicación en las API web.
    • Genera WWW-authenticate encabezados en las API (CA, CAE)
    • Protección de servicios gRPC y funciones de Azure
  • API o aplicación web que llama a las API de bajada (incluido el grafo excepto B2C)
  • Admite varios esquemas de autenticación en ASP.NET Core
  • Admite el protocolo de prueba de posesión
  • Resistente (admite la adquisición y la sugerencia de enrutamiento de tokens regionales para el sistema de copia de seguridad de tokens)

Va a compilar una nueva aplicación

Use las plantillas de Project y la msidentity-app-sync herramienta . Tenemos plantillas de aplicación web para MVC web, Razor, servidor Blazor, Blazorwasm hospedado y no hospedado. Todo para Microsoft Entra ID o Azure AD B2C.

Imagen que muestra ASP.NET Core plantillas de proyectos para compilar aplicaciones web

Plantillas de proyecto de aplicación web.

Tenemos plantillas de API web para gRPC y Azure Functions.

Plantillas de proyecto de API web.

Esta es la información sobre cómo ejecutar msidentity-app-sync-tool, que es una herramienta de línea de comandos que crea aplicaciones Plataforma de identidad de Microsoft en un inquilino (Microsoft Entra ID o Azure AD B2C) y actualiza el código de configuración de las aplicaciones de ASP.NET Core. La herramienta también se puede usar para actualizar el código desde una aplicación de Microsoft Entra existente o Azure aplicación de AD B2C.

Está disponible en NuGet.

Va a agregar autenticación a una aplicación existente o estoy migrando desde ADAL.

Solo tiene que tomar el código que necesita de Microsoft Identity Web para actualizar la aplicación. Este es un ejemplo:

imagen que muestra las actualizaciones de código al compilar una aplicación web que llama a una API web

imagen que muestra las actualizaciones de código al compilar una aplicación web o API B2C

imagen que muestra las actualizaciones de código de una aplicación web B2C que inicia sesión de usuarios y una API web protegida

imagen que muestra las actualizaciones de código en una aplicación web o api web que llama a una API de nivel inferior

Al usar el modelo híbrido (MSAL.NET y Microsoft Identity Web)

Va a compilar un SDK para aplicaciones cliente confidenciales y quiere usar MSAL.NET API de bajo nivel. En MSAL.NET, se proporciona de forma predeterminada una caché de tokens en memoria, pero en el caso de las aplicaciones web o las API web, el almacenamiento en caché debe administrarse de forma diferente que para las aplicaciones cliente públicas (aplicaciones de escritorio o móviles), ya que requiere que se particionen correctamente. Se recomienda aprovechar un serializador de caché de tokens, que puede ser una caché distribuida (por ejemplo, Redis, Cosmos o SQL Server, distribuida en caché de memoria) o una caché de memoria con particiones correcta.

Mediante el uso de serializadores de caché de tokens, particiona las memorias caché del token en función de la clave de caché que se usa porque la memoria caché se intercambia entre el almacenamiento y la memoria de MSAL. Esta clave de caché se calcula MSAL.NET como función del flujo que se usa.

Imagen que muestra las memorias caché de tokens con y sin serializadores personalizados

¿Por qué necesita Microsoft. Identity.Web.TokenCache?

Microsoft. Identity.Web.TokenCache proporciona serialización de caché de tokens. Consulte Serialización de caché de tokens para obtener más información.

Algunos ejemplos de cómo usar cachés de tokens para aplicaciones web y API web están disponibles en el tutorial de la aplicación web de ASP.NET Core en la caché de tokens de la fase 2 a 2. Para las implementaciones, vea la carpeta TokenCacheProviders en el Microsoft. Repositorio Identity.Web.

Microsoft Identity Web también ayuda con la carga de certificados.