Microsoft.Identity.Client 命名空間
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
Microsoft.Identity.Client是 Microsoft 驗證資源庫(MSAL)針對 .NET 的核心命名空間,透過該Microsoft.Identity.Client套件提供。 它包含了你從支援的認證提供者取得令牌所需的所有關鍵元件。
Installation
dotnet add package Microsoft.Identity.Client
nuget install Microsoft.Identity.Client
使用 封裝管理員 主控台:
Install-Package Microsoft.Identity.Client
使用 Visual Studio:
- 打開 方案總管。
- 在解決方案中右鍵點擊專案。
- 點選 管理 NuGet 套件...
- 點選「瀏覽」標籤並搜尋。
Microsoft.Identity.Client - 點選套件
Microsoft.Identity.Client並點 選安裝。
文件
要開始,請參考 Microsoft 驗證資源庫 for .NET 指南。
Samples
類別
| 名稱 | Description |
|---|---|
| AbstractAcquireTokenParameterBuilder<T> |
這是用於代幣請求建構者的基底類別,這些請求嘗試根據所提供的參數獲取代幣。 |
| AbstractApplicationBuilder<T> |
Installation
使用 封裝管理員 主控台:
使用 Visual Studio:
文件要開始,請參考 Microsoft 驗證資源庫 for .NET 指南。 Samples |
| AbstractClientAppBaseAcquireTokenParameterBuilder<T> |
參數建構器的基本類別,用於公開客戶端應用及機密客戶端應用程式的令牌取得操作 |
| AbstractConfidentialClientAcquireTokenParameterBuilder<T> |
機密客戶端應用程式令牌請求建置器的基底類別 |
| AbstractManagedIdentityAcquireTokenParameterBuilder<T> |
管理身份應用程式令牌請求建置器的抽象基底類別。 |
| AbstractPublicClientAcquireTokenParameterBuilder<T> |
公共客戶端應用令牌請求建構器的基底類別 |
| AccountExtensions |
擴展方法 IAccount |
| AccountId |
特定租戶帳戶的識別碼。 返回者 IAccount.HomeAccountId |
| AcquireTokenByAuthorizationCodeParameterBuilder |
AcquireTokenByAuthorizationCode 建置者 |
| AcquireTokenByIntegratedWindowsAuthParameterBuilder |
Builder for AcquireTokenByIntegratedWindowsAuth |
| AcquireTokenByRefreshTokenParameterBuilder |
該方法的 AcquireTokenByRefreshToken(IEnumerable<String>, String) 參數建構器。 請參閱 https://aka.ms/msal-net-migration-adal2-msal2 |
| AcquireTokenByUserFederatedIdentityCredentialParameterBuilder |
操作參數 AcquireTokenByUserFederatedIdentityCredential(IEnumerable<String>, String, String) 建構器。 |
| AcquireTokenByUsernameAndPasswordConfidentialParameterBuilder |
操作參數 AcquireTokenByUsernamePassword(IEnumerable<String>, String, String) 建構器。 請參閱 https://aka.ms/msal-net-up |
| AcquireTokenByUsernamePasswordParameterBuilder |
操作參數 AcquireTokenByUsernamePassword(IEnumerable<String>, String, String) 建構器。 請參閱 https://aka.ms/msal-net-up |
| AcquireTokenForClientParameterBuilder |
Builder for AcquireTokenForClient(用於客戶端憑證流程、守護程序應用)。 請參閱 https://aka.ms/msal-net-client-credentials |
| AcquireTokenForManagedIdentityParameterBuilder |
AcquireTokenForManagedIdentity 的建構器(用於取得管理身份的 token 代碼)。 請參閱 https://aka.ms/msal-net-managed-identity |
| AcquireTokenInteractiveParameterBuilder |
互動式代幣請求的建構器。 請參閱 https://aka.ms/msal-net-acquire-token-interactively |
| AcquireTokenOnBehalfOfParameterBuilder |
AcquireTokenOnBehalfOf 建構器(OBO 流程)請參見 https://aka.ms/msal-net-on-behalf-of |
| AcquireTokenSilentParameterBuilder |
操作參數 AcquireTokenSilent(IEnumerable<String>, IAccount) 建構器。 請參閱 https://aka.ms/msal-net-acquiretokensilent |
| AcquireTokenWithDeviceCodeParameterBuilder |
操作參數 AcquireTokenWithDeviceCode(IEnumerable<String>, Func<DeviceCodeResult,Task>) 建置器。 請參閱 https://aka.ms/msal-net-device-code-flow |
| ApplicationBase |
用於建立客戶端應用程式的介面。 如需詳細資訊,請參閱 https://aka.ms/msal-net-client-applications。 |
| ApplicationOptions |
選項物件的基底類別,其字串值可從設定檔載入(例如 JSON 檔案,如 asp.net 設定情境中)另見 https://aka.ms/msal-net-application-configuration 導出類別 PublicClientApplicationOptions 及 ConfidentialClientApplicationOptions |
| AssertionRequestOptions |
關於需要產生的客戶斷言資訊,請參見 https://aka.ms/msal-net-client-assertion |
| AuthenticationHeaderParser |
解析認證標頭以取得標頭值。HttpResponseHeaders |
| AuthenticationInfoParameters |
參數由 Authentication-Info 標頭回傳。 這讓出現了像是產權證明等情境。參見 https://www.rfc-editor.org/rfc/rfc7615 |
| AuthenticationResult |
包含 ConfidentialClientApplication 中 PublicClientApplication 一次令牌擷取操作的結果。 如需詳細資訊,請參閱 https://aka.ms/msal-net-authenticationresult |
| AuthenticationResultMetadata |
包含認證結果的元資料。 Metrics 用於其他MSAL範圍的指標。 |
| BaseAbstractAcquireTokenParameterBuilder<T> |
這是用於代幣請求建構者的基底類別,這些請求嘗試根據所提供的參數獲取代幣。 |
| BaseAbstractApplicationBuilder<T> |
Installation
使用 封裝管理員 主控台:
使用 Visual Studio:
文件要開始,請參考 Microsoft 驗證資源庫 for .NET 指南。 Samples |
| BaseApplicationOptions |
選項物件的基底類別,其字串值可從設定檔載入(例如 asp.net 設定情境中的 JSON 檔案)另見 https://aka.ms/msal-net-application-configuration 衍生類別 ApplicationOptions |
| BrokerOptions |
該類別規定了跨營運系統的經紀人選擇權,共同屬性為直接成員,平台特定屬性(若存在)則是相應選項的一部分 |
| CacheOptions |
MSAL 代幣快取的選項。 |
| ClientApplicationBase |
包含常見 API 方法與屬性的抽象類別。 ConfidentialClientApplication 也 PublicClientApplication 擴充了這個類別。 如需詳細資訊,請參閱 https://aka.ms/msal-net-client-applications |
| ClientSignedAssertion |
貨櫃從 |
| ConfidentialClientApplication |
類別用於機密客戶端應用程式(網頁應用程式、網頁 API 及守護程序應用程式)。 |
| ConfidentialClientApplicationBuilder |
Installation
使用 封裝管理員 主控台:
使用 Visual Studio:
文件要開始,請參考 Microsoft 驗證資源庫 for .NET 指南。 Samples |
| ConfidentialClientApplicationOptions |
機密客戶端應用程式(Web App / Web API / daemon app)的設定選項。 請參閱 https://aka.ms/msal-net/application-configuration |
| DeviceCodeResult |
這個物件作為裝置程式碼流程的一部分回傳,並包含使用者該如何導航登入及裝置代碼需要輸入哪些資訊。 參見 https://aka.ms/msal-device-code-flow。 |
| EmbeddedWebViewOptions |
使用嵌入式網頁檢視的選項。 |
| GetAuthorizationRequestUrlParameterBuilder |
注意:AbstractAcquireTokenParameterBuilder 中的幾個方法(例如 account)在這裡不太合理。 我們是否想建立一個包含所有常見方法的基礎,然後再建立一個只用於 AcquireToken 的帳號等基礎? |
| IntuneAppProtectionPolicyRequiredException |
當 Intune 需要應用程式保護政策時,會觸發此例外。 此例外中的資訊可用於應用程式取得行動應用程式管理(MAM)SDK 所需的註冊 ID。 請參閱 https://aka.ms/msal-net-trueMAM |
| ManagedIdentityApplication |
類別用於管理身份應用程式(如 Azure 資源如 App Services、虛擬機器、Azure Arc、Service Fabric 和 Cloud Shell)。 |
| ManagedIdentityApplicationBuilder |
用於管理身份應用程式的建構器。 |
| ManagedIdentityPopExtensions |
在管理身份流程中啟用 mTLS 所有權證明的擴充方法。 |
| Metrics |
MSAL 全域的指標。 |
| MsalClaimsChallengeException |
此例外表示端點已回傳需要解決的理賠。 這可以透過在下一次驗證請求中使用它們來達成。 詳見 條件存取與理賠挑戰。 請參見 處理多重認證(MFA)、條件存取與增量同意。 |
| MsalClientException |
此例外類別代表函式庫或裝置本地的錯誤。 相反地,錯誤MsalServiceException來自 Azure AD 服務或網路。 如需詳細資訊,請參閱 https://aka.ms/msal-net-exceptions |
| MsalError |
錯誤代碼在 MsalException 中以屬性回傳 |
| MsalException |
當代幣取得過程中發生錯誤時拋出的基礎例外類型。 如需詳細資訊,請參閱 https://aka.ms/msal-net-exceptions |
| MsalManagedIdentityException |
此例外類別用於由管理身份來源產生的異常。 此類別已被棄用,將於未來版本中移除。 接手 MsalServiceException 吧。 如需詳細資訊,請參閱 https://aka.ms/msal-net-managed-identity |
| MsalServiceException |
當服務回傳錯誤回應或其他網路錯誤時,會拋出異常類型。 如需詳細資訊,請參閱 https://aka.ms/msal-net-exceptions |
| MsalThrottledServiceException |
當 MSAL 偵測到應用程式嘗試取得權杖過頻時,會拋出異常類型,原因如下:
此例外的性質與原始例外相同 |
| MsalThrottledUiRequiredException |
當 MSAL 偵測到應用程式試圖取得某個令牌,儘管 a MsalUiRequiredException 最近被拋出時,會拋出異常類型。 為了減輕這種情況,當遇到 時 MsalUiRequiredException ,應用程式應切換為互動式取得令牌。 為了更了解為什麼會被拋棄,MsalUiRequiredException請檢查該物業。Classification 此例外的性質與原始例外相同 |
| MsalUiRequiredException |
此例外類別是為了告知開發者,認證成功需要 UI 互動。 它會在呼叫AcquireTokenSilent(IEnumerable<String>, IAccount)或其覆寫時拋出,或當快取中不存在令牌,或使用者需要提供更多內容,或根據 Azure AD 政策執行多重驗證等情況。 如需詳細資訊,請參閱 https://aka.ms/msal-net-exceptions |
| OsCapabilitiesExtensions |
擴充方法 |
| PublicClientApplication |
包含常見 API 方法與屬性的抽象類別。 如需詳細資訊,請參閱 https://aka.ms/msal-net-client-applications |
| PublicClientApplicationBuilder |
Installation
使用 封裝管理員 主控台:
使用 Visual Studio:
文件要開始,請參考 Microsoft 驗證資源庫 for .NET 指南。 Samples |
| PublicClientApplicationExtensions |
擴充性方法 IPublicClientApplication |
| PublicClientApplicationOptions |
公共客戶端應用程式(桌面/行動應用程式)的設定選項。 請參閱 https://aka.ms/msal-net/application-configuration |
| RegionDetails |
包含使用 MSAL 區域發現時的區域結果,作為 AuthenticationResultMetadata 的一部分發佈。 AuthenticationResultMetadata 以獲得認證結果的額外元資料資訊。 |
| SystemWebViewOptions |
使用預設作業系統瀏覽器作為獨立程序處理互動式驗證的選項。MSAL 會監聽作業系統瀏覽器完成驗證,但無法關閉瀏覽器。 不過,它可以回應 200 OK 訊息或 302 重定向,這些都可以在這裡設定。 更多詳情請參見 https://aka.ms/msal-net-os-browser |
| TenantProfile |
代表特定租戶的帳戶。 同一個帳號可以存在於其主租戶,也可以作為訪客存在於多個其他租戶中。 存取權杖和 ID 權杖是租戶專屬的,這個物件提供所有與帳號關聯的 ID 權杖的高階資訊。 |
| TokenCache |
憑證快取儲存存取權杖及帳號的刷新憑證。此類別用於 和 PublicClientApplication的ConfidentialClientApplication建構子。 以 ConfidentialClientApplication 為例,會使用兩個實例,一個用於使用者令牌快取,另一個用於應用程式令牌快取(用於使用用戶端憑證流程的應用程式)。 |
| TokenCacheExtensions |
ITokenCache 的擴充方法 |
| TokenCacheNotificationArgs |
包含存取快取的 MSAL 呼叫所使用的參數。 另 ITokenCacheSerializer 見包含自訂快取序列化方法的部分。 關於代幣快取的更多細節,請參見 https://aka.ms/msal-net-web-token-cache |
| TraceTelemetryConfig |
一個簡單的 ITelemetryConfig 實作,使用 System.Diagnostics.Trace 寫入資料。 |
| UserAssertion |
Installation
使用 封裝管理員 主控台:
使用 Visual Studio:
文件要開始,請參考 Microsoft 驗證資源庫 for .NET 指南。 Samples |
| WindowsBrokerOptions |
使用 Windows 10 經紀人的進階選項。 更多詳情請參見 https://aka.ms/msal-net-wam |
| WwwAuthenticateParameters |
參數由 WWW-Authenticate 標頭回傳。 這允許動態情境,如理賠挑戰、持續存取評估(CAE)及條件存取(CA)。 參見 https://aka.ms/msal-net/wwwAuthenticate。 |
結構
| 名稱 | Description |
|---|---|
| Prompt |
包含靜態成員的結構,你可以用來指定 AcquireTokenAsync IPublicClientApplication 的互動覆寫如何觸發使用者的提示。 |
介面
| 名稱 | Description |
|---|---|
| IAccount |
IAccount 介面代表單一帳號的資訊。
同一位使用者可能同時存在於不同的租戶中,也就是說,同一個使用者可以擁有多個帳號。
A |
| IAppConfig |
用於建構公開或機密客戶端應用程式的設定屬性。 |
| IApplicationBase |
用於建立客戶端應用程式的介面。 如需詳細資訊,請參閱 https://aka.ms/msal-net-client-applications。 |
| IByRefreshToken |
Installation
使用 封裝管理員 主控台:
使用 Visual Studio:
文件要開始,請參考 Microsoft 驗證資源庫 for .NET 指南。 Samples |
| IByUserFederatedIdentityCredential |
提供利用用戶聯邦身份憑證(User Federated Identity Credential,UserFIC)流程取得憑證的介面。 |
| IByUsernameAndPassword |
提供在機密用戶端使用資源擁有者密碼授權的明確介面。 |
| IClientApplicationBase |
介面定義了常見的 API 方法與屬性。 兩者皆可 PublicClientApplication 延伸 ConfidentialClientApplication 這門課。 如需詳細資訊,請參閱 https://aka.ms/msal-net-client-applications |
| IConfidentialClientApplication |
代表機密客戶端應用程式——網頁應用程式、網頁 API、守護程序應用程式。 |
| ILongRunningWebApi |
網頁 API 中長跑或背景程序的方法。 |
| IManagedIdentityApplication |
元件用於管理身份應用程式,用於 Azure 資源。 |
| IMsalHttpClientFactory |
負責開發 HttpClient 的工廠。 如需詳細資訊,請參閱 https://learn.microsoft.com/dotnet/api/system.net.http.httpclient?view=net-7.0#instancing。 |
| IMsalMtlsHttpClientFactory |
一個工廠負責建立為互惠 TLS(mTLS)配置的 HttpClient 實例。 此工廠設計用於使用 mTLS 保護與 Azure AD 的通訊。 欲了解更多 HttpClient 實例化的細節,請參見 https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=net-8.0#instancing。 |
| IMsalSFHttpClientFactory |
工廠負責建立帶有自訂伺服器憑證驗證回撥的 HttpClient。 這對於需要使用伺服器憑證驗證的 Service Fabric 情境非常有用。詳情請參見https://learn.microsoft.com/dotnet/api/system.net.http.httpclient?view=net-7.0#instancing。 |
| IPublicClientApplication |
代表公共客戶端應用程式——桌面及行動應用程式。 |
| ITelemetryConfig |
Installation
使用 封裝管理員 主控台:
使用 Visual Studio:
文件要開始,請參考 Microsoft 驗證資源庫 for .NET 指南。 Samples |
| ITelemetryEventPayload |
代表所收集事件序列中單一快照的資料 |
| ITokenCache |
這是實作對快取操作公開存取的介面。 使用 CacheV2 時,這通常只有在呼叫者將快取持久化於自身儲存庫時才需要,因為這會提供該情境下所需的序列化/反序列化及前後通知。 請參閱 https://aka.ms/aka.ms/msal-net-token-cache-serialization |
| ITokenCacheSerializer |
此介面將以 TokenCacheNotificationArgs 回調形式提供,以啟用快取的序列化/反序列化。 |
列舉
| 名稱 | Description |
|---|---|
| AadAuthorityAudience |
指定哪些 Microsoft 帳號可用於該應用程式登入。 請參閱 https://aka.ms/msal-net-application-configuration |
| AzureCloudInstance |
Installation
使用 封裝管理員 主控台:
使用 Visual Studio:
文件要開始,請參考 Microsoft 驗證資源庫 for .NET 指南。 Samples |
| BrokerOptions.OperatingSystems |
支援的操作系統 |
| CacheRefreshReason |
指定使用 AcquireTokenSilent、AcquireTokenForClient 或 AcquireTokenOnBehalfOf 時,從身份提供者取得存取權杖的原因。 |
| LogLevel |
代表 MSAL 中的對數層級。 詳情請參見 MSAL 日誌。 |
| TelemetryAudienceType |
描述遙測受眾的類型。 AudienceType |
| TokenSource |
在認證結果中指定存取來源及 ID 令牌。 |
| UiRequiredExceptionClassification |
關於 ,的成因 MsalUiRequiredException細節,暗示使用者在互動驗證過程中可以期待什麼。 詳情請參閱 理解 MsalUiRequiredException 。 |
委派
| 名稱 | Description |
|---|---|
| LogCallback |
回調委派,允許應用程式開發者自行處理日誌,並以自訂方式處理。 此回調是利用 WithLogging(LogCallback, Nullable<LogLevel>, Nullable<Boolean>, Nullable<Boolean>)來設定的。
若 |
| TokenCacheCallback |
在代幣取得過程中,針對特定代幣快取互動的通知。 此代理特別用於提供自訂的標記快取序列化。 請參閱 https://aka.ms/aka.ms/msal-net-token-cache-serialization |
備註
貢獻
我們感謝大家的回饋與貢獻,幫助 Microsoft 驗證資源庫 for .NET 變得更好! 在開始之前,請閱讀以下文件:
問題
若要提供圖書館回饋或回報錯誤,請在 GitHub 上開啟一個議題。