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 B2C (Azure AD B2C) テナントの動作を定義する構成ファイルです。Custom policies are configuration files that define the behavior of your Azure Active Directory B2C (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 portal にサインインするSign in to the Azure portal.
  2. ポータル ツール バーにある [ディレクトリ + サブスクリプション] アイコンを選択し、Azure AD B2C テナントを含むディレクトリを選択します。Select the Directory + Subscription icon in the portal toolbar, and then select the directory that contains your Azure AD B2C tenant.
  3. Azure portal で、 [Azure AD B2C] を検索して選択します。In the Azure portal, search for and select Azure AD B2C.
  4. [概要] ページで、 [ポリシー] を選択してから [Identity Experience Framework] を選択します。On the overview page, under Policies, 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. 作成 を選択します。Select 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. 作成 を選択します。Select Create.

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

ポリシー キーとして、Facebook アプリケーションの [アプリ シークレット]を追加します。Add your Facebook application's App Secret as a policy key. この記事の前提条件の一部として作成したアプリケーションのアプリ シークレットを使用できます。You can use the App Secret of the application you created as part of this article's prerequisites.

  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 アプリケーションのアプリ シークレットを入力します。In Secret, enter your Facebook application's App Secret from developers.facebook.com. この値はシークレットであり、アプリケーション ID ではありません。This value is the secret, not the application ID.
  5. [キー使用法] には [署名] を選択します。For Key usage, select Signature.
  6. 作成 を選択します。Select Create.

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

Azure AD B2C では、ローカル アカウントでのユーザーのサインアップとサインインのために使用する 2 つのアプリケーションを登録する必要があります。IdentityExperienceFramework (Web API) と、IdentityExperienceFramework アプリへのアクセス許可が委任された ProxyIdentityExperienceFramework (ネイティブ アプリ) です。Azure AD B2C requires you to register two applications that it uses to sign up and sign in users with local accounts: IdentityExperienceFramework, a web API, and ProxyIdentityExperienceFramework, a native app with delegated permission to the IdentityExperienceFramework app. ユーザーはメール アドレスまたはユーザー名、およびパスワードを使用してサインアップし、テナントに登録されたアプリケーションにアクセスできます。これにより "ローカル アカウント" が作成されます。Your users can sign up with an email address or username and a password to access your tenant-registered applications, which creates a "local account." ローカル アカウントは、Azure AD B2C テナント内にのみ存在します。Local accounts exist only in your Azure AD B2C tenant.

この 2 つのアプリケーションを Azure AD B2C テナントに 1 回だけ登録する必要があります。You need to register these two applications in your Azure AD B2C tenant only once.

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

アプリケーションを Azure AD B2C テナントに登録するには、現在のアプリケーション エクスペリエンス、または新しく統合されたアプリの登録 (プレビュー) エクスペリエンスを使用できます。To register an application in your Azure AD B2C tenant, you can use the current Applications experience, or our new unified App registrations (Preview) experience. この新しいエクスペリエンスの詳細を参照してくださいLearn more about the new experience.

  1. Azure portal にサインインするSign in to the Azure portal.
  2. Azure portal で、 [Azure Active Directory] を検索して選択します。In the Azure portal, search for and select Azure Active Directory.
  3. [Azure Active Directory] の概要メニューで、 [管理] から [App registrations (Legacy)](アプリの登録 (レガシ)) を選択します。In the Azure Active Directory overview menu, under Manage, select App registrations (Legacy).
  4. [新しいアプリケーションの登録] を選択します。Select New application registration.
  5. 名前には、IdentityExperienceFrameworkを入力します。For Name, enter IdentityExperienceFramework.
  6. アプリケーションの種類については、Web アプリケーション/ API を選択します。For Application type, choose Web app/API.
  7. サインオン 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.
  8. 作成 を選択します。Select 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. 作成 を選択します。Select Create. 作成した後は、アプリケーション ID をコピーし、後で使用するために保存します。After it's created, copy the application ID and save it to use later.
  6. [設定] を選択し、 [必要なアクセス許可] を選択したら、 [追加] を選択します。Select Settings, then 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. [アクセス許可を付与する] を選択したら、 [はい] を選択して確定します。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. 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>
    
  2. TrustFrameworkExtensions.xml ファイルをテナントにアップロードします。Upload the TrustFrameworkExtensions.xml file to your tenant.

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

  4. [今すぐ実行] を選択し、Facebook でサインインする Facebook を選択し、カスタム ポリシーをテストします。Select Run now and select Facebook to sign in with Facebook and test the custom policy.

次のステップ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.