重要
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 パブリック クラウドにのみ適用されます。 他の環境では、 従来のユーザー フローのバージョン管理が引き続き使用されます。
[前提条件]
- まだお持ちでない場合は、Azure サブスクリプションにリンクされている Azure AD B2C テナントを作成 します。
- Web アプリケーションを登録し、 ID トークンの暗黙的な許可を有効にします。
- まだお持ちでない場合は、Azure サブスクリプションにリンクされている Azure AD B2C テナントを作成 します。
- Web アプリケーションを登録し、 ID トークンの暗黙的な許可を有効にします。
サインアップとサインイン ユーザー フローを作成する
サインアップとサインインのユーザー フローは、両方のエクスペリエンスを 1 つの構成で処理します。 アプリケーションのユーザーは、コンテキストに応じて適切なパスを導き出されます。 サインアップとサインインのユーザー フローを作成するには:
Azure portal にサインインします。
複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
Azure portal で、 [Azure AD B2C] を検索して選択します。
[ ポリシー] で、[ ユーザー フロー] を選択し、[ 新しいユーザー フロー] を選択します。
[ユーザー フローを作成する] ページで、 [サインアップとサインイン] ユーザー フローを選択します。
[ バージョンの選択] で [ 推奨] を選択し、[ 作成] を選択します。 (ユーザー フローのバージョンの詳細については、こちらを参照してください )。
ユーザー フローの [名前] を入力します。 たとえば、 signupsignin1 です。
ID プロバイダーの場合は、[電子メールのサインアップ] を選択します。
ユーザー属性とトークン要求の場合は、サインアップ時にユーザーから収集して送信する要求と属性を選択します。 たとえば、 [Show more](さらに表示) を選択し、 [国/リージョン] 、 [表示名] 、 [郵便番号] の属性と要求を選択します。 [OK] を選択.
[ 作成] を選択してユーザー フローを追加します。 B2C_1_のプレフィックスは、前に入力した名前の先頭に自動的に付加されます。 たとえば、 B2C_1_signupsignin1。
ユーザー フローをテストする
[ ユーザー フロー ] ページで、先ほど作成したユーザー フローを選択して概要ページを開きます。
ユーザー フローの概要ページの上部にある [ ユーザー フローの実行] を選択します。 ページの右側にウィンドウが開きます。
[アプリケーション] で、テストする Web アプリケーション (webapp1 という名前のものなど) を選択します。 応答 URL に
https://jwt.ms
が表示されます。[ ユーザー フローの実行] を選択し、[ 今すぐサインアップ] を選択します。
有効なメール アドレスを入力し、[ 確認コードの送信] を選択し、受信した確認コードを入力して、[ コードの確認] を選択します。
新しいパスワードを入力し、そのパスワードを確認します。
国と地域を選択し、表示する名前を入力し、郵便番号を入力して、[ 作成] を選択します。 トークンは
https://jwt.ms
に返され、ブラウザーに表示されます。ユーザー フローをもう一度実行できるようになったので、先ほど作成したアカウントでサインインできるようになります。 返されたトークンには、選択した国/リージョン、名前、および郵便番号の要求が含まれています。
注
"ユーザー フローの実行" エクスペリエンスは、現在、承認コード フローを使用する SPA 応答 URL の種類と互換性がありません。 これらの種類のアプリで "ユーザー フローの実行" エクスペリエンスを使用するには、" Web" 型の応答 URL を登録し、暗黙的なフローを有効にします。
セルフサービス パスワード リセットを有効にする
サインアップまたはサインイン ユーザー フローの セルフサービス パスワード リセット を有効にするには:
- [ ユーザー フロー ] ページで、先ほど作成したサインアップまたはサインイン ユーザー フローを選択します。
- 左側のメニューの [設定] で、[ プロパティ] を選択します。
- [ パスワードの構成] で、[ セルフサービスパスワードリセット] を選択します。
- 保存 を選択します。
ユーザー フローをテストする
- [ ユーザー フロー ] ページで、先ほど作成したユーザー フローを選択して概要ページを開き、[ ユーザー フローの実行] を選択します。
-
[アプリケーション] で、テストする Web アプリケーション (webapp1 という名前のものなど) を選択します。
応答 URL に
https://jwt.ms
が表示されます。 - ユーザー フローを実行する を選択します。
- サインアップまたはサインイン ページで、[ パスワードを忘れた場合] を選択します。
- 前に作成したアカウントのメール アドレスを確認し、[ 続行] を選択します。
- これで、ユーザーのパスワードを変更する機会が得られます。 パスワードを変更し、[ 続行] を選択します。 トークンは
https://jwt.ms
に返され、ブラウザーに表示されます。
プロファイル編集ユーザー フローを作成する
ユーザーがアプリケーションでプロファイルを編集できるようにする場合は、プロファイル編集ユーザー フローを使用します。
- Azure AD B2C テナントの概要ページのメニューで、[ ユーザー フロー] を選択し、[ 新しいユーザー フロー] を選択します。
- [ ユーザー フローの作成 ] ページで、 プロファイル編集 ユーザー フローを選択します。
- [ バージョンの選択] で [ 推奨] を選択し、[ 作成] を選択します。
- ユーザー フローの [名前] を入力します。 たとえば、 profileediting1 です。
- ID プロバイダーの場合は、[ローカル アカウント] で [電子メールのサインアップ] を選択します。
- [ユーザー属性] で、顧客が自分のプロファイルで編集できるようにする属性を選択します。 たとえば、[ さらに表示] を選択し、[ 表示名 ] と [役職] に属性と要求の両方を選択 します。 [OK] を選択.
- [ 作成] を選択してユーザー フローを追加します。 B2C_1_のプレフィックスが自動的に名前に追加されます。
ユーザー フローをテストする
- 作成したユーザー フローを選択して、概要ページを開きます。
- ユーザー フローの概要ページの上部にある [ ユーザー フローの実行] を選択します。 ページの右側にウィンドウが開きます。
-
[アプリケーション] で、テストする Web アプリケーション (webapp1 という名前のものなど) を選択します。
応答 URL に
https://jwt.ms
が表示されます。 - [ ユーザー フローの実行] を選択し、前に作成したアカウントでサインインします。
- これで、ユーザーの表示名と役職を変更できるようになりました。
続行を選択します。 トークンは
https://jwt.ms
に返され、ブラウザーに表示されます。
ヒント
この記事では、テナントを手動で設定する方法について説明します。 この記事のプロセス全体を自動化できます。 自動化により、Azure AD B2C SocialAndLocalAccountsWithMFA スターター パックがデプロイされます。これにより、サインアップとサインイン、パスワード リセット、プロファイル編集の体験が提供されます。 以下のチュートリアルを自動化するには、 IEF セットアップ アプリ にアクセスし、指示に従います。
Identity Experience Framework アプリケーションの署名キーと暗号化キーを追加する
- Azure portal にサインインします。
- 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
- Azure portal で、 [Azure AD B2C] を検索して選択します。
- 概要ページの Policiesで、Identity Experience Frameworkを選択します。
署名キーを作成する
- [ポリシー キー] を選択し、[追加] を選びます。
-
[オプション] で、[
Generate
] を選択します。 - [ 名前] に「
TokenSigningKeyContainer
」と入力します。 プレフィックスB2C_1A_
は自動的に追加される場合があります。 - [ キーの種類] で、[ RSA] を選択します。
- [キー使用法] には [署名] を選択します。
- を選択してを作成します。
暗号化キーを作成する
- [ポリシー キー] を選択し、[追加] を選びます。
-
[オプション] で、[
Generate
] を選択します。 - [ 名前] に「
TokenEncryptionKeyContainer
」と入力します。 プレフィックスB2C_1A
_ が自動的に追加される場合があります。 - [ キーの種類] で、[ RSA] を選択します。
- [ キーの使用法] で、[ 暗号化] を選択します。
- を選択してを作成します。
Identity Experience Framework アプリケーションを登録する
Azure AD B2C では、ローカル アカウントでユーザーのサインアップとサインインに使用する 2 つのアプリケーションを登録する必要があります。 IdentityExperienceFramework、Web API、 ProxyIdentityExperienceFramework (IdentityExperienceFramework アプリへの委任されたアクセス許可を持つネイティブ アプリ)。 ユーザーは、"ローカル アカウント" を作成するテナントに登録されているアプリケーションにアクセスするために、メール アドレスまたはユーザー名とパスワードでサインアップできます。ローカル アカウントは、Azure AD B2C テナントにのみ存在します。
これら 2 つのアプリケーションを Azure AD B2C テナントに登録する必要があるのは 1 回だけです。
IdentityExperienceFramework アプリケーションを登録する
Azure AD B2C テナントにアプリケーションを登録するには、 アプリ登録エクスペリエンスを 使用できます。
- [アプリの登録] を選択し、[新しい登録] を選択します。
-
名前 に
IdentityExperienceFramework
と入力します。 - [サポートされているアカウントの種類] で、[この組織のディレクトリ内のアカウントのみ] を選択します。
- [ リダイレクト URI] で [ Web] を選択し、「
https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com
」と入力します。ここで、your-tenant-name
は Azure AD B2C テナント ドメイン名です。 - 許可の下にある、「openid」と「offline_access」権限に対する管理者の同意を付与する」 チェックボックスを選択します。
- 登録 を選択します。
- 後の手順で使用する アプリケーション (クライアント) ID を 記録します。
次に、スコープを追加して API を公開します。
- 左側のメニューの [管理] で、 [API の公開] を選択します。
- [ スコープの追加] を選択し、[ 保存] を選択して、既定 のアプリケーション ID URI をそのまま使用します。
- 次の値を入力して、Azure AD B2C テナントでカスタム ポリシーの実行を許可するスコープを作成します。
-
スコープ名:
user_impersonation
-
管理者の同意の表示名:
Access IdentityExperienceFramework
-
管理者の同意の説明:
Allow the application to access IdentityExperienceFramework on behalf of the signed-in user.
-
スコープ名:
- [ スコープの追加] を選択する
ProxyIdentityExperienceFramework アプリケーションを登録する
- [アプリの登録] を選択し、[新しい登録] を選択します。
-
名前 に
ProxyIdentityExperienceFramework
と入力します。 - [サポートされているアカウントの種類] で、[この組織のディレクトリ内のアカウントのみ] を選択します。
- [ リダイレクト URI] で、ドロップダウンを使用して[ パブリック クライアント/ネイティブ (モバイルとデスクトップ)]を選択します。
- [ リダイレクト URI] に「
myapp://auth
」と入力します。 - 許可の下にある、「openid」と「offline_access」権限に対する管理者の同意を付与する」 チェックボックスを選択します。
- 登録 を選択します。
- 後の手順で使用する アプリケーション (クライアント) ID を 記録します。
次に、アプリケーションをパブリック クライアントとして扱う必要があることを指定します。
- 左側のメニューで、管理の下にある認証を選択します。
- [ 詳細設定] の [ パブリック クライアント フローを許可 する] セクションで、[ 次のモバイルおよびデスクトップ フローを有効にする] を [はい] に設定します。
- 保存 を選択します。
-
"isFallbackPublicClient": true が Microsoft Graph アプリ マニフェスト (新規) で設定されていることを確認します。
- 左側のメニューの [ 管理] で、[ マニフェスト ] を選択して Microsoft Graph アプリ マニフェスト (新規) を開きます。
- Microsoft Graph アプリ マニフェスト (新規) タブから AAD Graph アプリ マニフェスト (間もなく非推奨) タブに切り替えます。
- isFallbackPublicClient キーを検索し、その値が true に設定されていることを確認します。
ここで、 IdentityExperienceFramework 登録で前に公開した API スコープにアクセス許可を付与します。
- 左側のメニューの [ 管理] で、[ API のアクセス許可] を選択します。
- [構成されたアクセス許可] の下で [アクセス許可の追加] を選択します。
- 組織で 使用している API タブを選択し、 IdentityExperienceFramework アプリケーションを 選択します。
- [ アクセス許可] で、前に定義した user_impersonation スコープを選択します。
- アクセス許可の追加 を選択します。 指示に従って、数分待ってから次の手順に進みます。
- [<テナント名> に管理者の同意を与えます] を選択します。
- [はい] を選択します。
- [更新] を選択し、スコープの [状態] の下に「... に付与」が表示されていることを確認します。
カスタム ポリシー スターター パック
カスタム ポリシーは、技術プロファイルとユーザー体験を定義するために Azure AD B2C テナントにアップロードする一連の XML ファイルです。 スターター パックには、迅速に作業するための事前構築済みのポリシーがいくつか用意されています。 これらの各スターター パックには、説明されているシナリオを実現するために必要な技術プロファイルとユーザー体験の最小数が含まれています。 Azure AD B2C カスタム ポリシーの詳細なガイドについては、 カスタム ポリシーのハウツー ガイド シリーズに従ってください。
- LocalAccounts - ローカル アカウントの使用のみを有効にします。
- SocialAccounts - ソーシャル (またはフェデレーション) アカウントの使用のみを有効にします。
- SocialAndLocalAccounts - ローカル アカウントとソーシャル アカウントの両方の使用を有効にします。
- SocialAndLocalAccountsWithMFA - ソーシャル、ローカル、および多要素認証オプションを有効にします。
各スターター パックには次のものが含まれます。
- ベース ファイル - ベース にいくつかの変更が必要です。 例: TrustFrameworkBase.xml
- ローカライズ ファイル - このファイルは、ローカライズの変更が行われる場所です。 例: TrustFrameworkLocalization.xml
- 拡張ファイル - このファイルは、ほとんどの構成変更が行われる場所です。 例: TrustFrameworkExtensions.xml
- 依存パーティファイル - アプリケーションによって呼び出されるタスク固有のファイル。 例: SignUpOrSignin.xml、 ProfileEdit.xml、 PasswordReset.xml
この記事では、 SocialAndLocalAccounts スターター パックの XML カスタム ポリシー ファイルを編集します。 XML エディターが必要な場合は、軽量のクロスプラットフォーム エディターである Visual Studio Code をお試しください。
スターター パックを入手する
GitHub からカスタム ポリシー スターター パックを取得し、 SocialAndLocalAccounts スターター パックの XML ファイルを Azure AD B2C テナント名で更新します。
.zip ファイルをダウンロード するか、リポジトリを複製します。
git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
SocialAndLocalAccounts ディレクトリ内のすべてのファイルで、
yourtenant
文字列を Azure AD B2C テナントの名前に置き換えます。たとえば、B2C テナントの名前が contosotenant の場合、
yourtenant.onmicrosoft.com
のすべてのインスタンスがcontosotenant.onmicrosoft.com
になります。
カスタム ポリシーにアプリケーション ID を追加する
アプリケーション ID を拡張ファイルに 追加TrustFrameworkExtensions.xml。
-
SocialAndLocalAccounts/
TrustFrameworkExtensions.xml
を開き、要素<TechnicalProfile Id="login-NonInteractive">
を見つけます。 -
IdentityExperienceFrameworkAppId
の両方のインスタンスを、前に作成した IdentityExperienceFramework アプリケーションのアプリケーション ID に置き換えます。 -
ProxyIdentityExperienceFrameworkAppId
の両方のインスタンスを、前に作成した ProxyIdentityExperienceFramework アプリケーションのアプリケーション ID に置き換えます。 - ファイルを保存します。
Facebook を ID プロバイダーとして追加する
SocialAndLocalAccounts スターター パックには、Facebook ソーシャル サインインが含まれています。 Facebook ではカスタム ポリシーを使用する必要はありませんが、ここではカスタム ポリシーでフェデレーション ソーシャル ログインを有効にする方法を示すために使用します。 フェデレーション ソーシャル ログインを有効にする必要がない場合は、代わりに LocalAccounts スターター パックを使用し、「 ポリシーのアップロード 」セクションに進んでください。
Facebook アプリケーションを作成する
「Facebook アプリケーションを作成する」で説明されている手順を使用して、Facebook アプリ ID とアプリ シークレットを取得します。 Facebook アカウントでのサインアップとサインインの設定に関する記事の前提条件と残りの手順をスキップします。
Facebook キーを作成する
Facebook アプリケーションの アプリ シークレット をポリシー キーとして追加します。 この記事の前提条件の一部として、作成したアプリケーションのアプリ シークレットを使用できます。
- Azure portal にサインインします。
- 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
- Azure portal で、 [Azure AD B2C] を検索して選択します。
- 概要ページの Policiesで、Identity Experience Frameworkを選択します。
- [ポリシー キー] を選択し、[追加] を選びます。
-
[オプション] で、[
Manual
] を選択します。 -
名前 に
FacebookSecret
と入力します。 プレフィックスB2C_1A_
は自動的に追加される場合があります。 - [シークレット] に、Facebook アプリケーションのアプリ シークレットを developers.facebook.com から入力します。 この値はシークレットであり、アプリケーション ID ではありません。
- [キー使用法] には [署名] を選択します。
- を選択してを作成します。
カスタム ポリシー スターター パックの 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>
ポリシーをアップロードする
- Azure portal で B2C テナントの [Identity Experience Framework ] メニュー項目を選択します。
- [ カスタム ポリシーのアップロード] を選択します。
- この順序で、ポリシー ファイルをアップロードします。
- TrustFrameworkBase.xml
- TrustFrameworkLocalization.xml
- TrustFrameworkExtensions.xml
- SignUpOrSignin.xml
- ProfileEdit.xml
- PasswordReset.xml
ファイルをアップロードすると、Azure によってプレフィックス B2C_1A_
がそれぞれに追加されます。
ヒント
XML エディターで検証がサポートされている場合は、スターター パックのルート ディレクトリにある TrustFrameworkPolicy_0.3.0.0.xsd
XML スキーマに対してファイルを検証します。 XML スキーマ検証では、アップロード前にエラーが識別されます。
カスタム ポリシーをテストする
- [ カスタム ポリシー] で、[ B2C_1A_signup_signin] を選択します。
- カスタム ポリシーの概要ページの [ アプリケーションの選択 ] で、テストする Web アプリケーション ( webapp1 という名前のものなど) を選択します。
-
応答 URL が
https://jwt.ms
されていることを確認します。 - [今すぐ実行] を選択します。
- メール アドレスを使用してサインアップします。
- [ 今すぐ実行 ] をもう一度選択します。
- 正しい構成であることを確認するには、同じアカウントでサインインします。
- [ 今すぐ実行 ] をもう一度選択し、[Facebook] を選択して Facebook でサインインし、カスタム ポリシーをテストします。
次のステップ
この記事では、次の方法を学習しました。
- サインアップとサインインのユーザー フローを作成する
- プロファイル編集ユーザー フローを作成する
- パスワード リセット ユーザー フローを作成する
次に、Azure AD B2C を使用してアプリケーションにサインインし、ユーザーをサインアップする方法について説明します。 以下にリンクされているサンプル アプリに従います。
- Core Web アプリ ASP.NET サンプルを構成する
- Web API を呼び出すサンプル ASP.NET Core Web アプリを構成する
- サンプル Python Web アプリケーションで認証を構成する
- サンプル シングルページ アプリケーション (SPA) を構成する
- サンプルの Angular シングルページ アプリを構成する
- サンプル Android モバイル アプリを構成する
- サンプル iOS モバイル アプリを構成する
- サンプルの WPF デスクトップ アプリケーションで認証を構成する
- Web API で認証を有効にする
- SAML アプリケーションを構成する
詳細については、 Azure AD B2C アーキテクチャの詳細シリーズを参照してください。