MSAL.NET(Microsoft.Identity.Client)是一個認證函式庫,讓你能從 Microsoft Entra ID 取得令牌,以存取受保護的網頁 API(Microsoft API 或註冊於 Microsoft Entra ID 的應用程式)。
MSAL.NET 可在多個 .NET 平台(桌面、行動裝置及網頁)上使用。
支援的平台與應用程式架構
MSAL.NET 支援不同的應用程式拓撲,包括:
- 原生用戶端(行動或桌面應用程式)代表使用者呼叫 Microsoft 圖形 API。
- 代表使用者,或在沒有使用者的情況下呼叫 Microsoft 圖形 API 的守護程式、服務或 Web 用戶端(Web 應用程式或 Web API)。
欲了解更多支援情境資訊,請參見情境。
MSAL.NET 支援多種平台,包括 .NET、.NET Framework 及 .NET MAUI。
Note
並非所有認證功能在所有平台都能使用。
- 行動平台不允許機密用戶端流程。 它們並非設計來作為後端運作,也無法安全儲存機密。
- 在公開客戶端(行動端與桌面版)中,預設瀏覽器與重定向 URI 因平台而異,代理商的可用性也有所不同( 詳見瀏覽器使用文件)。
Note
MSAL.NET 已針對將 Microsoft Entra ID 作為身分識別提供者(IDP)使用的情況進行最佳化。 雖然可以將 MSAL.NET 與支援 OAuth 2 的第三方 IDP 一起使用。 0——尤其是在使用嵌入式或系統瀏覽器(見 瀏覽器使用說明文件)時——互通性並不保證。 Microsoft 不支援第三方 IDP 整合所產生的問題。 此類情境被視為盡力而為,可能無法被處理。
Note
MSAL.NET 4.61.0 及以上版本不支援 通用 Windows 平台、Xamarin Android 及 Xamarin iOS。 在宣佈即將淘汰適用於 Xamarin 和 UWP 的 MSAL.NET中閱讀更多關於此淘汰的資訊。
為什麼要使用 MSAL.NET?
MSAL.NET 提供多種取得令牌的方式。 使用 MSAL.NET 比使用通用 OAuth 函式庫或對協定撰寫呼叫更簡單。 MSAL.NET 提供多項開箱即用的優勢,可簡化開發人員的工作流程:
- 為你維護 權杖快取,並在權杖即將到期時替你更新權杖。
- 幫助你指定想讓應用程式登入的受眾(你的組織、多個組織、工作、學校及 Microsoft 個人帳號、擁有 Microsoft Entra 外部 ID 的社交身份,或是主權與國家雲端中的使用者)。
- 透過 設定 檔協助你設定應用程式。
- 透過揭露可操作的例外、日誌記錄和遙測資料,幫助你排除應用程式故障。
開始使用 MSAL.NET
- 了解 MSAL.NET 的使用情境。
- 請用 Microsoft Entra ID 註冊你的應用程式。
- 了解 客戶端應用的類型:公開客戶端與機密客戶端。
- 了解如何 取得憑證 以存取受保護的 API。
Considerations
MSAL.NET 用於取得權杖。 它不是用來保護網頁 API。 如果你有興趣用 Microsoft Entra ID 保護 Web API,請參考:
- ASP.NET Core 中的 Microsoft Entra ID。 範例展示了使用 MSAL.NET 呼叫網頁 API 的網頁應用程式。
- Active-Directory-dotnet-native-aspnetcore-v2 展示了如何使用 Microsoft Entra ID 從 WPF 應用程式呼叫 ASP.NET Core Web API。
- IdentityModel 擴充套件用於 .NET 開放原始碼 函式庫,提供 ASP.NET 與 ASP.NET Core 用來保護 API 的中介軟體。
從 Azure Active Directory Authentication Library (ADAL) 遷移
適用於 .NET 的 Microsoft 驗證資源庫(MSAL)是可用來取得驗證權杖的受支援函式庫。 如果您或您的組織正在使用 Azure Active Directory 認證函式庫(ADAL),您應該遷移到 MSAL。 ADAL 於 2023 年 6 月 30 日宣告終止生命週期。
Note
雖然 ADAL 自 2023 年 6 月 30 日起被棄用,但依賴 ADAL 的應用程式不應中斷,因為底層端點仍會持續運作。 不過,ADAL 不會提供新功能或支援。
版本
關於先前的版本,請參閱 GitHub 上的版本。
如需查看開發中及未來版本的資訊,請參見 Milestones。
欲了解更多版本控制資訊,請參閱語意版本管理 - API 變更管理,以了解 MSAL.NET 公開 API 的變更。
Samples
請參閱 我們完整的範例清單。