Panoramica di Microsoft Identity Web

Microsoft. Identity.Web è un set di librerie che semplifica l'aggiunta di autenticazione e autorizzazione alle applicazioni che si integrano con il Microsoft Identity Platform, incluse le Microsoft Entra ID. Supporta:

  • .NET Aspire applicazioni distribuite
  • ASP.NET Core applicazioni Web e API Web
  • applicazioni OWIN in .NET Framework
  • .NET applicazioni daemon e servizi in background

Sia che si creino app Web che consentono di accedere a utenti, API Web che convalidano i token o servizi in background che chiamano API protette, Microsoft. Identity.Web gestisce automaticamente la complessità dell'autenticazione.

Perché usare Microsoft Identity Web?

Microsoft. Identity.Web riduce il codice boilerplate e fornisce procedure consigliate predefinite per scenari di identità comuni. Le funzionalità principali includono:

  • Autenticazione semplificata - Configurazione minima per l'accesso degli utenti e la convalida dei token
  • chiamate API Downstream - Chiamare Microsoft Graph, Azure SDK o api protette con gestione automatica dei token
    • Acquisizione di token- Acquisire token per conto degli utenti o dell'applicazione
    • gestione della cache Token - Supporto della cache distribuita con Redis, SQL Server, Cosmos DB e PostgreSQL
  • Più tipi di credenziali : supporto per certificati, identità gestite e autenticazione senza certificato
  • Intestazioni di autorizzazione automatica : l'autenticazione viene gestita in modo trasparente quando si chiamano le API

Vedere Pacchetti NuGet per una panoramica di tutti i pacchetti disponibili e quando usarli.

Chiamare le API con l'autenticazione automatica

È possibile chiamare API protette senza gestire manualmente i token. Microsoft. Identity.Web supporta i modelli di integrazione seguenti:

  • Microsoft Graph - Usare GraphServiceClient con acquisizione automatica dei token
  • Azure SDK - Usare implementazioni di TokenCredential integrate con Microsoft. Identity.Web
  • API personalizzate : usare IDownstreamApi o IAuthorizationHeaderProvider per chiamate API semplici
  • Identità dell'agente - chiamare le API per conto di identità gestite o principali del servizio con la gestione automatica delle credenziali

Le intestazioni di autenticazione vengono aggiunte automaticamente alle richieste e i token vengono acquisiti e memorizzati nella cache in modo trasparente. Per informazioni dettagliate, vedere Chiamata di API downstream, applicazioni Daemon e guida alle identità dell'agente.

Approcci di configurazione

È possibile configurare Microsoft. Identity.Web tramite file di impostazioni o a livello di codice. Entrambi gli approcci supportano tutti gli scenari di autenticazione.

Configurare l'autenticazione in appsettings.json:

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

Importante

Per le app daemon e le applicazioni console, assicurarsi che il appsettings.json file venga copiato nella directory di output. In Visual Studio, impostare la proprietà Copy to Output Directory su Copy if newer o Copy always, o aggiungere quanto segue al .csproj:

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

Configurazione in base al codice

In alternativa, configurare l'autenticazione direttamente nel codice di avvio dell'applicazione:

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

Passaggi successivi

Scegliere lo scenario corrispondente all'applicazione: