Azure Active Directory B2C の推奨事項とベスト プラクティス

次のベスト プラクティスと推奨事項では、Azure Active Directory (Azure AD) B2C を既存のまたは新規のアプリケーション環境に統合する際の主要な側面のいくつかについて説明します。

基礎

ベスト プラクティス 説明
ほとんどのシナリオでユーザー フローを選択する Azure AD B2C の Identity Experience Framework は、サービスの中核となる強みです。 ポリシーには、サインアップ、サインイン、プロファイル編集などの ID エクスペリエンスが完全に記述されています。 最も一般的な ID タスクを設定しやすくするために、Azure AD B2C ポータルには、ユーザー フローという事前定義済みで構成できるポリシーが用意されています。 ユーザー フローを使用すると、数回クリックするだけで、非常に優れたユーザー エクスペリエンスを数分で作成できます。 ユーザー フローとカスタム ポリシーを使用するタイミングについて確認してください
アプリの登録 セキュリティで保護するすべてのアプリケーション (Web、ネイティブ) と API を Azure AD B2C に登録する必要があります。 アプリに iOS および Android の Web バージョンとネイティブ バージョンの両方が含まれている場合は、同じクライアント ID を使用して Azure AD B2C に 1 つのアプリケーションとして登録できます。 OIDC、SAML、Web、ネイティブの各アプリを登録する方法について確認してください。 Azure AD B2C で使用できるアプリケーションの種類の詳細について確認してください。
月間アクティブ ユーザーの課金に移行する Azure AD B2C は、月間アクティブ認証から月間アクティブ ユーザー (MAU) の課金に移行されました。 ほとんどの顧客は、これがコスト効率の高いモデルであることに気付くでしょう。 月間アクティブ ユーザーの課金の詳細について確認してください

計画と設計

使用するアプリケーションとサービスのアーキテクチャを定義し、現在のシステムのインベントリを実行し、Azure AD B2C への移行を計画します。

ベスト プラクティス 説明
エンドツーエンド ソリューションを設計する Azure AD B2C 統合を計画するときには、ご利用のアプリケーションのすべての依存関係を含めます。 ご利用の環境内に現在存在している、またはソリューションに追加することが必要と考えられるすべてのサービスおよび製品 (Azure Functions、カスタマー リレーションシップ マネジメント (CRM) システム、Azure API Management ゲートウェイ、ストレージ サービスなど) について検討してください。 すべてのサービスについてセキュリティとスケーラビリティを考慮してください。
ユーザーのエクスペリエンスをドキュメント化する お客様のアプリケーションでお客様の顧客が体験できるすべてのユーザー体験を詳細に説明します。 お客様のアプリケーションの ID およびプロファイルの側面を顧客が操作する際に表示される可能性のあるすべての画面と分岐フローを記載します。 使いやすさ、アクセシビリティ、およびローカライズを計画に含めます。
適切な認証プロトコルを選択する さまざまなアプリケーション シナリオと、推奨される認証フローの詳細については、「シナリオとサポートされている認証フロー」を参照してください。
概念実証 (POC) エンドツーエンド ユーザー エクスペリエンスをパイロット運用する Microsoft コード サンプルおよびコミュニティ サンプルから開始します。
移行計画を作成する 事前に計画を作成することによって、移行を円滑に進めることができます。 ユーザー移行の詳細について確認してください。
使いやすさとセキュリティ ソリューションでは、アプリケーションの使いやすさと組織におけるリスクの許容レベルとの間で適切なバランスを取る必要があります。
オンプレミスの依存関係をクラウドに移行する ソリューションの回復性を確保できるようにするために、クラウドへの既存のアプリケーションの依存関係の移行を検討してください。
既存のアプリを b2clogin.com に移行する login.microsoftonline.com の廃止は、2020 年 12 月 4 日にすべての Azure AD B2C テナントに対して有効になります。 詳細については、こちらを参照してください
Identity Protection と条件付きアクセスを使用する これらの機能を使用すると、危険な認証やアクセス ポリシーをきわめて厳密に制御できます。 Azure AD B2C Premium P2 が必要です。 詳細については、こちらを参照してください
テナントのサイズ Azure AD B2C テナントのサイズを考慮して計画する必要があります。 既定では、Azure AD B2C テナントは 125 万オブジェクト (ユーザー アカウントとアプリケーション) に対応できます。 この上限は、カスタム ドメインをテナントに追加し、確認することで、525 万オブジェクトまで増やすことができます。 より大きなテナント サイズが必要な場合は、サポートに問い合わせる必要があります。
Identity Protection と条件付きアクセスを使用する これらの機能を使用すると、危険な認証やアクセス ポリシーに対する制御を強化できます。 Azure AD B2C Premium P2 が必要です。 詳細については、こちらを参照してください

実装

実装フェーズでは、次の推奨事項を検討します。

ベスト プラクティス 説明
Visual Studio Code 用 Azure AD B2C 拡張機能を使用してカスタム ポリシーを編集する Visual Studio Code と、このコミュニティによって構築された拡張機能を Visual Studio Code Marketplace からダウンロードします。 Microsoft の公式製品ではありませんが、Visual Studio Code 用の Azure AD B2C 拡張機能には、カスタム ポリシーの操作をより簡単にするのに役立つ機能がいくつか含まれています。
Azure AD B2C のトラブルシューティングを行う方法について確認する 開発時にカスタム ポリシーのトラブルシューティングを行う方法について確認してください。 通常の認証フローとはどのようになるか確認し、異常やエラーを検出するためのツールを使用します。 たとえば、Application Insights を使用して、ユーザー体験の出力ログを確認します。
実績のあるカスタム ポリシー パターンからなる Microsoft のライブラリを活用する 強化された Azure AD B2C カスタマー ID およびアクセス管理 (CIAM) ユーザー体験のサンプルを確認してください。

テスト

使用する Azure AD B2C 実装をテストして自動化します。

ベスト プラクティス 説明
グローバル トラフィックを考慮する 異なるグローバル アドレスからのトラフィック ソースを使用して、パフォーマンスとローカライズの要件をテストします。 すべての HTML、CSS、および依存関係がパフォーマンスのニーズを満たしていることを確認します。
機能および UI のテスト ユーザー フローをエンドツーエンドでテストします。 Selenium、VS Web Test などを使用して、数分ごとに合成テストを追加します。
侵入テスト ソリューションを公開する前に、侵入テストの演習を実行して、サードパーティの依存関係を含むすべてのコンポーネントが安全であることを確認します。 アクセス トークンを使用して API をセキュリティで保護していること、さらにアプリケーションのシナリオに適した認証プロトコルを使用していることを確認します。 侵入テスト、および Microsoft Cloud 統合侵入テストの活動規則の詳細を確認してください。
A/B テスト ご利用の母集団全体にロール アウトする前に、少量のランダムなユーザー セットを使用して新機能をフライト化します。 Azure AD B2C で JavaScript を有効にすると、Optimizely や Clarity などの A/B テスト ツールと統合できます。
ロード テスト Azure AD B2C はスケーリングすることができます。しかし、ご利用のアプリケーションのスケーリングは、その依存関係のすべてをスケーリングできる場合にのみ可能です。 ご利用の API と CDN のロード テストを行います。 開発者のベスト プラクティスによる回復性向上の詳細を確認してください。
Throttling 短時間に同じソースから送信される要求が多すぎる場合、Azure AD B2C によってトラフィックが調整されます。 ロード テスト中にいくつかのトラフィック ソースを使用し、ご利用のアプリケーション内で AADB2C90229 エラー コードを適切に処理します。
オートメーション 継続的インテグレーションと配信 (CI/CD) パイプラインを使用して、テストとデプロイを自動化します (Azure DevOps など)。

操作

ご利用の Azure AD B2C 環境を管理する

ベスト プラクティス 説明
複数の環境を作成する 操作とデプロイのロールアウトをより簡単に行えるように、開発、テスト、実稼働前、運用向けに個別の環境を作成します。 それぞれのために Azure AD B2C テナントを作成します。
カスタム ポリシーにバージョン管理を使用する Azure AD B2C カスタム ポリシーに対して、GitHub、Azure Repos、またはその他のクラウドベースのバージョン管理システムの使用を検討してください。
Microsoft Graph API を使用して B2C テナントの管理を自動化する Microsoft Graph API:
Identity Experience Framework (カスタム ポリシー) を管理する
[キー]
ユーザー フロー
Azure DevOps との統合 CI/CD パイプライン を使用すると、異なる環境間でのコードの移行が簡単になり、運用対応性が常に確保されます。
カスタム ポリシーをデプロイする Azure AD B2C では、エンド ユーザーでのパフォーマンスをよくするためにキャッシュに依存しています。 任意の方法を使用してカスタム ポリシーをデプロイする場合、ユーザーに変更が表示されるまでに最大 30 分の遅延が予想されます。 この動作のため、カスタム ポリシーをデプロイする場合は、次の操作を行うことを検討してください。
- 開発環境にデプロイする場合は、カスタム ポリシー ファイルの <TrustFrameworkPolicy> 要素で DeploymentMode 属性を Development に設定します。
- アプリ内のトラフィックが少ないときに、更新されたポリシー ファイルを運用環境にデプロイします。
- 運用環境にデプロイして既存のポリシー ファイルを更新する場合は、更新されたファイルを新しい名前でアップロードし、アプリの参照を新しい名前に更新します。 その後、古いポリシー ファイルを削除できます。
- 運用環境で DeploymentModeDevelopment を設定すると、キャッシュ動作をバイパスできます。 ただし、この操作は推奨されません。 Application Insights を使用して Azure AD B2C ログを収集すると、ID プロバイダーとの間で送受信されるすべての要求が収集されます。これはセキュリティとパフォーマンスのリスクとなります。
アプリ登録の更新プログラムをデプロイする アプリケーションのリダイレクト URI の更新など、Azure AD B2C テナントのアプリケーション登録を変更すると、運用環境でその変更が有効になるまでに最大 2 時間 (3600 秒) の遅延が予想されます。 アプリのトラフィックが少ない時に、運用環境でアプリケーション登録を変更することをお勧めします。
Azure Monitor との統合 監査ログ イベントは 7 日間のみ保持されます。 Azure Monitor と統合することにより、そのログを、長期的な使用のために保持したり、サードパーティのセキュリティ情報およびイベント管理 (SIEM) ツールと統合してご利用の環境の分析情報を取得したりすることができます。
アクティブなアラートと監視のセットアップ Application Insights を使用して Azure AD B2C でのユーザーの動作を追跡します。

サポートとステータスの更新

サービスの最新の状態を把握し、サポート オプションを見つけてください。

ベスト プラクティス 説明
サービスの更新情報 Azure AD B2C 製品の最新の更新プログラムとお知らせを入手します。
Microsoft サポート Azure AD B2C の技術的な問題に対するサポート リクエストを提出します。 課金とサブスクリプション管理のサポートは無料で提供されます。
Azure の状態 すべての Azure サービスの現在の正常性状態を表示します。