次の方法で共有


チュートリアル: Azure Active Directory B2C でユーザー フローとカスタム ポリシーを作成する

重要

2025 年 5 月 1 日より、Azure AD B2C は新規のお客様向けに購入できなくなります。 詳細については、FAQ を参照してください

開始する前にこのページの上部にある ポリシーの種類 セレクターを使用して、設定するポリシーの種類を選択します。 Azure Active Directory B2C には、ユーザーがアプリケーションを操作する方法を定義する 2 つの方法 (定義済みのユーザー フローを使用する、または完全に構成可能なカスタム ポリシーを使用する) があります。 この記事で必要な手順は、方法ごとに異なります。

アプリケーションでは、ユーザーが自分のプロファイルにサインアップ、サインイン、または管理できるようにするユーザー フローが存在する場合があります。 Azure Active Directory B2C (Azure AD B2C) テナントに異なる種類の複数のユーザー フローを作成し、必要に応じてアプリケーションで使用できます。 ユーザー フローは、アプリケーション間で再利用できます。

ユーザー フローを使用すると、ユーザーがサインイン、サインアップ、プロファイルの編集、パスワードのリセットなどを行うときに、ユーザーがアプリケーションと対話する方法を決定できます。 この記事では、次の方法について説明します。

カスタム ポリシー は、Azure Active Directory B2C (Azure AD B2C) テナントの動作を定義する構成ファイルです。 この記事では、次の方法について説明します。

  • サインアップとサインイン ユーザー フローを作成する
  • セルフサービス パスワード リセットを有効にする
  • プロファイル編集ユーザー フローを作成する

重要

ユーザー フロー バージョンを参照する方法が変更されました。 以前は、V1 (運用対応) バージョンと V1.1 および V2 (プレビュー) バージョンを提供しました。 次に、ユーザー フローを 2 つのバージョンに統合しました。最新の機能を備えた 推奨 ユーザー フローと Standard (レガシ) ユーザー フローです。 すべてのレガシ プレビュー ユーザー フロー (V1.1 および V2) は非推奨です。 詳細については、 Azure AD B2C のユーザー フロー バージョンに関するページを参照してください。 これらの変更は、Azure パブリック クラウドにのみ適用されます。 他の環境では、 従来のユーザー フローのバージョン管理が引き続き使用されます。

[前提条件]

サインアップとサインイン ユーザー フローを作成する

サインアップとサインインのユーザー フローは、両方のエクスペリエンスを 1 つの構成で処理します。 アプリケーションのユーザーは、コンテキストに応じて適切なパスを導き出されます。 サインアップとサインインのユーザー フローを作成するには:

  1. Azure portal にサインインします。

  2. 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。

  3. Azure portal で、 [Azure AD B2C] を検索して選択します。

  4. [ ポリシー] で、[ ユーザー フロー] を選択し、[ 新しいユーザー フロー] を選択します。

    [新しいユーザー フロー] ボタンが強調表示されている Azure portal の [ユーザー フロー] ページのスクリーンショット。

  5. [ユーザー フローを作成する] ページで、 [サインアップとサインイン] ユーザー フローを選択します。

    [サインアップとサインイン] フローが強調表示されている Azure portal の [ユーザー フローの選択] ページのスクリーンショット。

  6. [ バージョンの選択] で [ 推奨] を選択し、[ 作成] を選択します。 (ユーザー フローのバージョンの詳細については、こちらを参照してください )。

    プロパティが強調表示された Azure portal の [ユーザー フローの作成] ページ

  7. ユーザー フローの [名前] を入力します。 たとえば、 signupsignin1 です。

  8. ID プロバイダーの場合は、[電子メールのサインアップ] を選択します。

  9. ユーザー属性とトークン要求の場合は、サインアップ時にユーザーから収集して送信する要求と属性を選択します。 たとえば、 [Show more](さらに表示) を選択し、 [国/リージョン][表示名][郵便番号] の属性と要求を選択します。 [OK] を選択.

    Azure portal の属性と要求の選択ページのスクリーンショット。3 つの要求が選択され、強調表示されています。

  10. [ 作成] を選択してユーザー フローを追加します。 B2C_1_のプレフィックスは、前に入力した名前の先頭に自動的に付加されます。 たとえば、 B2C_1_signupsignin1

ユーザー フローをテストする

  1. [ ユーザー フロー ] ページで、先ほど作成したユーザー フローを選択して概要ページを開きます。

  2. ユーザー フローの概要ページの上部にある [ ユーザー フローの実行] を選択します。 ページの右側にウィンドウが開きます。

  3. [アプリケーション] で、テストする Web アプリケーション (webapp1 という名前のものなど) を選択します。 応答 URLhttps://jwt.msが表示されます。

  4. [ ユーザー フローの実行] を選択し、[ 今すぐサインアップ] を選択します。

    Azure portal ポータルの [ユーザー フローの実行] ページのスクリーンショット。[ユーザー フローの実行] ボタン、[アプリケーション] テキスト ボックス、および [応答 URL] テキスト ボックスが強調表示されています。

  5. 有効なメール アドレスを入力し、[ 確認コードの送信] を選択し、受信した確認コードを入力して、[ コードの確認] を選択します。

  6. 新しいパスワードを入力し、そのパスワードを確認します。

  7. 国と地域を選択し、表示する名前を入力し、郵便番号を入力して、[ 作成] を選択します。 トークンは https://jwt.ms に返され、ブラウザーに表示されます。

  8. ユーザー フローをもう一度実行できるようになったので、先ほど作成したアカウントでサインインできるようになります。 返されたトークンには、選択した国/リージョン、名前、および郵便番号の要求が含まれています。

"ユーザー フローの実行" エクスペリエンスは、現在、承認コード フローを使用する SPA 応答 URL の種類と互換性がありません。 これらの種類のアプリで "ユーザー フローの実行" エクスペリエンスを使用するには、" Web" 型の応答 URL を登録し、暗黙的なフローを有効にします

セルフサービス パスワード リセットを有効にする

サインアップまたはサインイン ユーザー フローの セルフサービス パスワード リセット を有効にするには:

  1. [ ユーザー フロー ] ページで、先ほど作成したサインアップまたはサインイン ユーザー フローを選択します。
  2. 左側のメニューの [設定] で、[ プロパティ] を選択します。
  3. [ パスワードの構成] で、[ セルフサービスパスワードリセット] を選択します。
  4. 保存 を選択します。

ユーザー フローをテストする

  1. [ ユーザー フロー ] ページで、先ほど作成したユーザー フローを選択して概要ページを開き、[ ユーザー フローの実行] を選択します。
  2. [アプリケーション] で、テストする Web アプリケーション (webapp1 という名前のものなど) を選択します。 応答 URLhttps://jwt.msが表示されます。
  3. ユーザー フローを実行する を選択します。
  4. サインアップまたはサインイン ページで、[ パスワードを忘れた場合] を選択します。
  5. 前に作成したアカウントのメール アドレスを確認し、[ 続行] を選択します。
  6. これで、ユーザーのパスワードを変更する機会が得られます。 パスワードを変更し、[ 続行] を選択します。 トークンは https://jwt.ms に返され、ブラウザーに表示されます。

プロファイル編集ユーザー フローを作成する

ユーザーがアプリケーションでプロファイルを編集できるようにする場合は、プロファイル編集ユーザー フローを使用します。

  1. Azure AD B2C テナントの概要ページのメニューで、[ ユーザー フロー] を選択し、[ 新しいユーザー フロー] を選択します。
  2. [ ユーザー フローの作成 ] ページで、 プロファイル編集 ユーザー フローを選択します。
  3. [ バージョンの選択] で [ 推奨] を選択し、[ 作成] を選択します。
  4. ユーザー フローの [名前] を入力します。 たとえば、 profileediting1 です。
  5. ID プロバイダーの場合は、[ローカル アカウント] で [電子メールのサインアップ] を選択します。
  6. [ユーザー属性] で、顧客が自分のプロファイルで編集できるようにする属性を選択します。 たとえば、[ さらに表示] を選択し、[ 表示名 ] と [役職] に属性と要求の両方を選択 します[OK] を選択.
  7. [ 作成] を選択してユーザー フローを追加します。 B2C_1_のプレフィックスが自動的に名前に追加されます。

ユーザー フローをテストする

  1. 作成したユーザー フローを選択して、概要ページを開きます。
  2. ユーザー フローの概要ページの上部にある [ ユーザー フローの実行] を選択します。 ページの右側にウィンドウが開きます。
  3. [アプリケーション] で、テストする Web アプリケーション (webapp1 という名前のものなど) を選択します。 応答 URLhttps://jwt.msが表示されます。
  4. [ ユーザー フローの実行] を選択し、前に作成したアカウントでサインインします。
  5. これで、ユーザーの表示名と役職を変更できるようになりました。 続行を選択します。 トークンは https://jwt.ms に返され、ブラウザーに表示されます。

ヒント

この記事では、テナントを手動で設定する方法について説明します。 この記事のプロセス全体を自動化できます。 自動化により、Azure AD B2C SocialAndLocalAccountsWithMFA スターター パックがデプロイされます。これにより、サインアップとサインイン、パスワード リセット、プロファイル編集の体験が提供されます。 以下のチュートリアルを自動化するには、 IEF セットアップ アプリ にアクセスし、指示に従います。

Identity Experience Framework アプリケーションの署名キーと暗号化キーを追加する

  1. Azure portal にサインインします。
  2. 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
  3. Azure portal で、 [Azure AD B2C] を検索して選択します。
  4. 概要ページの Policiesで、Identity Experience Frameworkを選択します。

署名キーを作成する

  1. [ポリシー キー] を選択し、[追加] を選びます。
  2. [オプション] で、[Generate] を選択します。
  3. [ 名前] にTokenSigningKeyContainer」と入力します。 プレフィックス B2C_1A_ は自動的に追加される場合があります。
  4. [ キーの種類] で、[ RSA] を選択します。
  5. [キー使用法] には [署名] を選択します。
  6. を選択してを作成します。

暗号化キーを作成する

  1. [ポリシー キー] を選択し、[追加] を選びます。
  2. [オプション] で、[Generate] を選択します。
  3. [ 名前] にTokenEncryptionKeyContainer」と入力します。 プレフィックス B2C_1A_ が自動的に追加される場合があります。
  4. [ キーの種類] で、[ RSA] を選択します。
  5. [ キーの使用法] で、[ 暗号化] を選択します。
  6. を選択してを作成します。

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

Azure AD B2C では、ローカル アカウントでユーザーのサインアップとサインインに使用する 2 つのアプリケーションを登録する必要があります。 IdentityExperienceFramework、Web API、 ProxyIdentityExperienceFramework (IdentityExperienceFramework アプリへの委任されたアクセス許可を持つネイティブ アプリ)。 ユーザーは、"ローカル アカウント" を作成するテナントに登録されているアプリケーションにアクセスするために、メール アドレスまたはユーザー名とパスワードでサインアップできます。ローカル アカウントは、Azure AD B2C テナントにのみ存在します。

これら 2 つのアプリケーションを Azure AD B2C テナントに登録する必要があるのは 1 回だけです。

IdentityExperienceFramework アプリケーションを登録する

Azure AD B2C テナントにアプリケーションを登録するには、 アプリ登録エクスペリエンスを 使用できます。

  1. [アプリの登録] を選択し、[新しい登録] を選択します。
  2. 名前IdentityExperienceFramework と入力します。
  3. [サポートされているアカウントの種類] で、[この組織のディレクトリ内のアカウントのみ] を選択します。
  4. [ リダイレクト URI] で [ Web] を選択し、「 https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com」と入力します。ここで、 your-tenant-name は Azure AD B2C テナント ドメイン名です。
  5. 許可の下にある、「openid」と「offline_access」権限に対する管理者の同意を付与する」 チェックボックスを選択します。
  6. 登録 を選択します。
  7. 後の手順で使用する アプリケーション (クライアント) ID を 記録します。

次に、スコープを追加して API を公開します。

  1. 左側のメニューの [管理] で、 [API の公開] を選択します。
  2. [ スコープの追加] を選択し、[ 保存] を選択して、既定 のアプリケーション ID URI をそのまま使用します。
  3. 次の値を入力して、Azure AD B2C テナントでカスタム ポリシーの実行を許可するスコープを作成します。
    • スコープ名: user_impersonation
    • 管理者の同意の表示名: Access IdentityExperienceFramework
    • 管理者の同意の説明: Allow the application to access IdentityExperienceFramework on behalf of the signed-in user.
  4. [ スコープの追加] を選択する

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

  1. [アプリの登録] を選択し、[新しい登録] を選択します。
  2. 名前ProxyIdentityExperienceFramework と入力します。
  3. [サポートされているアカウントの種類] で、[この組織のディレクトリ内のアカウントのみ] を選択します。
  4. [ リダイレクト URI] で、ドロップダウンを使用して[ パブリック クライアント/ネイティブ (モバイルとデスクトップ)]を選択します。
  5. [ リダイレクト URI] に「 myapp://auth」と入力します。
  6. 許可の下にある、「openid」と「offline_access」権限に対する管理者の同意を付与する」 チェックボックスを選択します。
  7. 登録 を選択します。
  8. 後の手順で使用する アプリケーション (クライアント) ID を 記録します。

次に、アプリケーションをパブリック クライアントとして扱う必要があることを指定します。

  1. 左側のメニューで、管理の下にある認証を選択します。
  2. [ 詳細設定] の [ パブリック クライアント フローを許可 する] セクションで、[ 次のモバイルおよびデスクトップ フローを有効にする][はい] に設定します。
  3. 保存 を選択します。
  4. "isFallbackPublicClient": true が Microsoft Graph アプリ マニフェスト (新規) で設定されていることを確認します。
    1. 左側のメニューの [ 管理] で、[ マニフェスト ] を選択して Microsoft Graph アプリ マニフェスト (新規) を開きます。
    2. Microsoft Graph アプリ マニフェスト (新規) タブから AAD Graph アプリ マニフェスト (間もなく非推奨) タブに切り替えます。
    3. isFallbackPublicClient キーを検索し、その値が true に設定されていることを確認します

ここで、 IdentityExperienceFramework 登録で前に公開した API スコープにアクセス許可を付与します。

  1. 左側のメニューの [ 管理] で、[ API のアクセス許可] を選択します。
  2. [構成されたアクセス許可] の下で [アクセス許可の追加] を選択します。
  3. 組織で 使用している API タブを選択し、 IdentityExperienceFramework アプリケーションを 選択します。
  4. [ アクセス許可] で、前に定義した user_impersonation スコープを選択します。
  5. アクセス許可の追加 を選択します。 指示に従って、数分待ってから次の手順に進みます。
  6. [<テナント名> に管理者の同意を与えます] を選択します。
  7. [はい] を選択します。
  8. [更新] を選択し、スコープの [状態] の下に「... に付与」が表示されていることを確認します。

カスタム ポリシー スターター パック

カスタム ポリシーは、技術プロファイルとユーザー体験を定義するために Azure AD B2C テナントにアップロードする一連の XML ファイルです。 スターター パックには、迅速に作業するための事前構築済みのポリシーがいくつか用意されています。 これらの各スターター パックには、説明されているシナリオを実現するために必要な技術プロファイルとユーザー体験の最小数が含まれています。 Azure AD B2C カスタム ポリシーの詳細なガイドについては、 カスタム ポリシーのハウツー ガイド シリーズに従ってください。

  • LocalAccounts - ローカル アカウントの使用のみを有効にします。
  • SocialAccounts - ソーシャル (またはフェデレーション) アカウントの使用のみを有効にします。
  • SocialAndLocalAccounts - ローカル アカウントとソーシャル アカウントの両方の使用を有効にします。
  • SocialAndLocalAccountsWithMFA - ソーシャル、ローカル、および多要素認証オプションを有効にします。

各スターター パックには次のものが含まれます。

  • ベース ファイル - ベース にいくつかの変更が必要です。 例: TrustFrameworkBase.xml
  • ローカライズ ファイル - このファイルは、ローカライズの変更が行われる場所です。 例: TrustFrameworkLocalization.xml
  • 拡張ファイル - このファイルは、ほとんどの構成変更が行われる場所です。 例: TrustFrameworkExtensions.xml
  • 依存パーティファイル - アプリケーションによって呼び出されるタスク固有のファイル。 例: SignUpOrSignin.xmlProfileEdit.xmlPasswordReset.xml

この記事では、 SocialAndLocalAccounts スターター パックの XML カスタム ポリシー ファイルを編集します。 XML エディターが必要な場合は、軽量のクロスプラットフォーム エディターである Visual Studio Code をお試しください。

スターター パックを入手する

GitHub からカスタム ポリシー スターター パックを取得し、 SocialAndLocalAccounts スターター パックの XML ファイルを Azure AD B2C テナント名で更新します。

  1. .zip ファイルをダウンロード するか、リポジトリを複製します。

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

    たとえば、B2C テナントの名前が contosotenant の場合、 yourtenant.onmicrosoft.com のすべてのインスタンスが contosotenant.onmicrosoft.comになります。

カスタム ポリシーにアプリケーション ID を追加する

アプリケーション ID を拡張ファイルに 追加TrustFrameworkExtensions.xml

  1. SocialAndLocalAccounts/ TrustFrameworkExtensions.xmlを開き、要素<TechnicalProfile Id="login-NonInteractive">を見つけます。
  2. IdentityExperienceFrameworkAppIdの両方のインスタンスを、前に作成した IdentityExperienceFramework アプリケーションのアプリケーション ID に置き換えます。
  3. ProxyIdentityExperienceFrameworkAppIdの両方のインスタンスを、前に作成した ProxyIdentityExperienceFramework アプリケーションのアプリケーション ID に置き換えます。
  4. ファイルを保存します。

Facebook を ID プロバイダーとして追加する

SocialAndLocalAccounts スターター パックには、Facebook ソーシャル サインインが含まれています。 Facebook ではカスタム ポリシーを使用する必要はありませんが、ここではカスタム ポリシーでフェデレーション ソーシャル ログインを有効にする方法を示すために使用します。 フェデレーション ソーシャル ログインを有効にする必要がない場合は、代わりに LocalAccounts スターター パックを使用し、「 ポリシーのアップロード 」セクションに進んでください。

Facebook アプリケーションを作成する

「Facebook アプリケーションを作成する」で説明されている手順を使用して、Facebook アプリ IDアプリ シークレットを取得します。 Facebook アカウントでのサインアップとサインインの設定に関する記事の前提条件と残りの手順をスキップします。

Facebook キーを作成する

Facebook アプリケーションの アプリ シークレット をポリシー キーとして追加します。 この記事の前提条件の一部として、作成したアプリケーションのアプリ シークレットを使用できます。

  1. Azure portal にサインインします。
  2. 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
  3. Azure portal で、 [Azure AD B2C] を検索して選択します。
  4. 概要ページの Policiesで、Identity Experience Frameworkを選択します。
  5. [ポリシー キー] を選択し、[追加] を選びます。
  6. [オプション] で、[Manual] を選択します。
  7. 名前FacebookSecret と入力します。 プレフィックス B2C_1A_ は自動的に追加される場合があります。
  8. [シークレット] に、Facebook アプリケーションのアプリ シークレットを developers.facebook.com から入力します。 この値はシークレットであり、アプリケーション ID ではありません。
  9. [キー使用法] には [署名] を選択します。
  10. を選択してを作成します。

カスタム ポリシー スターター パックの TrustFrameworkExtensions.xml を更新する

SocialAndLocalAccounts/ TrustFrameworkExtensions.xml ファイルで、client_idの値を Facebook アプリケーション 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>

ポリシーをアップロードする

  1. Azure portal で B2C テナントの [Identity Experience Framework ] メニュー項目を選択します。
  2. [ カスタム ポリシーのアップロード] を選択します。
  3. この順序で、ポリシー ファイルをアップロードします。
    1. TrustFrameworkBase.xml
    2. TrustFrameworkLocalization.xml
    3. TrustFrameworkExtensions.xml
    4. SignUpOrSignin.xml
    5. ProfileEdit.xml
    6. PasswordReset.xml

ファイルをアップロードすると、Azure によってプレフィックス B2C_1A_ がそれぞれに追加されます。

ヒント

XML エディターで検証がサポートされている場合は、スターター パックのルート ディレクトリにある TrustFrameworkPolicy_0.3.0.0.xsd XML スキーマに対してファイルを検証します。 XML スキーマ検証では、アップロード前にエラーが識別されます。

カスタム ポリシーをテストする

  1. [ カスタム ポリシー] で、[ B2C_1A_signup_signin] を選択します。
  2. カスタム ポリシーの概要ページの [ アプリケーションの選択 ] で、テストする Web アプリケーション ( webapp1 という名前のものなど) を選択します。
  3. 応答 URLhttps://jwt.msされていることを確認します。
  4. [今すぐ実行] を選択します。
  5. メール アドレスを使用してサインアップします。
  6. [ 今すぐ実行 ] をもう一度選択します。
  7. 正しい構成であることを確認するには、同じアカウントでサインインします。
  8. [ 今すぐ実行 ] をもう一度選択し、[Facebook] を選択して Facebook でサインインし、カスタム ポリシーをテストします。

次のステップ

この記事では、次の方法を学習しました。

  • サインアップとサインインのユーザー フローを作成する
  • プロファイル編集ユーザー フローを作成する
  • パスワード リセット ユーザー フローを作成する

次に、Azure AD B2C を使用してアプリケーションにサインインし、ユーザーをサインアップする方法について説明します。 以下にリンクされているサンプル アプリに従います。

詳細については、 Azure AD B2C アーキテクチャの詳細シリーズを参照してください。