Azure Active Directory B2C でのカスタム ポリシーの概要Get started with custom policies in Azure Active Directory B2C

注意

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.

カスタム ポリシーは、Azure Active Directory (Azure AD) B2C テナントの動作を定義する構成ファイルです。Custom policies are configuration files that define the behavior of your Azure Active Directory (Azure AD) B2C tenant. この記事では、電子メール アドレスとパスワードを使用してローカル アカウント サインアップまたはサインインをサポートするカスタム ポリシーを作成します。In this article, you create a custom policy that supports local account sign-up or sign-in by using an email address and password. また、ID プロバイダーを追加するために環境を準備します。You also prepare your environment for adding identity providers.

前提条件Prerequisites

署名および暗号化キーを追加します。Add signing and encryption keys

  1. Azure AD B2C テナントの全体管理者として Azure Portal にサインインします。Sign in to the Azure portal as the global administrator of your Azure AD B2C tenant.
  2. ご自分の Azure AD B2C テナントが含まれるディレクトリを必ず使用してください。Make sure you're using the directory that contains your Azure AD B2C tenant. 上部メニューで [ディレクトリとサブスクリプション] フィルターをクリックし、ご利用のテナントが含まれるディレクトリを選択します。Click the Directory and subscription filter in the top menu and choose the directory that contains your tenant.
  3. Azure Portal の左上隅の [すべてのサービス] を選択し、 [Azure AD B2C] を検索して選択します。Choose All services in the top-left corner of the Azure portal, search for and select Azure AD B2C.
  4. [概要] ページで、 [Identity Experience Framework] を選択します。On the Overview page, select Identity Experience Framework.

署名キーを作成します。Create the signing key

  1. [ポリシー キー] を選択し、 [追加] を選択します。Select Policy Keys and then select Add.
  2. オプションについては、Generateを選択してください。For Options, choose Generate.
  3. 名前TokenSigningKeyContainerを入力します。In Name, enter TokenSigningKeyContainer. プレフィックス B2C_1A_ が自動的に追加される場合があります。The prefix B2C_1A_ might be added automatically.
  4. キー タイプについては、RSA を選択します。For Key type, select RSA.
  5. [キー使用法] には [署名] を選択します。For Key usage, select Signature.
  6. Create をクリックしてください。Click Create.

暗号化キーを作成します。Create the encryption key

  1. [ポリシー キー] を選択し、 [追加] を選択します。Select Policy Keys and then select Add.
  2. オプションについては、Generateを選択してください。For Options, choose Generate.
  3. 名前TokenEncryptionKeyContainerを入力します。In Name, enter TokenEncryptionKeyContainer. プレフィックス B2C_1A_ が自動的に追加される場合があります。The prefix B2C_1A_ might be added automatically.
  4. キー タイプについては、RSA を選択します。For Key type, select RSA.
  5. [キー使用法] には [暗号化] を選択します。For Key usage, select Encryption.
  6. Create をクリックしてください。Click Create.

Facebook のキーを作成します。Create the Facebook key

Facebook アプリケーション シークレットが既にある場合は、それをポリシー キーとしてテナントに追加します。If you already have a Facebook application secret, add it as a policy key to your tenant. ない場合は、ポリシーが検証にパスするように、プレースホルダー値を含むキーを作成する必要があります。Otherwise, you must create the key with a placeholder value so that your policies pass validation.

  1. [ポリシー キー] を選択し、 [追加] を選択します。Select Policy Keys and then select Add.
  2. オプションについては、Manualを選択します。For Options, choose Manual.
  3. 名前には、FacebookSecretを入力します。For Name, enter FacebookSecret. プレフィックス B2C_1A_ が自動的に追加される場合があります。The prefix B2C_1A_ might be added automatically.
  4. シークレットで、developers.facebook.com から Facebook シークレットを入力するか、または0をプレースホルダーとして入力します。In Secret, enter your Facebook secret from developers.facebook.com or 0 as a placeholder. この値はシークレットであり、アプリケーション ID ではありません。This value is the secret, not the application ID.
  5. [キー使用法] には [署名] を選択します。For Key usage, select Signature.
  6. Create をクリックしてください。Click Create.

Identity Experience Framework アプリケーションを登録するRegister Identity Experience Framework applications

Azure AD B2C では、ユーザーのサインアップとサインインのために使用される 2 つのアプリケーションを登録する必要があります。IdentityExperienceFramework (Web アプリ) と、IdentityExperienceFramework アプリからアクセス許可を委任された ProxyIdentityExperienceFramework (ネイティブ アプリ) です。Azure AD B2C requires you to register two applications that are used to sign up and sign in users: IdentityExperienceFramework (a web app), and ProxyIdentityExperienceFramework (a native app) with delegated permission from the IdentityExperienceFramework app. ローカル アカウントは、テナント内にのみ存在します。Local accounts exist only in your tenant. ユーザーは電子メール アドレスとパスワードの一意の組み合わせを使用してサインアップし、テナントに登録されたアプリケーションにアクセスします。Your users sign up with a unique email address/password combination to access your tenant-registered applications.

IdentityExperienceFramework アプリケーションを登録しますRegister the IdentityExperienceFramework application

  1. Azure portal の左上隅の [すべてのサービス] を選択します。Select All services in the top-left corner of the Azure portal.
  2. 検索ボックスに「 Azure Active Directory」と入力します。In the search box, enter Azure Active Directory.
  3. 検索結果で [Azure Active Directory] を選択します。Select Azure Active Directory in the search results.
  4. 左側のメニューで [管理] の下の [アプリの登録 (レガシー)] を選択します。Under Manage in the left-hand menu, select App registrations (Legacy).
  5. [新しいアプリケーションの登録] を選択します。Select New application registration.
  6. 名前には、IdentityExperienceFrameworkを入力します。For Name, enter IdentityExperienceFramework.
  7. アプリケーションの種類については、Web アプリケーション/ API を選択します。For Application type, choose Web app/API.
  8. サインオン URL には、https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.comを入力します。ここで、your-tenant-nameは、Azure AD B2C テナント ドメイン名です。For Sign-on URL, enter https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com, where your-tenant-name is your Azure AD B2C tenant domain name. ここでは、すべての URL で b2clogin.com を使用してください。All URLs should now be using b2clogin.com.
  9. Create をクリックしてください。Click Create. 作成した後は、アプリケーション ID をコピーし、後で使用するために保存します。After it's created, copy the application ID and save it to use later.

ProxyIdentityExperienceFramework アプリケーションを登録するRegister the ProxyIdentityExperienceFramework application

  1. [アプリの登録 (レガシ)] で、 [新しいアプリケーションの登録] を選択します。In App registrations (Legacy), select New application registration.
  2. 名前には、ProxyIdentityExperienceFrameworkを入力します。For Name, enter ProxyIdentityExperienceFramework.
  3. アプリケーションの種類については、ネイティブを選択します。For Application type, choose Native.
  4. リダイレクト URI には、https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.comを入力します。ここで、your-tenant-nameは Azure AD B2C テナントです。For Redirect URI, enter https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com, where your-tenant-name is your Azure AD B2C tenant.
  5. Create をクリックしてください。Click Create. 作成した後は、アプリケーション ID をコピーし、後で使用するために保存します。After it's created, copy the application ID and save it to use later.
  6. [設定] ページで、必要な権限を選択し、追加を選択します。On the Settings page, select Required permissions, and then select Add.
  7. [API を選択します] を選択し、IdentityExperienceFramework を検索して選択してから、 [選択] をクリックします。Choose Select an API, search for and select IdentityExperienceFramework, and then click Select.
  8. [IdentityExperienceFramework にアクセスする] の横のチェックボックスにチェックを入れて、 [選択する] をクリックし、 [完了] をクリックします。Select the check box next to Access IdentityExperienceFramework, click Select, and then click Done.
  9. [Grant Permissions] (アクセス許可の付与) を選択してから、 [はい] を選択して確認します。Select Grant Permissions, and then confirm by selecting Yes.

カスタム ポリシー スターター パックCustom policy starter pack

カスタム ポリシーは、技術プロファイルとユーザー体験を定義するために Azure AD B2C テナントにアップロードされる XML ファイルのセットです。Custom policies are a set of XML files you upload to your Azure AD B2C tenant to define technical profiles and user journeys. すぐに作業を開始できるように、いくつかの事前に作成されたポリシーが含まれているスターターパックが用意されています。We provide starter packs with several pre-built policies to get you going quickly. これらの各スターター パックには、説明したシナリオを実現するために必要な最小数の技術プロファイルとユーザー体験が含まれています。Each of these starter packs contains the smallest number of technical profiles and user journeys needed to achieve the scenarios described:

  • LocalAccounts - ローカル アカウントのみの使用を可能にします。LocalAccounts - Enables the use of local accounts only.
  • SocialAccounts - ソーシャル (フェデレーション) アカウントのみの使用を可能にします。SocialAccounts - Enables the use of social (or federated) accounts only.
  • SocialAndLocalAccounts - ローカル アカウントとソーシャル アカウントの両方の使用を可能にします。SocialAndLocalAccounts - Enables the use of both local and social accounts.
  • SocialAndLocalAccountsWithMFA - ソーシャル、ローカル、および多要素認証オプションの使用を可能にします。SocialAndLocalAccountsWithMFA - Enables social, local, and multi-factor authentication options.

各スターター パックには以下が含まれています。Each starter pack contains:

  • ベース ファイル - ベースにはいくつかの変更が必要です。Base file - Few modifications are required to the base. 例:TrustFrameworkBase.xmlExample: TrustFrameworkBase.xml
  • 拡張ファイル - このファイルは、構成変更の大半が実行される場所です。Extension file - This file is where most configuration changes are made. 例:TrustFrameworkExtensions.xmlExample: TrustFrameworkExtensions.xml
  • 証明書利用者ファイル - アプリケーションによって呼び出される、タスク固有のファイルです。Relying party files - Task-specific files called by your application. 次に例を示します。SignUpOrSignin.xmlProfileEdit.xmlPasswordReset.xmlExamples: SignUpOrSignin.xml, ProfileEdit.xml, PasswordReset.xml

この記事では、SocialAndLocalAccounts スターター パック内の XML カスタム ポリシー ファイルを編集します。In this article, you edit the XML custom policy files in the SocialAndLocalAccounts starter pack. XML エディターが必要な場合は、軽量のクロスプラットフォーム エディターである Visual Studio Code をお試しください。If you need an XML editor, try Visual Studio Code, a lightweight cross-platform editor.

スターター パックを取得するGet the starter pack

GitHub からカスタム ポリシー スターター パックを取得し、SocialAndLocalAccounts スターター パック内の XML ファイルの名前を Azure AD B2C テナントの名前に更新します。Get the custom policy starter packs from GitHub, then update the XML files in the SocialAndLocalAccounts starter pack with your Azure AD B2C tenant name.

  1. .zip ファイルをダウンロードするか、リポジトリを複製します。Download the .zip file or clone the repository:

    git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
    
  2. SocialAndLocalAccounts ディレクトリ内のすべてのファイルで、yourtenant 文字列を Azure AD B2C テナントの名前に置き換えます。In all of the files in the SocialAndLocalAccounts directory, replace the string yourtenant with the name of your Azure AD B2C tenant.

    たとえば、B2C テナントの名前が contosotenantであれば、yourtenant.onmicrosoft.com のすべてのインスタンスは contosotenant.onmicrosoft.com になります。For example, if the name of your B2C tenant is contosotenant, all instances of yourtenant.onmicrosoft.com become contosotenant.onmicrosoft.com.

カスタム ポリシーにアプリケーション ID を追加します。Add application IDs to the custom policy

拡張子ファイル TrustFrameworkExtensions.xml にアプリケーション ID を追加します。Add the application IDs to the extensions file TrustFrameworkExtensions.xml.

  1. SocialAndLocalAccounts/ TrustFrameworkExtensions.xml を開いて、<TechnicalProfile Id="login-NonInteractive"> 要素を見つけます。Open SocialAndLocalAccounts/TrustFrameworkExtensions.xml and find the element <TechnicalProfile Id="login-NonInteractive">.
  2. IdentityExperienceFrameworkAppId の両方のインスタンスを、前に作成した IdentityExperienceFramework アプリケーションのアプリケーション ID に置き換えます。Replace both instances of IdentityExperienceFrameworkAppId with the application ID of the IdentityExperienceFramework application that you created earlier.
  3. ProxyIdentityExperienceFrameworkAppId の両方のインスタンスを、前に作成した ProxyIdentityExperienceFramework アプリケーションのアプリケーション ID に置き換えます。Replace both instances of ProxyIdentityExperienceFrameworkAppId with the application ID of the ProxyIdentityExperienceFramework application that you created earlier.
  4. ファイルを保存します。Save the file.

ポリシーをアップロードします。Upload the policies

  1. Azure portal で B2C テナントに移動し、 [Identity Experience Framework] を選択します。Select the Identity Experience Framework menu item in your B2C tenant in the Azure portal.
  2. [カスタム ポリシーのアップロード] を選択します。Select Upload custom policy.
  3. 次の順序でポリシー ファイルをアップロードします。In this order, upload the policy files:
    1. TrustFrameworkBase.xmlTrustFrameworkBase.xml
    2. TrustFrameworkExtensions.xmlTrustFrameworkExtensions.xml
    3. SignUpOrSignin.xmlSignUpOrSignin.xml
    4. ProfileEdit.xmlProfileEdit.xml
    5. PasswordReset.xmlPasswordReset.xml

ファイルをアップロードすると、Azure によって、それぞれに B2C_1A_ が追加されます。As you upload the files, Azure adds the prefix B2C_1A_ to each.

ヒント

XML エディターで検証がサポートされている場合は、スターター パックのルート ディレクトリにある TrustFrameworkPolicy_0.3.0.0.xsd という XML スキーマに対してファイルを検証します。If your XML editor supports validation, validate the files against the TrustFrameworkPolicy_0.3.0.0.xsd XML schema that is located in the root directory of the starter pack. XML スキーマ検証では、アップロードする前にエラーを識別します。XML schema validation identifies errors before uploading.

カスタム ポリシーをテストするTest the custom policy

  1. [カスタム ポリシー] ページで、B2C_1A_signup_signin を選択します。Under Custom policies, select B2C_1A_signup_signin.
  2. カスタム ポリシーの概要ページの [アプリケーションの選択] で、以前に登録した webapp1 という名前の Web アプリケーションを選択します。For Select application on the overview page of the custom policy, select the web application named webapp1 that you previously registered.
  3. [返信 URL]https://jwt.ms であることを確認します。Make sure that the Reply URL is https://jwt.ms.
  4. [今すぐ実行] を選択します。Select Run now.
  5. メール アドレスを使用してサインアップします。Sign up using an email address.
  6. もう一度 [今すぐ実行] を選択します。Select Run now again.
  7. 同じアカウントでサインインし、構成が正しく行われていることを確認します。Sign in with the same account to confirm that you have the correct configuration.

Facebook を ID プロバイダーとして追加するAdd Facebook as an identity provider

  1. Facebook アカウントでのサインアップとサインインの設定に関する記事の手順を完了して、Facebook アプリケーションを構成します。Complete the steps in Set up sign-up and sign-in with a Facebook account to configure a Facebook application.

  2. SocialAndLocalAccounts/ TrustFrameworkExtensions.xml ファイルで、client_id の値を Facebook アプリケーション ID に置き換えます。In the SocialAndLocalAccounts/TrustFrameworkExtensions.xml file, replace the value of client_id with the Facebook application ID:

    <TechnicalProfile Id="Facebook-OAUTH">
      <Metadata>
      <!--Replace the value of client_id in this technical profile with the Facebook app ID"-->
        <Item Key="client_id">00000000000000</Item>
    
  3. TrustFrameworkExtensions.xml ファイルをテナントにアップロードします。Upload the TrustFrameworkExtensions.xml file to your tenant.

  4. [カスタム ポリシー] ページで、B2C_1A_signup_signin を選択します。Under Custom policies, select B2C_1A_signup_signin.

  5. [今すぐ実行] を選択し、Facebook でサインインする Facebook を選択し、カスタム ポリシーをテストします。Select Run now and select Facebook to sign in with Facebook and test the custom policy. または、登録済みアプリケーションからポリシーを直接呼び出します。Or, invoke the policy directly from your registered application.

次の手順Next steps

次に、ID プロバイダーとしての Azure Active Directory (Azure AD) の追加を試してください。Next, try adding Azure Active Directory (Azure AD) as an identity provider. このファースト ステップ ガイドで使用したベース ファイルには、Azure AD などの他の ID プロバイダーを追加するために必要な内容の一部が既に含まれています。The base file used in this getting started guide already contains some of the content that you need for adding other identity providers like Azure AD.

ID プロバイダーとしての Azure AD の設定については、「カスタム ポリシーを使用して Azure Active Directory B2C に Azure Active Directory アカウントでサインインするように設定する」を参照してください。For information about setting up Azure AD as and identity provider, see Set up sign-up and sign-in with an Azure Active Directory account using Active Directory B2C custom policies.