這很重要
自 2025 年 5 月 1 日起,Azure AD B2C 將不再可供新客戶購買。 在我們的常見問題中深入瞭解。
開始之前,請使用此頁面頂端的 [選擇原則類型] 選取器,選擇您要設定的原則類型。 Azure Active Directory B2C 提供兩種方法來定義使用者如何與您的應用程式互動:透過預先定義的使用者流程,或透過完全可設定的自訂原則。 此文章中所需的步驟隨各方法而異。
在 使用自定義原則新增宣告和自定義使用者輸入 一文中,您會瞭解如何使用內建 的使用者配置檔屬性。 在本文中,您會在 Azure Active Directory B2C (Azure AD B2C) 目錄中啟用自定義屬性。 稍後,您可以在 使用者流程 或 自定義原則 中同時使用新屬性做為自定義宣告。
您的 Azure AD B2C 目錄隨附一 組內建的屬性。 不過,您通常需要建立自己的屬性來管理您的特定案例,例如:
- 客戶面向的應用程式必須保存 loyaltyId 屬性。
- 識別提供者具有必須保存的唯一用戶標識碼 uniqueUserGUID。
- 自定義使用者旅程圖需要保存用戶狀態 migrationStatus,才能讓其他邏輯運作。
在本文中, 擴充屬性、 自定義屬性和 自定義宣告這些術語指的是同一事物。 名稱會根據內容而有所不同,例如應用程式、對象或原則。
Azure AD B2C 可讓您擴充儲存在每個用戶帳戶上的屬性集。 您也可以使用 Microsoft Graph API 來讀取和寫入這些屬性。
先決條件
- 建立使用者流程,讓使用者能夠註冊並登入您的應用程式。
- 註冊 Web 應用程式。
- 完成開始使用 Active Directory B2C 中的自定義原則中的步驟。 本教學課程會引導您更新自定義原則檔案,以使用您的 Azure AD B2C 租用戶設定。
- 註冊 Web 應用程式。
建立自訂屬性
- 至少以 Azure AD B2C 租戶的 外部 ID 使用者流程屬性管理員 身分登入 Azure 入口網站。
- 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租用戶。
- 選擇 Azure 入口網站左上角 的 [所有服務 ],搜尋並選取 [Azure AD B2C]。
- 選取 [用戶屬性],然後選取 [ 新增]。
- 提供自訂 屬性的名稱( 例如“ShoeSize”)
- 選擇 數據類型。 只有 String、 Boolean 和 Int 可用。
- 可以選擇性地輸入 描述 作為參考資訊。
- 選取 ,創建。
自訂屬性現在可在 使用者屬性 清單中取得,並可用於您的使用者流程。 自定義屬性只會在第一次用於任何使用者流程時建立,而不是當您將它新增至 User屬性清單時。
在您的使用者流程中使用自訂屬性
- 在您的 Azure AD B2C 租戶中,選取 使用者流程。
- 選擇您的政策(例如「B2C_1_SignupSignin」)來打開。
- 選取 [用戶屬性 ],然後選取自定義屬性(例如“ShoeSize” )。 選取 [儲存]。
- 選取 [應用程式宣告 ],然後選取自定義屬性。
- 選取 [儲存]。
使用使用者流程建立新用戶之後,您就可以在使用者流程上使用 [ 執行使用者流程 ] 功能來驗證客戶體驗。 您現在應該會在註冊旅程期間收集的屬性清單中看到ShoeSize,並且在傳回至您的應用程式的令牌中看到該屬性。
Azure AD B2C 擴充功能應用程式
延伸模組屬性只能在應用程式對象上註冊,即使它們可能包含用戶的數據也一樣。 擴充屬性會附加至名為 b2c-extensions-app的應用程式。 請勿修改此應用程式,因為 Azure AD B2C 會使用它來儲存用戶數據。 您可以在 Azure AD B2C、應用程式註冊下找到此應用程式。
取得延伸模組應用程式的應用程式識別碼
- 登入 Azure 入口網站。
- 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租用戶。
- 在左側功能表中,選取 [Azure AD B2C]。 或者,選取 [所有服務 ],然後搜尋並選取 [Azure AD B2C]。
- 選取 [應用程式註冊],然後選取 [所有應用程式]。
- 選取
b2c-extensions-app. Do not modify. Used by AADB2C for storing user data.應用程式。 - 複製應用程式識別碼。 範例:
00001111-aaaa-2222-bbbb-3333cccc4444.
取得延伸模組應用程式的應用程式屬性
- 登入 Azure 入口網站。
- 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租用戶。
- 在左側功能表中,選取 [Azure AD B2C]。 或者,選取 [所有服務 ],然後搜尋並選取 [Azure AD B2C]。
- 選取 [應用程式註冊],然後選取 [所有應用程式]。
- 選取 b2c-extensions-app 應用。請勿修改。AADB2C 用來儲存用戶數據。
- 將下列識別碼複製到剪貼簿並加以儲存:
-
應用程式識別碼。 範例:
00001111-aaaa-2222-bbbb-3333cccc4444. -
物件標識碼。 範例:
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb.
-
應用程式識別碼。 範例:
修改您的自定義原則
若要在您的原則中啟用自定義屬性,請在 AAD-Common 技術設定檔元數據中提供應用程式識別碼和應用程式物件識別碼。 AAD-Common* 技術配置檔位於基底Microsoft Entra ID 技術配置檔中,並提供Microsoft Entra 使用者管理的支援。 其他Microsoft Entra ID 技術配置檔包括 AAD-Common 以使用其設定。 覆寫延伸模組檔案中的 AAD-Common 技術配置檔。
開啟您政策的延伸檔案。 例如:
SocialAndLocalAccounts/TrustFrameworkExtensions.xml。尋找 ClaimsProviders 元素。 將一個新的 ClaimsProvider 新增到 ClaimsProviders 元素中。
在開頭和結尾
<Item Key="ClientId">元素之間插入您先前記錄</Item>。在開頭和結尾
<Item Key="ApplicationObjectId">元素之間插入您先前記錄的</Item>。<!-- <ClaimsProviders> --> <ClaimsProvider> <DisplayName>Azure Active Directory</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="AAD-Common"> <Metadata> <!--Insert b2c-extensions-app application ID here, for example: 00001111-aaaa-2222-bbbb-3333cccc4444--> <Item Key="ClientId"></Item> <!--Insert b2c-extensions-app application ObjectId here, for example: aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb--> <Item Key="ApplicationObjectId"></Item> </Metadata> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider> <!-- </ClaimsProviders> -->
上傳您的自定義原則
- 登入 Azure 入口網站。
- 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租用戶。
- 選擇 Azure 入口網站左上角 的 [所有服務 ],然後搜尋並選取 [ 應用程式註冊]。
- 選取 [ 身分識別體驗架構]。
- 選取 [上傳自定義原則],然後上傳您變更 TrustFrameworkExtensions.xml 原則檔案。
備註
在Microsoft Entra ID 技術配置檔第一次將宣告保存至目錄時,它會檢查自定義屬性是否存在。 如果沒有,它會建立自定義屬性。
透過 Azure 入口網站建立自訂屬性
內建和自定義原則之間會共用相同的擴充屬性。 當您透過入口網站體驗新增自定義屬性時,這些屬性會使用存在於每個 B2C 租戶中的 b2c-extensions-app 來註冊。
您可以在自定義原則中使用這些屬性之前或之後,使用入口網站 UI 來建立這些屬性。 當您在平台中建立屬性 loyaltyId 時,您必須如下所示地引用它:
| 名稱 | 用於 |
|---|---|
extension_loyaltyId |
自訂原則 |
extension_<b2c-extensions-app-guid>_loyaltyId |
Microsoft圖形 API |
備註
在自定義原則中使用自定義屬性時,您必須在宣告類型標識符前面加上 extension_ ,才能在 Azure AD B2C 目錄中進行正確的數據對應。
下列範例示範如何在 Azure AD B2C 自定義原則宣告定義中使用自定義屬性。
<BuildingBlocks>
<ClaimsSchema>
<ClaimType Id="extension_loyaltyId">
<DisplayName>Loyalty Identification</DisplayName>
<DataType>string</DataType>
<UserHelpText>Your loyalty number from your membership card</UserHelpText>
<UserInputType>TextBox</UserInputType>
</ClaimType>
</ClaimsSchema>
</BuildingBlocks>
下列範例示範在技術配置檔、輸入、輸出和保存宣告中使用 Azure AD B2C 自定義原則中的自定義屬性。
<InputClaims>
<InputClaim ClaimTypeReferenceId="extension_loyaltyId" />
</InputClaims>
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="extension_loyaltyId" />
</PersistedClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="extension_loyaltyId" />
</OutputClaims>
透過 Microsoft Graph 管理擴充屬性
您可以使用 Microsoft Graph 來建立和管理自定義屬性,然後設定使用者的值。 擴展屬性也稱為目錄擴展或 Microsoft Entra 擴展。
Microsoft圖形 API 中的自定義屬性(目錄延伸模組)會使用慣例 extension_{appId-without-hyphens}_{extensionProperty-name} 來命名,其中 {appId-without-hyphens} 是 appId 的移除版本(在 Azure AD B2C 入口網站上稱為用戶端識別符),且 b2c-extensions-app 只有 0-9 和 A-Z 字元。 例如,如果應用程式的 appIdb2c-extensions-app 是 11112222-bbbb-3333-cccc-4444dddd5555 ,而屬性名稱為 loyaltyId,則自訂屬性會命名為 extension_25883231668a43a780b25685c3f874bc_loyaltyId。
瞭解如何使用 Microsoft Graph API 來管理 Azure AD B2C 租使用者中的擴充屬性 。
拿掉擴充屬性
不同於內建屬性,可以移除自定義屬性。 也可以移除擴充屬性的值。
這很重要
在您移除自訂屬性之前,請針對目錄中的每個帳戶,將擴充屬性值設定為 null。 如此一來,您就會明確移除擴充屬性的值。 然後,繼續移除擴充屬性本身。 您可以使用圖形 API Microsoft查詢自訂屬性。
使用下列步驟,從您的租戶中的使用者流程中刪除自訂屬性:
- 至少以 Azure AD B2C 租戶的 外部 ID 使用者流程屬性管理員 身分登入 Azure 入口網站。
- 確定您使用的是包含您 Azure AD B2C 租用戶的目錄:
- 選取入口網站工具列中的 [目錄 + 訂用帳戶] 圖示。
- 在 入口網站設定 |[目錄 + 訂用帳戶 ] 頁面,在 [目錄名稱] 列表中尋找您的 Azure AD B2C 目錄,然後選取 [ 切換]
- 選擇 Azure 入口網站左上角 的 [所有服務 ],搜尋並選取 [Azure AD B2C]。
- 選取 [使用者屬性],然後選取您要刪除的屬性。
- 選取 [刪除],然後選取 [是] 予以確認。
使用 Microsoft Graph API 來管理自定義屬性。
後續步驟
瞭解如何 使用自定義原則新增宣告和自定義用戶輸入。 此範例使用內建宣告 『city』。 若要使用自定義屬性,請以您自己的自定義屬性取代 『city』。