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 ——使用
IDownstreamApi或IAuthorizationHeaderProvider用於無縫的 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 newer 或 Copy 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";
});
下一步
請選擇符合你申請的情境:
- Web 應用程式 - 登入用戶 - 為您的 ASP.NET Core網頁應用程式新增認證
Web API - 保護你的 API - 用承載憑證保護你的 ASP.NET Core網路 API - Daemon 應用程式 - 呼叫 API - 建立呼叫受保護 API 的背景服務