重要
2025 年 5 月 1 日より、Azure AD B2C は新規のお客様向けに購入できなくなります。 詳細については、FAQ を参照してください。
Azure Active Directory B2C は、1 日に何百万人ものユーザーと数十億の認証をサポートできる顧客 ID アクセス管理 (CIAM) ソリューションです。 認証プラットフォームのスケーリングと安全性が処理され、サービス拒否、パスワード スプレー、ブルート フォース攻撃などの脅威の監視と自動処理が行われます。
Azure Active Directory B2C (Azure AD B2C) は、 Microsoft Entra ID とは別のサービスです。 Microsoft Entra ID と同じテクノロジに基づいて構築されていますが、目的は異なります。 これにより、企業は顧客向けのアプリケーションを構築し、アプリケーションへのセルフサービス サインアップが可能になります。
Azure AD B2C は、複数のコンポーネントで構成されるグローバル分散サービスです。
Azure AD B2C ソリューションを作成するときは、サービスをホストする場所を指定する必要があります。 この場所はユーザー プロファイル データが格納されるリージョンにのみ関係し、サインインを処理するサービスの残りの部分はグローバルに実行されます。
通常、ユーザー ベースに最も近いリージョンに Azure AD B2C テナントをデプロイします。 これにより、ユーザー プロファイルは 選択したリージョンでのみレプリケートされるため、データ所在地に関する法律への準拠を維持しやすくなります。 また、ネットワーク待機時間はディレクトリ ストアに最適化されるため、サインイン時に最適なパフォーマンスが得られます。
Azure AD B2C ディレクトリで世界中のユーザーにサービスを提供する必要がある場合、リージョン構造には課題があります。 Azure AD B2C テナントを作成する場所を決定する必要があります。 選択したリージョン外のユーザーは、データ所在地の要件に準拠していない可能性があり、資格情報の確認やユーザー プロファイル データの読み取り時に待機時間が長くなる可能性があります。
たとえば、オーストラリアと北米のユーザーをサポートし、Azure AD B2C ディレクトリが北米リージョンに作成されるアプリケーションを考えてみましょう。 オーストラリアからサインインしたユーザーは、認証を完了するために処理時間が長くなる可能性があります。
データ所在地の要件をより適切に満たし、パフォーマンスの問題を軽減するには、複数の Azure AD B2C テナントをデプロイする必要があります。 ビジネスが動作する各リージョンにテナントを配置することで、ディレクトリへの操作は待機時間に合わせて最適化されます。 ただし、そうすることで、ソリューションは、各リージョンでこれらの機密性の高いテナント リソースを構成、管理、保護するための他のオーバーヘッドを作成します。 その他のオーバーヘッドは次のとおりです。
テナント管理
テナントの分離により、エンド ユーザー エクスペリエンスがグローバルに感じられません
請求書
ポリシー/アプリの登録/キーを管理するための CI/CD プロセス
このドキュメントでは、世界中のユーザーにサービスを提供するお客様に最適なソリューションに最適な Azure AD B2C を使用したアーキテクチャを提案します。 ソリューションは、次の要件に対応します。
ユーザーは、世界中のどこからでもアプリケーションにアクセスする場所に関係なく、同じ資格情報のセットを維持できます。
ユーザーの認証の場所に関係なく、一貫したパフォーマンスと待機時間。
可能な限り最小限の構成でプロセス、フレームワーク、または SDK を開発者チームに簡単に提供できるようにします。
ユーザー プロファイルは、ユーザーが世界中を移動するときに維持できます。 これにより、任意のサービス内のユーザー操作によって生成される分析に、より多くの価値が生まれます。
顧客ユーザー データは、地域のデータ ストアに格納されます。
グローバルに運用されるビジネス モデルに Azure AD B2C テナントを使用して ID プラットフォームを実装する場合に考慮する 2 つの方法を次に示します。
最初のアプローチでは、境界として地理的リージョンが使用され、アプリケーションはリージョン専用に構成されます。
2 番目のアプローチは、アプリケーションのグローバル境界を持ち、追加の Azure AD B2C テナントを使用して、リージョン テナント間の相互作用を調整します。
リージョン テナント オーケストレーション
このモデルでは、アプリケーションはリージョンごとにホストされるか、リージョン別のテナントに接続するためのリージョンごとの構成を持っています。 アプリケーションは、ユーザーをリージョン固有のテナントに直接送信します。 テナント間通信は、ユーザーが別のリージョンに移動した可能性がある場合に、テナント間認証またはテナント間のプロファイル更新を実行するために使用されます。
ファネル テナント オーケストレーション
このモデルでは、Azure AD B2C テナントがユーザーを地域の Azure AD B2C テナントにファネルします。 ファネル テナントは、他の Azure AD B2C テナントへのリダイレクト オーケストレーターとして機能します。 これは Azure AD B2C サービスのグローバル分散コンポーネントによって処理されるため、パフォーマンスは影響を受けません。 このリダイレクトは、OpenId Connect ID プロバイダーのフェデレーションを使用して実行されます。
テナント間通信は、テナント間認証またはテナント間のプロファイル更新を実行するために使用されます。 ファネル テナントにより、通信する単一のエンドポイントがアプリケーションに提供されます。
後でソリューションをモデル化することにしたアーキテクチャでは、説明されている 2 つのモデル間のトレードオフに基づいて選択を行う必要があります。 たとえば、じょうごモデルを使用すると、アプリケーションの 1 つのインスタンスを維持できます。 次のセクションでは、選択した設計に影響を与える可能性がある機能、選択条件、およびパフォーマンスについて説明します。
機能と考慮事項
次の表では、地域ベースとじょうごベースの設計を使用して提供される機能について説明します。
能力 | リージョンベース | ファネルベース |
---|---|---|
ローカル アカウントのサインアップとサインインをサポートします |
![]() |
![]() |
フェデレーション アカウントのサインアップとサインインをサポートします |
![]() |
![]() |
登録済みリージョンの外部からサインインするユーザーのローカル アカウントの認証をサポートします |
![]() |
![]() |
クロステナント API ベースの検索を使用して登録済みリージョンの外部からサインインするユーザーのフェデレーション アカウントの認証をサポートします |
![]() |
![]() |
複数の異なるリージョンからのサインアップを禁止します |
![]() |
![]() |
各リージョンのアプリケーションには、接続する一連のエンドポイントがあります |
![]() |
|
すべてのアプリケーションは、ホストされているリージョンに関係なく、単一のエンドポイント セットに接続します |
![]() |
|
きめ細かい条件付きアクセス ポリシーをサポートします。 |
![]() |
|
コストに合わせて最適化されています。 |
![]() |
機能に基づいて、次の考慮事項を考慮する必要があります。
リージョンベースのアプローチを使用する場合の主な考慮事項は、このアプローチでは、複数のリージョンにまたがるアプリケーションに、各リージョンの Azure AD B2C テナントに対応する構成が必要であるということです。
ファネルベースのアプローチを使用する場合
二重トークン のコストが発生する
追加の HTTP リダイレクトが導入されました
多くのテナントでカスタム ドメインが必要
条件付きアクセスは、アプリケーション レベルではなくテナント レベルで適用されます
複数の IdP を使用してシングル サインアウトすると、課題が発生する可能性があります
選択する方法は、ホストするアプリケーションの数と、アプリケーションへのアクセスに関する特定の要件に基づきます。
[パフォーマンス]
リージョンベースまたはじょうごベースの構成で複数のテナントを使用する場合のパフォーマンス上の利点は、グローバルに運用するビジネスに 1 つの Azure AD B2C テナントを使用するよりも向上します。
じょうごベースのアプローチを使用する場合、じょうごテナントは 1 つの特定のリージョンに配置され、ユーザーにグローバルにサービスを提供します。 じょうごテナント操作は Azure AD B2C サービスのグローバル コンポーネントを利用するため、ユーザーのログイン場所に関係なく、一貫したレベルのパフォーマンスが維持されます。
上の図に示すように、じょうごベースのアプローチの Azure AD B2C テナントでは、ポリシー エンジンのみを使用して、リージョンの Azure AD B2C テナントへのリダイレクトを実行します。 Azure AD B2C ポリシー エンジン コンポーネントはグローバルに分散されます。 そのため、Azure AD B2C のファネル用テナントがどこにプロビジョニングされていても、ファネルはパフォーマンスの観点から制約を受けることはありません。 ファンネル ベースのアプローチでは、ファンネル テナントと地域テナント間の余分なリダイレクトが原因で、パフォーマンスの低下が発生します。
リージョンベースのアプローチでは、各ユーザーは最もローカルな Azure AD B2C に転送されるため、ログインしているすべてのユーザーのパフォーマンスが一貫しています。
リージョン テナントは、ディレクトリ ストアへのディレクトリ呼び出しを実行します。これは、じょうごベースと地域ベースのアーキテクチャの両方で唯一の地域化されたコンポーネントです。
追加の待機時間は、ユーザーがサインアップした別のリージョンで認証を実行した場合にのみ発生します。 これは、認証を完了するためにプロファイルが存在するディレクトリ ストアに到達するために、リージョン間で呼び出しが行われるためです。