應用程式組態選項
若要驗證和取得令牌,您可以在程式代碼中初始化新的公用或機密用戶端應用程式。 當您在 Microsoft 驗證連結庫 (MSAL) 中初始化用戶端應用程式時,可以設定數位組態選項。 這些選項分為兩個群組:
- 註冊選項,包括:
- 記錄選項,包括記錄層級、個人資料的控制,以及使用連結庫的元件名稱
授權單位
授權單位是一個 URL,指出 MSAL 可以從中要求令牌的目錄。
共同授權單位如下:
通用授權單位 URL | 使用時機 |
---|---|
https://login.microsoftonline.com/<tenant>/ |
僅登入特定組織的使用者。 <tenant> URL 中的 是 Microsoft Entra 租使用者的租使用者標識碼(GUID),或其租用戶網域。 |
https://login.microsoftonline.com/common/ |
使用公司及學校帳戶或個人 Microsoft 帳戶登入使用者。 |
https://login.microsoftonline.com/organizations/ |
使用公司與學校帳戶登入使用者。 |
https://login.microsoftonline.com/consumers/ |
僅使用個人 Microsoft 帳戶登入使用者(MSA)。 |
您在程式代碼中指定的授權單位必須與您在 應用程式註冊 Azure 入口網站 中為應用程式指定的支持帳戶類型一致。
授權單位可以是:
- Microsoft Entra 雲端授權單位。
- Azure AD B2C 授權單位。 請參閱 B2C 細節。
- Active Directory 同盟服務 (AD FS) 授權單位。 請參閱 AD FS支援。
Microsoft Entra 雲端授權單位有兩個部分:
- 識別提供者 實例
- 應用程式的登入物件
實例和物件可以串連並提供為授權單位 URL。 下圖顯示授權單位 URL 的組成方式:
雲端實例
實例可用來指定您的應用程式是否從 Azure 公用雲端或國家雲端簽署使用者。 在程式代碼中使用 MSAL,您可以使用列舉或將 URL 傳遞至國家雲端實例做為Instance
成員,來設定 Azure 雲端實例。
如果同時 Instance
指定 和 AzureCloudInstance
,MSAL.NET 會擲回明確的例外狀況。
如果您未指定實例,您的應用程式會以 Azure 公用雲端實例為目標(URL https://login.onmicrosoftonline.com
的實例)。
應用程式物件
登入物件取決於您應用程式的商務需求:
- 如果您是企業營運 (LOB) 開發人員,您可能會產生單一租使用者應用程式,而該應用程式只會在您的組織中使用。 在此情況下,請依其租用戶標識碼(Microsoft Entra 實例的標識符)或與 Microsoft Entra 實例相關聯的功能變數名稱來指定組織。
- 如果您是ISV,您可能會想要使用任何組織或某些組織 (多租使用者應用程式) 中的公司與學校帳戶來登入使用者。 但您可能也想要讓使用者使用其個人 Microsoft 帳戶登入。
如何在程式代碼/組態中指定物件
在程式代碼中使用 MSAL,您可以使用下列其中一個值來指定物件:
- Microsoft Entra 授權物件列舉
- 租用戶標識碼,可以是:
- 單一租使用者應用程式的 GUID (Microsoft Entra 實例的識別碼)
- 與您的 Microsoft Entra 實例相關聯的功能變數名稱(也適用於單一租使用者應用程式)
- 其中一個佔位元作為租用戶標識符,取代 Microsoft Entra 授權單位物件列舉:
organizations
多租用戶應用程式consumers
僅使用其個人帳戶登入使用者common
使用其公司及學校帳戶或其個人 Microsoft 帳戶登入使用者
如果您同時指定 Microsoft Entra 授權單位物件和租使用者標識碼,MSAL 將會擲回有意義的例外狀況。
建議指定對象,因為許多租使用者,且部署在其中的應用程式將會有來賓使用者。 如果您的應用程式會有外部使用者,最好避免 和 organization
的端點common
。 如果您未指定物件,您的應用程式會將 Microsoft Entra ID 和個人 Microsoft 帳戶作為物件,且行為會 common
如同已指定一樣。
有效物件
應用程式的有效物件將會是您在應用程式中設定的物件下限,以及應用程式註冊中指定的物件數目下限(如果有交集)。 事實上,應用程式註冊 體驗可讓您指定應用程式的物件(支援的帳戶類型)。 如需詳細資訊,請參閱快速入門:向 Microsoft 身分識別平台 註冊應用程式。
目前,讓應用程式只使用個人 Microsoft 帳戶登入使用者的唯一方法是設定這兩個設定:
- 將應用程式註冊物件設定為
Work and school accounts and personal accounts
。 - 將程式代碼/組態中的物件設定為
AadAuthorityAudience.PersonalMicrosoftAccount
(或TenantID
=“consumers” )。
用戶端識別碼
用戶端識別碼是註冊應用程式時,由 Microsoft Entra ID 指派給應用程式的唯 一應用程式(用戶端) 標識碼。 您可以在 Identity>Applications Enterprise> 應用程式中應用程式的 [概觀] 頁面上找到應用程式識別符。
重新導向 URI
重新導向 URI 是識別提供者將安全性令牌傳回的 URI。
公用用戶端應用程式的重新導向 URI
如果您是使用 MSAL 的公用用戶端應用程式開發人員:
您想要在桌面或 通用 Windows 平台 (UWP) 應用程式中使用
.WithDefaultRedirectUri()
(MSAL.NET 4.1+)。 方法.WithDefaultRedirectUri()
會將公用用戶端應用程式的重新導向 URI 屬性設定為公用用戶端應用程式的預設建議重新導向 URI。平台 重新導向 URI 傳統型應用程式 (.NET Framework) https://login.microsoftonline.com/common/oauth2/nativeclient
UWP WebAuthenticationBroker.GetCurrentApplicationCallbackUri()
的值。 這可讓瀏覽器使用單一登錄,方法是將值設定為WebAuthenticationBroker.GetCurrentApplicationCallbackUri(),您需要註冊.NET https://localhost
可讓使用者使用系統瀏覽器進行互動式驗證,因為目前 .NET 沒有內嵌網頁檢視的UI。如果您要建置不支援訊息代理程式重新導向 URI 的 Xamarin Android 和 iOS 應用程式,則不需要新增重新導向 URI。 它會自動設定為
msal{ClientId}://auth
Xamarin Android 和 iOS。在 應用程式註冊 中設定重新導向 URI:
您可以使用 屬性來覆寫重新導向 URI RedirectUri
(例如,如果您使用訊息代理程式)。 以下是該案例的重新導向 URI 範例:
RedirectUriOnAndroid
= “msauth-5a434691-ccb2-4fd1-b97b-b64bcfbc03fc://com.microsoft.identity.client.sample”;RedirectUriOnIos
= $“msauth。{Bundle.ID}://auth“;
如需更多 iOS 詳細數據,請參閱 將使用 Microsoft Authenticator 的 iOS 應用程式從 ADAL.NET 移轉至 MSAL.NET 和 利用 iOS 上的訊息代理程式。 如需更多 Android 詳細數據,請參閱 Android 中的代理驗證。
機密用戶端應用程式的重新導向 URI
對於 Web 應用程式,重新導向 URI(或回復 URL)是 Microsoft Entra ID 用來將令牌傳回應用程式的 URI。 如果機密應用程式是其中之一,URI 可以是 Web 應用程式/Web API 的 URL。 重新導向 URI 必須在應用程式註冊中註冊。 當您部署一開始在本機測試的應用程式時,註冊特別重要。 接著,您必須在應用程式註冊入口網站中新增已部署應用程式的回復 URL。
針對精靈應用程式,您不需要指定重新導向 URI。
用戶端密碼
這個選項會指定機密用戶端應用程式的客戶端密碼。 客戶端密碼(應用程式密碼)是由應用程式註冊入口網站提供,或在使用PowerShell Microsoft Entra ID、PowerShell AzureRM 或 Azure CLI 進行應用程式註冊期間提供給 Microsoft Entra ID。
記錄
為了協助偵錯和驗證失敗疑難解答案例,MSAL 提供內建記錄支援。 下列文章涵蓋每個連結庫中的記錄:
下一步
瞭解如何 使用 MSAL.NET 具現化用戶端應用程式,並使用 MSAL.js具現化用戶端應用程式。