Información general sobre Microsoft Identity Web

Microsoft.Identity.Web es un conjunto de bibliotecas que simplifica la adición de autenticación y autorización a las aplicaciones que se integran con la plataforma de identidad de Microsoft, incluido Microsoft Entra ID. Es compatible con:

  • .NET Aspire aplicaciones distribuidas
  • ASP.NET Core aplicaciones web y API web
  • OWIN aplicaciones en .NET Framework
  • .NET aplicaciones de demonio y servicios en segundo plano

Tanto si compila aplicaciones web que permiten iniciar sesión a los usuarios, API web que validan tokens, o servicios en segundo plano que llaman a API protegidas, Microsoft Identity.Web controla la complejidad de la autenticación.

¿Por qué usar Microsoft Identity Web?

Microsoft.Identity.Web reduce el código predefinido y proporciona prácticas recomendadas integradas para escenarios de identidad comunes. Entre las funcionalidades clave se incluyen:

  • Autenticación simplificada : configuración mínima para iniciar sesión de usuarios y validar tokens
  • Llamadas API deDownstream: llamada a Microsoft Graph, SDK de Azure o a sus propias API protegidas con administración automática de tokens
    • Adquisición de tokens: Adquisición de tokens en nombre de los usuarios o la aplicación
    • Administración de caché de Token - Compatibilidad con la caché distribuida con Redis, SQL Server, Cosmos DB y PostgreSQL
  • Varios tipos de credenciales : compatibilidad con certificados, identidades administradas y autenticación sin certificados
  • Encabezados de autorización automática: la autenticación se controla de forma transparente al llamar a las API.

Consulte Paquetes NuGet para obtener información general sobre todos los paquetes disponibles y cuándo usarlos.

Llamada a las API con autenticación automática

Puede llamar a las API protegidas sin administrar manualmente los tokens. Microsoft. Identity.Web admite los siguientes patrones de integración:

  • Microsoft Graph: Usar GraphServiceClient con la adquisición automática de tokens
  • SDK de Azure - use TokenCredential implementaciones que se integran con Microsoft.Identity.Web
  • Tus propias APIs - Usa IDownstreamApi o IAuthorizationHeaderProvider para llamadas de API sin contratiempos
  • Identidades del agente - Invocar API en nombre de identidades administradas o entidades de servicio con gestión automática de credenciales.

Los encabezados de autenticación se agregan automáticamente a las solicitudes y los tokens se adquieren y almacenan en caché de forma transparente. Para obtener más información, consulte API descendente, aplicaciones daemon y guía de identidades del agente.

Enfoques de configuración

Puede configurar Microsoft. Identity.Web a través de archivos de configuración o mediante programación. Ambos enfoques admiten todos los escenarios de autenticación.

Configuración de la autenticación en appsettings.json:

{
  "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "TenantId": "your-tenant-id",
    "ClientId": "your-client-id"
  }
}

Importante

En el caso de las aplicaciones de demonio y las aplicaciones de consola, asegúrese de que el archivo appsettings.json se haya copiado en el directorio de salida. En Visual Studio, establezca la propiedad Copy en Output Directory en Copy si es más reciente o Copy siempre o agregue lo siguiente a su .csproj:

<ItemGroup>
  <None Update="appsettings.json">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </None>
</ItemGroup>

Configuración por código

Como alternativa, configure la autenticación directamente en el código de inicio de la aplicación:

builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
    .AddMicrosoftIdentityWebApp(options =>
    {
        options.Instance = "https://login.microsoftonline.com/";
        options.TenantId = "your-tenant-id";
        options.ClientId = "your-client-id";
    });

Pasos siguientes

Elija el escenario que coincida con la aplicación: