ユーザー フローとカスタム ポリシーの概要

Azure AD B2C では、ユーザーがアプリケーションにアクセスするために従うビジネス ロジックを定義できます。 たとえば、ユーザーがサインイン、サインアップ、プロファイルの編集、またはパスワードのリセットを行うときに実行する手順の順序を決定できます。 シーケンスが完了すると、ユーザーはトークンを取得し、アプリケーションにアクセスできるようになります。

Azure AD B2C では、次の 2 つの方法で ID ユーザーのエクスペリエンスを実現できます。

  • ユーザー フロー は、事前に定義された組み込みの構成可能なポリシーであり、サインアップ、サインイン、ポリシー編集のエクスペリエンスを数分で作成できるように用意されています。

  • カスタム ポリシー を使用すると、ユーザー フローでサポートされていない複雑な ID エクスペリエンス シナリオ用に独自のユーザー体験を作成できます。 Azure AD B2C では、カスタム ポリシーを使用して拡張性を提供します。

次のスクリーンショットは、ユーザー フロー設定の UI とカスタム ポリシー構成ファイルを示しています。

ユーザー フロー設定の UI とカスタム ポリシー構成ファイルの比較のスクリーンショット。

この記事では、ユーザーフ ローとカスタム ポリシーの概要を説明し、どちらの方法がビジネス ニーズに最適かを判断するのに役立つ情報を提供します。

ユーザー フロー

最も一般的な ID タスクを設定するために、Azure portal には、"ユーザー フロー" と呼ばれる事前定義済みで構成可能な複数のポリシーが用意されています。

アプリケーションでの ID エクスペリエンスの動作を制御するため、次のようなユーザー フロー設定を構成できます。

  • サインインに使用するアカウントの種類 (Facebook などのソーシャル アカウント、またはメール アドレスとパスワードをサインインに使用するローカル アカウント)
  • コンシューマーから収集される属性 (名、郵便番号、居住地の国/地域など)
  • Microsoft Entra 多要素認証
  • ユーザー インターフェイスのカスタマイズ
  • ユーザーがユーザー フローを完了した後でアプリケーションが受け取るトークン内の要求のセット
  • セッションの管理
  • その他...

アプリに対する一般的な ID シナリオのほとんどは、ユーザー フローを使用して効果的に定義および実装できます。 カスタム ポリシーの完全な柔軟性を必要とする複雑なユーザー体験シナリオがある場合を除き、組み込みのユーザー フローを使用することをお勧めします。

カスタム ポリシー

カスタム ポリシーは、Azure AD B2C テナントのユーザー エクスペリエンスの動作を定義する構成ファイルです。 ユーザー フローが、最も一般的な ID タスク用に Azure AD B2C ポータルで事前に定義されているのに対して、カスタム ポリシーは、さまざまなタスクを実行するために ID 開発者が編集できます。

カスタム ポリシーは、完全に構成可能で、ポリシーに基づきます。 これはエンティティ間の信頼を標準プロトコルに従って調整します。 たとえば、OpenID Connect、OAuth、SAML や、いくつかの非標準のもの (REST API ベースのシステム間の要求の交換など) です。 このフレームワークにより、ホワイトラベルが付けられたわかりやすいエクスペリエンスが作成されます。

カスタム ポリシーを使用すると、手順を自由に組み合わせてユーザー体験を構築できます。 次に例を示します。

  • 他の ID プロバイダーとのフェデレーション
  • ファーストパーティとサードパーティの多要素認証の課題
  • ユーザー入力の収集
  • REST API 通信を使用した外部システムとの統合

各ユーザー体験は、ポリシーによって定義されます。 組織に最適なユーザー エクスペリエンスを実現するために必要な数のポリシーを作成できます。

IEF によって可能になる複雑なユーザー体験の例を示す図

カスタム ポリシーは、階層型チェーン内で互いを参照する複数の XML ファイルによって定義されます。 XML 要素では、要求スキーマ、要求変換、コンテンツ定義、クレーム プロバイダー、技術プロファイル、ユーザー体験のオーケストレーション手順、ID エクスペリエンスの他の側面を定義します。

カスタム ポリシーの強力な柔軟性は、複雑な ID シナリオを構築する必要がある場合に最適です。 カスタム ポリシーを構成する開発者は、信頼できる関係の詳細をメタデータ エンドポイント、正確な要求交換定義を含むように慎重に定義し、各 ID プロバイダーの必要に応じてシークレット、キー、および証明書を構成する必要があります。

カスタム ポリシーについて詳しくは、「Azure Active Directory B2C のカスタム ポリシー」をご覧ください。

ユーザー フローとカスタム ポリシーの比較

次の表では、Azure AD B2C のユーザー フローとカスタム ポリシーで実現できるシナリオを詳しく比較しています。

Context ユーザー フロー カスタム ポリシー
対象ユーザー ID の専門知識を持つ、または持たないすべてのアプリケーション開発者。 ID のプロフェッショナル、システム インテグレータ、コンサルタント、社内の ID チーム。 彼らは OpenID Connect のフローに慣れており、ID プロバイダーや要求ベースの認証を理解しています。
構成方法 ユーザー フレンドリなユーザー インターフェイス (UI) を備えた Azure portal。 XML ファイルを直接編集して Azure portal にアップロードします。
UI のカスタマイズ HTML、CSS、および JavaScript を含む完全な UI のカスタマイズ

カスタム文字列による多言語サポート
ユーザー フローと同じ
属性のカスタマイズ 標準属性とカスタム属性。 ユーザー フローと同じ
トークンおよびセッション管理 トークンのカスタマイズセッションの動作 ユーザー フローと同じ
[ID プロバイダー] Azure Active Directory テナントとのフェデレーションなど、定義済みのローカルまたはソーシャル プロバイダー 標準ベースの OIDC、OAUTH、SAML。 REST API との統合を使用して認証を行うことも可能です。
ID タスク ローカルまたはさまざまなソーシャル アカウントによるサインアップまたはサインイン

セルフサービス パスワード リセット

プロファイルの編集

複数要因の認証。

アクセス トークンのフロー。
カスタム ID プロバイダーを使用したユーザー フローと同じタスクの実行、またはカスタム スコープの使用。

登録時に別のシステムでユーザー アカウントをプロビジョニング。

独自の電子メール サービス プロバイダを使用して、ウェルカム メールを送信。

Azure AD B2C の外部のユーザー ストアを使用。

ユーザーが指定した情報を信頼できるシステムで検証 (API を使用)。

アプリケーションの統合

テナント内でさまざまな種類のユーザー フローまたはカスタム ポリシーを多数作成し、必要に応じてそれらをアプリケーションで使用できます。 ユーザー フローとカスタム ポリシーは、どちらもアプリケーション間で再利用できます。 この柔軟性により、最小限のコード変更で、またはコードをまったく変更せずに、ID エクスペリエンスを定義および変更できます。

ユーザーがアプリケーションにサインインしようとすると、アプリケーションによって、ユーザー フローまたはカスタム ポリシーで提供されるエンドポイントへの認可要求が開始されます。 ユーザー フローまたはカスタム ポリシーによって、ユーザーのエクスペリエンスが定義および制御されます。 ユーザー フローが完了すると、Azure AD B2C によってトークンが生成され、ユーザーはアプリケーションにリダイレクトされます。

モバイル アプリと、Azure AD B2C のサインイン ページ間のフローを示す矢印

複数のアプリケーションで、同じユーザー フローまたはカスタム ポリシーを使用できます。 1 つのアプリケーションで、複数のユーザー フローまたはカスタム ポリシーを使用できます。

たとえば、アプリケーションへのサインインの場合は、アプリケーションでは "サインアップまたはサインイン" のユーザー フローが使用されます。 ユーザーはアプリにサインインした後、プロファイルを編集したい場合があります。 プロファイルを編集するために、アプリケーションでは、今度は "プロファイル編集" のユーザー フローを使用して、別の認可要求が開始されます。

アプリケーションにより、ユーザー フローまたはカスタム ポリシー名を含む標準の HTTP 認証要求を使用して、ユーザー フローがトリガーされます。 カスタマイズされたトークンは応答として受信されます。

次のステップ