Azure Active Directory B2C:カスタム プロファイル ポリシーでカスタム属性を有効にするAzure Active Directory B2C: Enable custom attributes in a custom profile policy

カスタム ポリシーを使用した要求の追加とユーザー入力のカスタマイズ」の記事では、組み込みのユーザー プロファイル属性を使用する方法について説明しています。In the Add claims and customize user input using custom policies article you learn how to use built-in user profile attributes. この記事では、Azure Active Directory B2C (Azure AD B2C) ディレクトリでカスタム属性を有効にします。In this article, you enable a custom attribute in your Azure Active Directory B2C (Azure AD B2C) directory. 新しい属性は、後でカスタム要求として、ユーザー フローカスタム ポリシーで同時に使用することができます。Later, you can use the new attribute as a custom claim in user flows or custom policies simultaneously.

注意

Azure Active Directory B2C で、カスタム ポリシーは、主に、複雑なシナリオに取り組む用途向けに設計されています。In Azure Active Directory B2C, custom policies are designed primarily to address complex scenarios. ほとんどのシナリオで、組み込みユーザー フローを使用することをお勧めします。For most scenarios, we recommend that you use built-in user flows.

前提条件Prerequisites

Azure Active Directory B2C: カスタム ポリシーの概要」に記載の手順に従ってください。Follow the steps in the article Azure Active Directory B2C: Get started with custom policies.

カスタム属性を使用して顧客に関する情報を収集するUse custom attributes to collect information about your customers

Azure AD B2C ディレクトリには、組み込みの属性セットが付属します。Your Azure AD B2C directory comes with a built-in set of attributes. ただし、次のような場合には、特定のシナリオを管理するために、独自の属性を作成する必要があります。However, you often need to create your own attributes to manage your specific scenario, for example when:

  • 顧客向けアプリケーションで、LoyaltyId 属性を保持する必要がある。A customer-facing application needs to persist a LoyaltyId attribute.
  • ID プロバイダーが、保存する必要がある一意のユーザー識別子 (uniqueUserGUID) を保持している。An identity provider has a unique user identifier, uniqueUserGUID, that must be persisted.
  • カスタム ユーザー体験で、他のロジックを運用するために必要な、ユーザーの状態 (migrationStatus) を保持する必要がある。A custom user journey needs to persist the state of the user, migrationStatus, for other logic to operate on.

Azure AD B2C では、各ユーザー アカウントで保存される属性セットを拡張できます。Azure AD B2C allows you to extend the set of attributes stored on each user account. また、Microsoft Graph API を使用してこれらの属性を読み書きすることもできます。You can also read and write these attributes by using the Microsoft Graph API.

Azure AD B2C 拡張アプリAzure AD B2C extensions app

拡張属性は、ユーザーに関するデータを保持できる場合でも、アプリケーション オブジェクトにしか登録できません。Extension attributes can only be registered on an application object, even though they might contain data for a user. 拡張属性は、b2c-extensions-app というアプリケーションに関連付けられます。The extension attribute is attached to the application called b2c-extensions-app. Azure AD B2C は、ユーザー データを保存するためにこのアプリケーションを使用します。このため、このアプリケーションは変更しないでください。Do not modify this application, as it's used by Azure AD B2C for storing user data. このアプリケーションは、Azure AD B2C (アプリの登録) から確認できます。You can find this application under Azure AD B2C, app registrations.

用語の拡張機能プロパティカスタム属性、およびカスタム要求では、この記事のコンテキストと同じ内容を参照します。The terms extension property, custom attribute, and custom claim refer to the same thing in the context of this article. 名前は、アプリケーション、オブジェクト、ポリシーなどのコンテキストによって異なります。The name varies depending on the context, such as application, object, or policy.

アプリケーション プロパティの取得Get the application properties

  1. Azure portal にサインインします。Sign in to the Azure portal.
  2. 上部のメニューにある [ディレクトリ + サブスクリプション] フィルターを選択し、Azure AD B2C テナントを含むディレクトリを選択します。Select the Directory + subscription filter in the top menu, and then select the directory that contains your Azure AD B2C tenant.
  3. 左側のメニューで、 [Azure AD B2C] を選択します。In the left menu, select Azure AD B2C. または、 [すべてのサービス] を選択し、 [Azure AD B2C] を検索して選択します。Or, select All services and search for and select Azure AD B2C.
  4. [アプリの登録] を選択してから、 [すべてのアプリケーション] を選択します。Select App registrations, and then select All applications.
  5. b2c-extensions-app. Do not modify. Used by AADB2C for storing user data. アプリケーションを選択します。Select the b2c-extensions-app. Do not modify. Used by AADB2C for storing user data. application.
  6. 次の識別子をクリップボードにコピーして保存します。Copy the following identifiers to your clipboard and save them:
    • アプリケーション IDApplication ID. 例: 11111111-1111-1111-1111-111111111111.Example: 11111111-1111-1111-1111-111111111111.
    • オブジェクト IDObject ID. 例: 22222222-2222-2222-2222-222222222222.Example: 22222222-2222-2222-2222-222222222222.

カスタム ポリシーの変更Modify your custom policy

ポリシーでカスタム属性を有効にするには、AAD-Common 技術プロファイルのメタデータで、アプリケーション ID とアプリケーション オブジェクト ID を指定します。To enable custom attributes in your policy, provide Application ID and Application Object ID in the AAD-Common technical profile metadata. AAD-Common 技術プロファイルは、その基盤である Azure Active Directory 技術プロファイルに含まれており、Azure AD ユーザー管理のためのサポートを提供するものです。The AAD-Common technical profile is found in the base Azure Active Directory technical profile, and provides support for Azure AD user management. 他の Azure AD 技術プロファイルには、AAD-Common 技術プロファイルが含まれており、その構成が利用されています。Other Azure AD technical profiles include the AAD-Common to leverage its configuration. 拡張ファイルで、AAD-Common 技術プロファイルをオーバーライドしてください。Override the AAD-Common technical profile in the extension file.

  1. お使いのポリシーの拡張ファイルを開きます。Open the extensions file of your policy. たとえば、SocialAndLocalAccounts/TrustFrameworkExtensions.xmlです。For example, SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  2. ClaimsProviders 要素を見つけます。Find the ClaimsProviders element. ClaimsProviders 要素に新しい ClaimsProvider を追加します。Add a new ClaimsProvider to the ClaimsProviders element.

  3. ApplicationObjectId を、前に記録したオブジェクト ID に置き換えます。Replace ApplicationObjectId with the Object ID that you previously recorded. 次に、下記のスニペットで、ClientId を前に記録したアプリケーション ID に置き換えます。Then replace ClientId with the Application ID that you previously recorded in the below snippet.

    <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>
    

カスタム ポリシーのアップロードUpload your custom policy

  1. Azure portal にサインインします。Sign in to the Azure portal.
  2. ご利用の Azure AD テナントを含むディレクトリを使用していることを確認してください。そのためには、トップ メニューにある [ディレクトリ + サブスクリプション] フィルターを選択して、ご利用の Azure AD B2C テナントを含むディレクトリを選択します。Make sure you're using the directory that contains your Azure AD tenant by selecting the Directory + subscription filter in the top menu and choosing the directory that contains your Azure AD B2C tenant.
  3. Azure portal の左上隅にある [すべてのサービス] を選択し、 [アプリの登録] を検索して選択します。Choose All services in the top-left corner of the Azure portal, and then search for and select App registrations.
  4. [Identity Experience Framework] を選択します。Select Identity Experience Framework.
  5. [カスタム ポリシーのアップロード] を選択し、変更した TrustFrameworkExtensions.xml ポリシー ファイルをアップロードします。Select Upload Custom Policy, and then upload the TrustFrameworkExtensions.xml policy files that you changed.

注意

 Azure AD 技術プロファイルで要求がディレクトリに最初に保持される際には、カスタム属性が存在するかどうかがチェックされます。 The first time the Azure AD technical profile persists the claim to the directory, it checks whether the custom attribute exists. ない場合は、カスタム属性を作成します。If not, it creates the custom attribute.

Azure portal を使用してカスタム属性を作成するCreate a custom attribute through Azure portal

組み込みポリシーとカスタム ポリシー間では、同じ拡張属性が共有されます。The same extension attributes are shared between built-in and custom policies. ポータルのエクスペリエンスを使用してカスタム属性を追加すると、これらの属性が、すべての B2C テナントに存在する b2c-extensions-app を使用して登録されます。When you add custom attributes via the portal experience, those attributes are registered by using the b2c-extensions-app that exists in every B2C tenant.

これらの属性は、カスタム ポリシーで使用する前後に、ポータルの UI を使用してを作成できます。You can create these attributes by using the portal UI before or after you use them in your custom policies. Azure Active Directory B2C でカスタム属性を定義する方法のガイドラインに従ってください。Follow the guidance for how to define custom attributes in Azure Active Directory B2C. ポータルで属性 loyaltyId を作成するときに、次のようにこの属性を参照する必要があります。When you create an attribute loyaltyId in the portal, you must refer to it as follows:

名前Name 使用される場所Used in
extension_loyaltyId カスタム ポリシーCustom policy
extension_<b2c-extensions-app-guid>_loyaltyId Microsoft Graph APIMicrosoft Graph API

次の例は、Azure AD B2C カスタム ポリシーの要求定義でカスタム属性を使用する方法を示したものです。The following example demonstrates the use of custom attributes in an Azure AD B2C custom policy claim definition.

<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 カスタム ポリシーで、カスタム属性を使用する方法を示したものです。The following example demonstrates the use of a custom attribute in Azure AD B2C custom policy in a technical profile, input, output, and persisted claims.

<InputClaims>
  <InputClaim ClaimTypeReferenceId="extension_loyaltyId"  />
</InputClaims>
<PersistedClaims>
  <PersistedClaim ClaimTypeReferenceId="extension_loyaltyId" />
</PersistedClaims>
<OutputClaims>
  <OutputClaim ClaimTypeReferenceId="extension_loyaltyId" />
</OutputClaims>

ポリシーでカスタム属性を使用するUse a custom attribute in a policy

カスタム ポリシーを使用した要求の追加とユーザー入力のカスタマイズに関するガイドラインに従ってください。Follow the guidance for how to add claims and customize user input using custom policies. このサンプルでは、組み込みの要求の "city" を使用します。This sample uses a built-in claim 'city'. カスタム属性を使用するには、"city" を独自のカスタム属性に置き換えます。To use a custom attribute, replace 'city' with your own custom attributes.

次のステップNext steps

各項目の詳細情報Learn more about: