PublicClientApplicationBuilder 類別

定義

public sealed class PublicClientApplicationBuilder : Microsoft.Identity.Client.AbstractApplicationBuilder<Microsoft.Identity.Client.PublicClientApplicationBuilder>
type PublicClientApplicationBuilder = class
    inherit AbstractApplicationBuilder<PublicClientApplicationBuilder>
Public NotInheritable Class PublicClientApplicationBuilder
Inherits AbstractApplicationBuilder(Of PublicClientApplicationBuilder)
繼承

方法

名稱 Description
Build()

從 中設定IPublicClientApplication的參數建立 的PublicClientApplicationBuilder實例。

Create(String)

從 clientID 建立 PublicClientApplicationBuilder。 請參閱 https://aka.ms/msal-net-application-configuration

CreateWithApplicationOptions(PublicClientApplicationOptions)

從公開客戶端應用程式設定選項建立 PublicClientApplicationBuilder。 請參閱 https://aka.ms/msal-net-application-configuration

IsBrokerAvailable()

如果可以使用經紀人,退貨 true 。 此方法僅適用於支援行動應用程式管理的行動情境。 在其他支援情境下,建議單獨使用 WithBroker ,若代理商無法使用,則會退回使用瀏覽器。

WithAdfsAuthority(String, Boolean)

新增一個已知的權威,對應於 ADFS 伺服器。 請參閱 https://aka.ms/msal-net-adfs

(繼承來源 AbstractApplicationBuilder<T>)
WithAuthority(AadAuthorityAudience, Boolean)

為登入使用者新增已知的 Azure AD 權限,指定登入受眾(雲端為 Azure 公共雲)。 參見 https://aka.ms/msal-net-application-configuration

(繼承來源 AbstractApplicationBuilder<T>)
WithAuthority(AzureCloudInstance, AadAuthorityAudience, Boolean)

為應用程式新增已知的 Azure AD 權限,讓使用者登入時指定雲端實例及登入對象。 參見 https://aka.ms/msal-net-application-configuration

(繼承來源 AbstractApplicationBuilder<T>)
WithAuthority(AzureCloudInstance, Guid, Boolean)

為應用程式新增一個已知的 Azure AD 權限,讓單一組織(單一租戶應用程式)的使用者登入,該權限由其雲端實例和租戶 ID 描述。 參見 https://aka.ms/msal-net-application-configuration

(繼承來源 AbstractApplicationBuilder<T>)
WithAuthority(AzureCloudInstance, String, Boolean)

為應用程式新增一個已知的 Azure AD 權限,讓單一組織(單租戶應用程式)的使用者登入,該組織由其雲端實例及網域名稱或租戶 ID 描述。 參見 https://aka.ms/msal-net-application-configuration

(繼承來源 AbstractApplicationBuilder<T>)
WithAuthority(String, Boolean)

為登入使用者新增已知的 Azure AD 權限,並指定完整權限的 URI。 請參閱 應用程式設定選項

(繼承來源 AbstractApplicationBuilder<T>)
WithAuthority(String, Guid, Boolean)

為應用程式新增一個已知的 Azure AD 權限,讓使用者從單一組織(單租戶應用程式)登入,該組織由租戶 ID 指定。 請參閱 應用程式設定選項

(繼承來源 AbstractApplicationBuilder<T>)
WithAuthority(String, String, Boolean)

為應用程式新增已知的 Azure AD 權限,讓使用者從單一組織(單租戶應用程式)登入,該組織由其網域名稱描述。 參見 https://aka.ms/msal-net-application-configuration

(繼承來源 AbstractApplicationBuilder<T>)
WithAuthority(Uri, Boolean)

為申請增加已知權威。 請參閱 應用程式設定選項。 此建構器主要用於權限非標準 Azure AD 權威、非 ADFS 權威或非 Azure AD B2C 權威的情境。 對於 Azure AD,即使在主權雲中,也偏好使用其他覆蓋,例如WithAuthority(AzureCloudInstance, AadAuthorityAudience, Boolean)

(繼承來源 AbstractApplicationBuilder<T>)
WithB2CAuthority(String)

新增一個已知的權威,對應於 Azure AD B2C 政策。 請參閱 https://aka.ms/msal-net-b2c-specificities

(繼承來源 AbstractApplicationBuilder<T>)
WithBroker(Boolean)
WithCacheOptions(CacheOptions)

MSAL 代幣快取的選項。

MSAL 在記憶體中內部維護一個標記快取。 預設情況下,此快取物件是每個 或 PublicClientApplicationConfidentialClientApplication例的一部分。 此方法允許自訂 MSAL 記憶體中的令牌快取。

MSAL 的記憶體快取與令牌快取序列化不同。 快取序列化是將標記從快取(例如 Redis、Cosmos 或磁碟上的檔案)拉取,這些標記以 JSON 格式儲存,並存入 MSAL 的內部記憶體快取。 記憶體快取操作不涉及 JSON 操作。

外部快取序列化仍是處理桌面應用程式、網站及網頁 API 的推薦方式,因為它提供持久性。 這些選項目前無法控制外部快取序列化。

針對各類應用程式及平台的詳細指引: https://aka.ms/msal-net-token-cache-serialization

(繼承來源 AbstractApplicationBuilder<T>)
WithClientCapabilities(IEnumerable<String>)

Microsoft Identity 專屬的 OIDC 擴充功能,允許在不需互動的情況下解決資源挑戰。 允許設定一個或多個用戶端功能,例如「llt」

(繼承來源 AbstractApplicationBuilder<T>)
WithClientId(String)

設定應用程式的用戶端 ID

(繼承來源 AbstractApplicationBuilder<T>)
WithClientName(String)

設定呼叫的 SDK API 名稱以供遙測用途。

(繼承來源 BaseAbstractApplicationBuilder<T>)
WithClientVersion(String)

設定呼叫 SDK 的版本以供遙測用途。

(繼承來源 BaseAbstractApplicationBuilder<T>)
WithDebugLoggingCallback(LogLevel, Boolean, Boolean)

將除錯日誌回撥設定為預設除錯方法,顯示訊息的層級及訊息本身。 如需詳細資訊,請參閱 https://aka.ms/msal-net-logging

(繼承來源 BaseAbstractApplicationBuilder<T>)
WithDefaultRedirectUri()

將公開客戶端應用程式配置為使用推薦的回覆 URI。 參見 https://aka.ms/msal-net-default-reply-uri

Platform
.NET 桌面
用於 .NET Core 上的系統瀏覽器
注意:未來將更新預設重定向 URI,以配合 .NET 桌面及 .NET Core 平台上的系統瀏覽器。
WithExperimentalFeatures(Boolean)

允許使用實驗性功能與 API。 如果這個旗標沒有被設定,實驗性功能會拋出例外。 如需詳細資訊,請參閱 https://aka.ms/msal-net-experimental-features

(繼承來源 BaseAbstractApplicationBuilder<T>)
WithExtraQueryParameters(IDictionary<String,String>)
已淘汰.

為 HTTP 認證請求中的查詢字串設定額外查詢參數

(繼承來源 AbstractApplicationBuilder<T>)
WithExtraQueryParameters(IDictionary<String,ValueTuple<String,Boolean>>)

為 HTTP 認證請求中的查詢字串設定額外查詢參數,並控制快取金鑰中包含哪些參數

(繼承來源 AbstractApplicationBuilder<T>)
WithExtraQueryParameters(String)
已淘汰.

為 HTTP 認證請求中的查詢字串設定額外查詢參數

(繼承來源 AbstractApplicationBuilder<T>)
WithHttpClientFactory(IMsalHttpClientFactory, Boolean)

使用特定 IMsalHttpClientFactory 方式與 IDP 溝通。 這能實現進階情境,例如設定代理或設定代理。

(繼承來源 BaseAbstractApplicationBuilder<T>)
WithHttpClientFactory(IMsalHttpClientFactory)

使用特定 IMsalHttpClientFactory 方式與 IDP 溝通。 這能實現進階情境,例如設定代理或設定代理。

(繼承來源 BaseAbstractApplicationBuilder<T>)
WithInstanceDicoveryMetadata(String)
已淘汰.

允許開發者自行設定有效的權限。 應該提供類似的 https://aka.ms/aad-instance-discovery json 字串。 MSAL 利用這些資訊來:

  • 呼叫 REST API 在preferred_network指定環境中
  • 找出一個環境,讓代幣和帳號儲存在快取中
  • 利用環境別名來匹配其他權威機構發出的代幣
更多詳情請參見 https://aka.ms/msal-net-custom-instance-metadata (繼承來源 AbstractApplicationBuilder<T>)
WithInstanceDicoveryMetadata(Uri)
已淘汰.

讓組織能自行建立服務來處理實例發現,從而提升微服務/服務環境的快取能力。 應該會提供一個回傳類似回應的 https://aka.ms/aad-instance-discovery Uri。 MSAL 利用這些資訊來:

  • 呼叫 REST API 在preferred_network指定環境中
  • 找出一個環境,讓代幣和帳號儲存在快取中
  • 利用環境別名來匹配其他權威機構發出的代幣
更多詳情請參見 https://aka.ms/msal-net-custom-instance-metadata (繼承來源 AbstractApplicationBuilder<T>)
WithInstanceDiscovery(Boolean)

判斷在驗證時是否執行實例發現。 將此設定為 false 會完全禁用實例發現與權威驗證。 不過,這不會影響以區域端點配置的應用程式行為。

(繼承來源 AbstractApplicationBuilder<T>)
WithInstanceDiscoveryMetadata(String)

允許開發者自行設定有效的權限。 應該提供類似的 https://aka.ms/aad-instance-discovery json 字串。 MSAL 利用這些資訊來:

  • 呼叫 REST API 在preferred_network指定環境中
  • 找出一個環境,讓代幣和帳號儲存在快取中
  • 利用環境別名來匹配其他權威機構發出的代幣
更多詳情請參見 https://aka.ms/msal-net-custom-instance-metadata (繼承來源 AbstractApplicationBuilder<T>)
WithInstanceDiscoveryMetadata(Uri)

讓組織能自行建立服務來處理實例發現,從而提升微服務/服務環境的快取能力。 應該會提供一個回傳類似回應的 https://aka.ms/aad-instance-discovery Uri。 MSAL 利用這些資訊來:

  • 呼叫 REST API 在preferred_network指定環境中
  • 找出一個環境,讓代幣和帳號儲存在快取中
  • 利用環境別名來匹配其他權威機構發出的代幣
更多詳情請參見 https://aka.ms/msal-net-custom-instance-metadata (繼承來源 AbstractApplicationBuilder<T>)
WithIosKeychainSecurityGroup(String)

你可以指定一個鑰匙圈存取群組,用來在多個應用程式間持久化令牌快取。 這讓你能在擁有相同鑰匙圈存取群組的多個應用程式間共享令牌快取。 共用令牌快取允許所有使用同一鑰匙圈存取群組的應用程式間進行單一登入。 如需相關資訊,請參閱 https://aka.ms/msal-net-ios-keychain-security-group

WithKerberosTicketClaim(String, KerberosTicketContainer)
已淘汰.

設定從 Azure AD 服務取得 Kerberos Ticket 所需的參數。

WithLegacyCacheCompatibility(Boolean)

啟用舊有的 ADAL 快取序列化與反序列化。

(繼承來源 AbstractApplicationBuilder<T>)
WithLogging(IIdentityLogger, Boolean)

設定身份記錄器。 如需詳細資訊,請參閱 https://aka.ms/msal-net-logging

(繼承來源 BaseAbstractApplicationBuilder<T>)
WithLogging(LogCallback, Nullable<LogLevel>, Nullable<Boolean>, Nullable<Boolean>)

設定日誌回撥。 如需詳細資訊,請參閱 https://aka.ms/msal-net-logging

(繼承來源 BaseAbstractApplicationBuilder<T>)
WithMultiCloudSupport(Boolean)

啟用此公開客戶端應用實例的多雲支援。 它讓應用程式能在全球公共雲權限下使用該函式庫,同時仍能從主權雲取得資源的令牌。

WithOidcAuthority(String)

新增一個已知的權威,對應於通用的 OpenIdConnect 身份提供者。 MSAL 會在權威後加上「.well-known/openid-configuration」,並從中取得 OIDC 的元資料,以找出端點。 請參閱 https://openid.net/specs/openid-connect-core-1_0.html#Terminology

WithOptions(ApplicationOptions)

設定應用程式選項,例如可以從設定檔讀取。 參見 https://aka.ms/msal-net-application-configuration

(繼承來源 AbstractApplicationBuilder<T>)
WithOptions(BaseApplicationOptions)

設定應用程式選項,例如可以從設定檔讀取。 參見 https://aka.ms/msal-net-application-configuration

(繼承來源 BaseAbstractApplicationBuilder<T>)
WithParentActivityOrWindow(Func<IntPtr>)

將 IntPtr 的參考設定為一個視窗,觸發瀏覽器被顯示。 用來將跳出視窗的瀏覽器置中。

WithParentActivityOrWindow(Func<Object>)

設定 ViewController(若使用 iOS)、Activity(若使用 Android)、IWin32Window 或 IntPtr(若使用 .Net Framework)。 用於呼叫瀏覽器。

WithRedirectUri(String)

設定應用程式的重定向 URI。 URI 也必須在申請門戶註冊。 請參閱 https://aka.ms/msal-net-application-configuration

(繼承來源 AbstractApplicationBuilder<T>)
WithTelemetry(ITelemetryConfig)
已淘汰.

產生遙測聚合事件。

(繼承來源 AbstractApplicationBuilder<T>)
WithTenantId(String)

設定應用程式可登入的組織租戶 ID。 這通常是 GUID 或網域名稱。 參見 https://aka.ms/msal-net-application-configuration。 雖然也可以設定 tenantIdcommonorganizationsconsumers和 ,但建議使用其中 WithAuthority(AzureCloudInstance, AadAuthorityAudience, Boolean)一種覆蓋。

(繼承來源 AbstractApplicationBuilder<T>)
WithWindowsBrokerOptions(WindowsBrokerOptions)
已淘汰.

允許自訂 Windows 10 Broker 體驗。

擴充方法

名稱 Description
WithBroker(PublicClientApplicationBuilder, BrokerOptions)

代理者支援單一登入、裝置識別及應用程式識別驗證,同時提升應用程式安全性。 使用此 API 在桌面平台上啟用經紀人。

請參閱 https://aka.ms/msal-net-wam 更多關於啟用經紀人所需的平台特定設定資訊,例如重定向URI。

WithBroker(PublicClientApplicationBuilder, BrokerOptions)

代理商支援單一登入、裝置識別及增強安全性。 使用此 API 在桌面平台上啟用經紀人。

請參閱 https://aka.ms/msal-net-wam 更多關於啟用經紀人所需的平台特定設定資訊,例如重定向URI。

WithBrokerPreview(PublicClientApplicationBuilder, Boolean)
已淘汰.

使 MSAL 能使用 Broker 流程,這些流程比瀏覽器更安全。 關於 Windows 經紀人的詳細資訊,請參見https://aka.ms/msal-net-wam

WithDesktopFeatures(PublicClientApplicationBuilder)
已淘汰.

新增對桌面應用程式(如 CLI、WinForms、WPF 應用程式)的強化支援。

新增支援範圍約為:

WithSsoPolicy(PublicClientApplicationBuilder)

使用此 API 來啟用 SsoPolicy 的執行。 應該只供 Microsoft 第一方應用程式使用。 此規定僅適用於未啟用經紀人且嵌入式網頁檢視為首選時。 預設情況下,該代理支援 SsoPolicy,系統網頁檢視 SsoPolicy 也在作業系統層級被支援。

WithWindowsBroker(PublicClientApplicationBuilder, Boolean)
已淘汰.

啟用舊平台(如 .NET 框架)上的 Windows Broker 流程,因為這些流程在 Microsoft 的機箱中尚未提供。Identity.Client 關於 Windows Broker 的詳細資訊,請參見https://aka.ms/msal-net-wam

WithWindowsDesktopFeatures(PublicClientApplicationBuilder, BrokerOptions)

新增對桌面應用程式(如 CLI、WinForms、WPF 應用程式)的強化支援。

  • Windows 認證管理器(WAM)代理,Windows 10+ 推薦的認證機制 -https://aka.ms/msal-net-wam
  • 嵌入式網頁檢視。 AAD 應用程式使用較舊的 WebBrowser 控制項。 其他應用程式(如 B2C、ADFS 等)則使用 WebView2,一款基於 Microsoft Edge 的嵌入式瀏覽器 -https://aka.ms/msal-net-webview2
WithWindowsEmbeddedBrowserSupport(PublicClientApplicationBuilder)

為 MSAL 增加了更佳的嵌入式瀏覽器支援。 AAD 應用程式將使用較舊的 WebBrowser 控制項。 其他應用程式(如 B2C、ADFS 等)則會使用基於 Microsoft Edge 的嵌入式瀏覽器——https://aka.ms/msal-net-webview2

適用於