Microsoft。Identity.Web 將 Microsoft Entra ID 認證擴展至 .NET Framework 及 .NET Standard 應用程式。 本文將協助你選擇最適合你情境的套件與整合模式。
選擇你的情境
選擇與你應用程式類型相符的整合模式。 Microsoft Entra 提供不同的網頁應用程式和背景服務套件。
MSAL.NET 與 Microsoft.Identity.Web 套件
用於主控台應用程式、守護程序服務及非網頁的 .NET Framework 應用程式
用 Microsoft。Identity.Web.TokenCache 與 Microsoft。Identity.Web.Certificate 套件搭配 MSAL.NET,適用於:
- 令牌快取序列化(SQL Server、Redis、Cosmos DB、PostgreSQL)
- 從 KeyVault、憑證儲存庫或檔案系統載入憑證
- 主控台應用程式與守護程式服務
- .NET 標準 2.0 函式庫
MSAL.NET 與 Microsoft。Identity.Web 指南
ASP.NET MVC/Web API 的 OWIN 整合
用於 ASP.NET MVC與網頁API應用
用 Microsoft.Identity.Web.OWIN 套件提供完整的網頁驗證,具備以下功能:
- TokenAcquirerFactory 用於自動代幣獲取
- 控制器擴充功能,方便存取 Microsoft Graph 及下游 API
- 分散式代幣快取支援
- 增量同意處理
比較整合選項
下表總結了兩種積分方法的主要差異。
| Feature | MSAL.NET + 令牌快取/憑證 | OWIN 整合 |
|---|---|---|
| 套件 | Microsoft.Identity.Web.TokenCache Microsoft.Identity.Web.Certificate |
Microsoft.Identity.Web.OWIN |
| 目標 | 控制台應用程式、守護程序、工作服務 | ASP.NET MVC, ASP.NET Web API |
| 驗證 | 手動 MSAL.NET 設定 | 自動 OWIN 中介軟體 |
| 代幣獲取 | 手動 IConfidentialClientApplication |
自動控制器擴展功能 |
| 代幣快取 | 所有提供者(SQL、Redis、Cosmos、PostgreSQL) | 所有提供者(SQL、Redis、Cosmos、PostgreSQL) |
| 憑證載入 | KeyVault、儲存、檔案、Base64 | 透過 MSAL.NET 設定 |
| Microsoft Graph | 手動 GraphServiceClient 設定 |
this.GetGraphServiceClient() |
| 下游 API | 手動進行帶令牌的 HTTP 呼叫 | this.GetDownstreamApi() |
| 漸進同意 | 手動挑戰處理 | 自動化 MsalUiRequiredException |
評估可用方案
從Microsoft.Identity.Web 1.17+開始,你可以在非 ASP.NET Core 環境中使用 Microsoft Identity 庫。 以下套件針對 .NET Framework 與 .NET Standard 工作負載。
可用套件
| Package | Purpose | 目標應用 |
|---|---|---|
| Microsoft。Identity.Web.TokenCache | MSAL.NET 的標記快取序列化器 | 控制台、精靈程序、工作者服務 |
| Microsoft.Identity.Web.Certificate | 憑證載入工具 | 控制台、精靈程序、工作者服務 |
| Microsoft。Identity.Web.OWIN | OWIN 中介軟體整合 | ASP.NET MVC, ASP.NET Web API |
了解套件的好處
這些套件簡化了常見的認證任務,且不需 ASP.NET Core。
| Feature | 優點 |
|---|---|
| 令牌快取序列化 | 可重複使用的快取適配器,適用於內存、SQL Server、Redis、Cosmos DB、PostgreSQL |
| 憑證助手 | 從 KeyVault 中、檔案系統或憑證存儲庫簡化憑證載入 |
| OWIN 整合 | ASP.NET MVC/Web API 的無縫認證 |
| .NET標準 2.0 | 相容於 .NET Framework 4.7.2+、.NET Core 及 .NET 5+ |
| 最小相依關係 | 不依賴 ASP.NET Core 的目標化套件 |
探索範例應用
把這些範例當作你自己實作的起點。
MSAL.NET 範例
- ConfidentialClientTokenCache - 帶有令牌快取的主控台應用程式
- active-directory-dotnetcore-daemon-v2- 使用來自KeyVault的憑證之背景服務程序
OWIN 範例
- ms-identity-aspnet-webapp-openidconnect - ASP.NET MVC with Microsoft.Identity.Web.OWIN