Share via


在 Azure Active Directory B2C 中定義自訂屬性

開始 之前,請使用 [選擇原則類型 選取器] 來選擇您要設定的原則類型。 Azure Active Directory B2C 提供兩種方法來定義使用者如何與您的應用程式互動:透過預先 定義的使用者流程 ,或透過完全可設定 的自訂原則 。 本文中每個方法所需的步驟都不同。

在使用 自訂原則 新增宣告和自訂使用者輸入一文中,您會瞭解如何使用內 建的使用者設定檔屬性 。 在本文中,您會在 Azure Active Directory B2C (Azure AD B2C) 目錄中啟用自訂屬性。 稍後,您可以在使用者流程 自訂原則 中 同時使用新屬性做為自訂宣告。

您的 Azure AD B2C 目錄隨附一 組內建的屬性 。 不過,您通常需要建立自己的屬性來管理您的特定案例,例如:

  • 客戶面向的應用程式必須保存 loyaltyId 屬性。
  • 識別提供者具有必須保存的唯一使用者識別碼 uniqueUserGUID
  • 自訂使用者旅程圖需要保存使用者 狀態 migrationStatus ,才能讓其他邏輯運作。

擴充屬性、 自訂屬性 自訂宣告 等詞彙 會參考本文內容中的相同內容。 名稱會根據內容而有所不同,例如應用程式、物件或原則。

Azure AD B2C 可讓您擴充儲存在每個使用者帳戶上的屬性集。 您也可以使用 Microsoft Graph API 來讀取和寫入這些屬性。

必要條件

建立自訂屬性

  1. 以 Azure AD B2C 租使用者的全域管理員身分登入 Azure 入口網站
  2. 如果您有多個租使用者的存取權,請選取 頂端功能表中的 [設定 ] 圖示,從 [目錄 + 訂 用帳戶] 功能表切換至您的 Azure AD B2C 租使用者。
  3. 選擇 Azure 入口網站左上角的 [所有服務 ],搜尋並選取 [Azure AD B2C ]。
  4. 選取 [ 使用者屬性 ],然後選取 [ 新增 ]。
  5. 提供自訂屬性的名稱(例如「ShoeSize」)
  6. 選擇資料類型 。 只有 String Boolean Int 可用。
  7. 選擇性地輸入 描述 以取得資訊用途。
  8. 選取 建立

自訂屬性現在可在使用者屬性 清單中 取得,並可用於您的使用者流程。 自訂屬性只會在第一次用於任何使用者流程時建立,而不是當您將它新增至 User 屬性 清單 時。

在您的使用者流程中使用自訂屬性

  1. 在您的 Azure AD B2C 租使用者中,選取 [ 使用者流程 ]。
  2. 選取您的原則(例如「B2C_1_SignupSignin」)加以開啟。
  3. 選取 [使用者屬性 ],然後選取自訂屬性(例如「ShoeSize」 )。 選取 [儲存]。
  4. 選取 [應用程式宣告 ],然後選取自訂屬性。
  5. 選取 [儲存]。

使用使用者流程建立新使用者之後,您就可以在 使用者流程上使用 [執行使用者流程 ] 功能來驗證客戶體驗。 您現在應該會在註冊旅程期間收集的屬性清單中看到 ShoeSize ,並在傳回應用程式的權杖中看到它。

Azure AD B2C 擴充功能應用程式

延伸模組屬性只能在應用程式物件上註冊,即使它們可能包含使用者的資料也一樣。 擴充屬性會附加至名為 b2c-extensions-app 的應用程式。 請勿修改此應用程式,因為 Azure AD B2C 會使用它來儲存使用者資料。 您可以在 Azure AD B2C、應用程式註冊下找到此應用程式。

取得延伸模組應用程式的應用程式識別碼

  1. 登入 Azure 入口網站
  2. 如果您有多個租使用者的存取權,請選取 頂端功能表中的 [設定 ] 圖示,從 [目錄 + 訂 用帳戶] 功能表切換至您的 Azure AD B2C 租使用者。
  3. 在左側功能表中,選取 [Azure AD B2C ]。 或者,選取 [所有服務 ],然後搜尋並選取 [Azure AD B2C ]。
  4. 選取 [應用程式註冊 ],然後選取 [ 所有應用程式 ]。
  5. 選取 b2c-extensions-app. Do not modify. Used by AADB2C for storing user data. 應用程式。
  6. 複製應用程式識別碼。 範例:11111111-1111-1111-1111-111111111111

取得延伸模組應用程式的應用程式屬性

  1. 登入 Azure 入口網站
  2. 如果您有多個租使用者的存取權,請選取 頂端功能表中的 [設定 ] 圖示,從 [目錄 + 訂 用帳戶] 功能表切換至您的 Azure AD B2C 租使用者。
  3. 在左側功能表中,選取 [Azure AD B2C ]。 或者,選取 [所有服務 ],然後搜尋並選取 [Azure AD B2C ]。
  4. 選取 [應用程式註冊 ],然後選取 [ 所有應用程式 ]。
  5. 選取 b2c-extensions-app。請勿修改。AADB2C 用來儲存使用者資料。 應用。
  6. 將下列識別碼複製到剪貼簿並加以儲存:
    • 應用程式識別碼。 範例:11111111-1111-1111-1111-111111111111
    • 物件識別碼 。 範例:22222222-2222-2222-2222-222222222222

修改您的自訂原則

若要在您的原則中啟用自訂屬性,請在 AAD-Common 技術設定檔中繼資料中 提供 應用程式識別碼 和應用程式 物件識別碼 。 AAD-Common * 技術設定檔位於基礎 Microsoft Entra ID 技術設定檔中,並提供 Microsoft Entra 使用者管理的支援。 其他 Microsoft Entra ID 技術設定檔包括 AAD-Common 以使用其設定。 覆寫延伸模組檔案中的 AAD-Common 技術設定檔。

  1. 開啟原則的延伸模組檔案。 例如: SocialAndLocalAccounts/TrustFrameworkExtensions.xml

  2. 尋找 ClaimsProviders 元素。 將新的 ClaimsProvider 新增至 ClaimsProviders 元素。

  3. 在開頭 <Item Key="ClientId"> 和結尾 </Item> 元素之間插入您先前記錄的應用程式識別碼

  4. 在開頭 <Item Key="ApplicationObjectId"> 和結尾 </Item> 元素之間插入您先前記錄的 Application ObjectID

    <!-- 
    <ClaimsProviders> -->
      <ClaimsProvider>
        <DisplayName>Azure Active Directory</DisplayName>
        <TechnicalProfiles>
          <TechnicalProfile Id="AAD-Common">
            <Metadata>
              <!--Insert b2c-extensions-app application ID here, for example: 11111111-1111-1111-1111-111111111111-->  
              <Item Key="ClientId"></Item>
              <!--Insert b2c-extensions-app application ObjectId here, for example: 22222222-2222-2222-2222-222222222222-->
              <Item Key="ApplicationObjectId"></Item>
            </Metadata>
          </TechnicalProfile>
        </TechnicalProfiles> 
      </ClaimsProvider>
    <!-- 
    </ClaimsProviders> -->
    

上傳您的自訂原則

  1. 登入 Azure 入口網站
  2. 如果您有多個租使用者的存取權,請選取 頂端功能表中的 [設定 ] 圖示,從 [目錄 + 訂 用帳戶] 功能表切換至您的 Azure AD B2C 租使用者。
  3. 選擇 Azure 入口網站左上角的 [所有服務 ],然後搜尋並選取 [應用程式註冊 ]。
  4. 選取 [ 身分識別體驗架構 ]。
  5. 選取 [ 上傳自訂原則 ],然後上傳您變更的 TrustFrameworkExtensions.xml 原則檔案。

注意

Microsoft Entra ID 技術設定檔第一次將宣告保存至目錄時,它會檢查自訂屬性是否存在。 如果沒有,它會建立自訂屬性。

透過 Azure 入口網站 建立自訂屬性

內建和自訂原則之間會共用相同的擴充屬性。 當您透過入口網站體驗新增自訂屬性時,這些屬性會使用 存在於每個 B2C 租使用者中的 b2c-extensions-app 來註冊。

您可以在自訂原則中使用這些屬性之前或之後,使用入口網站 UI 來建立這些屬性。 當您在入口網站中建立屬性 loyaltyId 時,必須參考它,如下所示:

名稱 用於
extension_loyaltyId 自訂原則
extension_<b2c-extensions-app-guid>_loyaltyId Microsoft Graph 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 Graph API 中的自訂屬性(目錄延伸模組)是使用慣例 extension_{appId-without-hyphens}_{extensionProperty-name} 來命名,其中 {appId-without-hyphens} 是 appId 的移除版本 (在 Azure AD B2C 入口網站上稱為用戶端識別碼),且 b2c-extensions-app 只有 0-9 和 A-Z 字元。 例如,如果 應用程式的 appId b2c-extensions-app25883231-668a-43a7-80b2-5685c3f874bc ,而屬性名稱為 loyaltyId ,則自訂屬性會命名為 extension_25883231668a43a780b25685c3f874bc_loyaltyId

瞭解如何 使用 Microsoft Graph API 管理 Azure AD B2C 租 使用者中的擴充屬性。

移除擴充屬性

不同于內建屬性,可以移除自訂屬性。 也可以移除擴充屬性的值。

重要

在您移除自訂屬性之前,請針對目錄中的每個帳戶,將擴充屬性值設定為 null 。 如此一來,您就會明確移除擴充屬性的值。 然後,繼續移除擴充屬性本身。 您可以使用 Microsoft Graph API 來查詢自訂屬性。

使用下列步驟,從租使用者中的使用者流程中移除自訂屬性:

  1. 以 Azure AD B2C 租使用者的全域管理員身分登入 Azure 入口網站
  2. 請確定您使用的是包含 Azure AD B2C 租使用者的目錄:
    1. 在入口網站工具列中選取 [ 目錄 + 訂用帳戶 ] 圖示。
    2. 在入口 網站設定 |[目錄 + 訂用帳戶 ] 頁面,在 [目錄名稱] 列表中尋找您的 Azure AD B2C 目錄,然後選取 [ 切換]
  3. 選擇 Azure 入口網站 左上角的 [所有服務],搜尋並選取 [Azure AD B2C]。
  4. 選取 [使用者屬性],然後選取您要刪除的屬性。
  5. 選取 [刪除],然後選取 [是] 予以確認。

使用 Microsoft Graph API 來管理自定義屬性。

下一步

瞭解如何 使用自定義原則新增宣告和自定義用戶輸入。 此範例使用內建宣告 『city』。 若要使用自定義屬性,請以您自己的自定義屬性取代 『city』。