Microsoft 身份網頁概述

Microsoft。Identity.Web 是一組函式庫,簡化了在整合 Microsoft 身分識別平台 的應用程式中新增認證與授權功能,包括 Microsoft Entra ID。 它支援:

  • .NET Aspire分散式應用程式
  • ASP.NET Core 網頁應用程式與網頁 API
  • OWIN 應用程式在 .NET Framework 上
  • .NET服務程序應用與背景服務

無論你是打造能登入使用者的網頁應用程式、驗證權杖的網頁 API,或是呼叫受保護 API 的背景服務,Microsoft。Identity.Web 會幫你處理認證的複雜度。

為什麼要使用 Microsoft Identity Web?

Microsoft。Identity.Web 減少了模板程式碼,並提供常見身份情境的內建最佳實務。 主要功能包括:

  • 簡化認證 - 使用者登入與驗證權杖的設定極簡
  • 下游 API 呼叫 - 呼叫 Microsoft Graph、Azure SDK,或你自己的受保護 API,並具備自動權杖管理功能
    • 代幣取得 - 代表用戶或您的應用程式取得代幣
    • Token 快取管理 - 支援 Redis、SQL Server、Cosmos DB 及 PostgreSQL 的分散式快取
  • 多種憑證類型 -支援憑證、管理身份及無憑證認證
  • 自動授權標頭 - 在呼叫 API 時,認證會透明處理

請參閱 NuGet 套件 ,了解所有可用套件的概覽及使用時機。

具備自動認證的呼叫 API

你可以調用受保護的 API,而不需要手動管理權杖。 Microsoft。Identity.Web 支援以下整合模式:

  • Microsoft Graph - 使用 GraphServiceClient 並自動取得代幣
  • Azure SDK - 使用與 Microsoft.Identity.Web 整合的 TokenCredential 實作。
  • 你自己的 API ——使用 IDownstreamApiIAuthorizationHeaderProvider 用於無縫的 API 呼叫
  • 代理身份 - 代表受管理身份或服務主體呼叫 API,並進行自動憑證處理

認證標頭會自動加入你的請求,憑證也會被透明地取得並快取。 詳情請參閱 「呼叫下游 API」、「 守護程序應用程式」及 「代理身份」指南

配置方法

你可以透過設定檔或程式碼方式來設定 Microsoft.Identity.Web。 兩種方法都支援所有認證情境。

appsettings.json中設定認證:

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

這很重要

對於守護進程應用程式和主控台應用程式,請確保將你的 appsettings.json 檔案複製到輸出目錄。 在Visual Studio中,將 Copy 設為 Output Directory 屬性為 Copy if newerCopy always,或在你的 .csproj 中新增以下內容:

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

透過程式碼配置

或者,你可以直接在應用程式啟動碼中設定認證:

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

下一步

請選擇符合你申請的情境: