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 の左上隅の [すべてのサービス] を選択し、 [Azure Active Directory] を検索して選択します。Choose All services in the top-left corner of the Azure portal, search for and select Azure Active Directory.
  2. メニューで、 [アプリの登録 (レガシ)] を選択します。In the menu, select App registrations (Legacy).
  3. [新しいアプリケーションの登録] を選択します。Select New application registration.
  4. 名前には、IdentityExperienceFrameworkを入力します。For Name, enter IdentityExperienceFramework.
  5. アプリケーションの種類については、Web アプリケーション/ API を選択します。For Application type, choose Web app/API.
  6. サインオン 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.
  7. 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.

スターター パックをダウンロードしてポリシーを変更するDownload starter pack and modify policies

カスタム ポリシーは、Azure AD B2C テナントにアップロードする必要のある XML ファイルのセットです。Custom policies are a set of XML files that need to be uploaded to your Azure AD B2C tenant. ファイルのスターターパックが提供されているため、すぐに使えるようになります。Starter packs of files are provided to get you going quickly. 次の一覧の各スターター パックには、説明したシナリオを実現するために必要な最低限の技術プロファイルとユーザー体験が含まれています。Each starter pack in the following list 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 both the use of local accounts and social accounts.
  • SocialAndLocalAccountsWithMFA - ソーシャル、ローカル、および多要素認証オプションすべての使用を可能にします。SocialAndLocalAccountsWithMFA - Enables social, local, and Multi-Factor Authentication options.

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

  • 基本ファイルです。The base file. ベースにはいくつかの変更が必要です。Few modifications are required to the base.
  • 拡張ファイルです。The extension file. このファイルは、ほとんどの構成変更が行われる場所です。This file is where most configuration changes are made.
  • 証明書利用者ファイルです。The relying party files. ご使用のアプリケーションによって呼び出される、タスク固有のファイルです。Task-specific files called by your application.

注意

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.

  1. zip ファイルをダウンロードするか、次を実行します。Download the .zip file or run:

    git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
    
  2. SocialAndLocalAccounts フォルダーで、yourtenantをテナントの名前に置き換えたすべてのファイルを編集します。In the SocialAndLocalAccounts folder, edit all of the files replacing yourtenant with the name for your tenant. たとえば、「 contosoTenant.onmicrosoft.com 」のように入力します。For example, contosoTenant.onmicrosoft.com. XML エディターが必要な場合は、軽量のクロスプラットフォーム エディターである Visual Studio Code をお試しください。If you need an XML editor, try Visual Studio Code, a lightweight cross-platform editor.

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

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

  1. TrustFrameworkExtensions.xml ファイルを開き、要素<TechnicalProfile Id="login-NonInteractive">を検索します。Open the TrustFrameworkExtensions.xml file and find the element <TechnicalProfile Id="login-NonInteractive">.
  2. IdentityExperienceFrameworkAppId の両方のインスタンスを、前に作成した Identity Experience Framework アプリケーションのアプリケーション ID に置き換えます。Replace both instances of IdentityExperienceFrameworkAppId with the application ID of the Identity Experience Framework application that you created earlier. ProxyIdentityExperienceFrameworkAppId の両方のインスタンスを、前に作成した Proxy Identity Experience Framework アプリケーションのアプリケーション ID に置き換えます。Replace both instances of ProxyIdentityExperienceFrameworkAppId with the application ID of the Proxy Identity Experience Framework application that you created earlier.
  3. 拡張ファイルを保存します。Save your extensions file.

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

  1. Identity Experience Framework のカスタム ポリシーページで、ポリシーのアップロードを選択します。On the Custom Policies page of Identity Experience Framework, select Upload Policy.
  2. この順序で、TrustFrameworkBase.xmlTrustFrameworkExtensions.xmlSignUpOrSignin.xmlProfileEdit.xml、および PasswordReset .xml をアップロードします。In this order, upload TrustFrameworkBase.xml, TrustFrameworkExtensions.xml, SignUpOrSignin.xml, ProfileEdit.xml, and PasswordReset.xml. ファイルがアップロードされると、ポリシー ファイルの名前の前に B2C_1A_ が付きます。When a file is uploaded, the name of the policy file is prepended with B2C_1A_.

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

  1. 「カスタムポリシー」ページで、 B2C_1A_signup_signin を選択します。On the Custom Policies page, 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. [返信 URL]https://jwt.ms であることを確認します。Make sure that the Reply URL is https://jwt.ms.
  3. [今すぐ実行] を選択します。Select Run now.
  4. メール アドレスを使用してサインアップできることを確認します。You should be able to sign up using an email address.
  5. 同じアカウントでサインインし、構成が正しく行われていることを確認します。Sign in with the same account to confirm that you have the correct configuration.

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

  1. Facebook アプリケーションを構成します。Configure a Facebook application.

  2. TrustFrameworkExtensions.xml ファイルで、client_idの値を Facebook アプリケーション ID に置き換えます。In the 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. [今すぐ実行] を使用するか、登録済みアプリケーションからポリシーを直接呼び出してテストします。Test by using Run now or by invoking the policy directly from your registered application.

次の手順Next steps