顧客 ID 保護のための Azure AD B2C の構成

顧客 ID 保護のための Azure AD B2C の構成

2025/05/01

この技術的および教育的な記事は、セキュリティ アナリスト、IT 管理者、システム エンジニアが Azure AD B2C (Business-to-Consumer) を構成および使用して顧客 ID を保護および管理する方法をガイドすることを目的としています。顧客エクスペリエンスが最も重要なデジタル世界では、安全で直感的でカスタマイズ可能な登録およびログインのプロセスを提供することが極めて重要です。 Azure AD B2C は、顧客がソーシャル ID (Google、Facebook など) またはローカル アカウントを使用してアプリケーションや API にサインアップおよびサインインできるようにする顧客 ID およびアクセス管理 (CIAM) ソリューションです [1]。

はじめに

顧客のアイデンティティは、最新のデジタル エクスペリエンスの基盤です。 Web アプリケーションとモバイル アプリケーションには、何百万もの顧客の登録、ログイン、プロファイルを管理し、セキュリティ、スケーラビリティ、プライバシー規制への準拠を確保するための堅牢なシステムが必要です。内部 CIAM システムの開発と保守は複雑で費用がかかり、セキュリティ エラーが発生しやすくなります。 Azure AD B2C のようなソリューションは、顧客 ID 管理のあらゆる側面を処理するサービスとしてのプラットフォーム (PaaS) を提供することで、この複雑さを解消します [2]。

Azure AD B2C は、消費者向けアプリケーションの特定のニーズを満たすために Azure Active Directory の機能を拡張します。これにより、組織は、ログインおよび登録ページから収集される属性に至るまで、顧客 ID エクスペリエンスを完全にカスタマイズできます。さらに、多要素認証 (MFA)、条件付きアクセス、ID 保護などの高度なセキュリティ機能と統合し、ブルート フォース攻撃や資格情報の侵害などの一般的な脅威から顧客アカウントを保護します [3]。

この実用的なガイドでは、前提条件、B2C の概念、B2C テナントの作成および構成方法、アプリケーションの登録方法、カスタマイズ可能なユーザー フローの構成方法 (登録、ログイン、プロファイル編集、パスワード リセット)、アプリケーションとの統合方法、認証のテストおよび検証方法について説明します。読者がこれらの機能を実装、テスト、検証できるように、段階的な手順、実践的な例、および簡潔な説明が提供されます。さらに、顧客のアイデンティティが効率的、自律的、専門的かつ確実に保護および管理されることを保証するための、セキュリティのヒント、コンプライアンス チェック、ベスト プラクティスについても説明します。

Azure AD B2C が顧客 ID の保護に重要なのはなぜですか?

  • 顧客エクスペリエンスの強化: ソーシャル ログイン オプションと完全なユーザー インターフェイスのカスタマイズを提供し、流動的で一貫したユーザー エクスペリエンスを実現します。
  • 堅牢なセキュリティ: MFA、条件付きアクセス、ID 保護などのエンタープライズ グレードのセキュリティ機能を統合して、顧客アカウントを攻撃から保護します。
  • スケーラビリティと信頼性: 数百万のユーザーと数十億の認証を処理できるように設計されており、高可用性とパフォーマンスを保証します。
  • コンプライアンス: 顧客データの保存と処理を制御することで、GDPR や LGPD などのデータ プライバシー規制への準拠を支援します。
  • コスト削減: 複雑な内部 ID インフラストラクチャを構築および維持する必要がなくなります。
  • 柔軟性: 幅広い認証プロトコル (OpenID Connect、OAuth 2.0、SAML) をサポートし、事実上あらゆるアプリケーションと統合できます。

前提条件

Azure AD B2C を構成するには、次のものが必要です。

  1. アクティブな Azure サブスクリプション: リソースを作成および管理するための Azure サブスクリプション。
  2. 管理アクセス: Azure サブスクリプションの「グローバル管理者」または「ユーザー管理者」のロールを持つアカウント。
  3. Azure AD B2C テナント: 新しい Azure AD B2C テナント。企業の Azure AD テナントとは別のディレクトリです。

ステップバイステップ: Azure AD B2C の構成

B2C テナントを作成し、アプリケーションを登録し、ユーザー フローを構成しましょう。

1. Azure AD B2C テナントの作成

B2C テナントは、顧客の ID を保存する別のディレクトリです。

  1. ブラウザーを開き、Azure portal: https://portal.azure.com に移動します。
  2. 権限を持つアカウントでログインします。必要です。
  3. 上部の検索フィールドに「Azure Active Directory B2C」と入力し、結果からそれを選択します。
  4. 「+ 新しい Azure AD B2C テナントの作成」をクリックします。

  5. B2C テナントを作成します:

    • テナント タイプ: Azure AD B2C テナント
    • 組織名: 組織の名前を入力します (例: MyCompanyB2C)。
    • 初期ドメイン名: 一意のドメイン名を選択します (例: mycompanyab2c.onmicrosoft.com)。
    • 国/地域: 国/地域を選択してください。
    • サブスクリプション: Azure サブスクリプションを選択します。
    • リソース グループ: 新しいリソース グループ (例: rg-b2c) を作成するか、既存のリソース グループを選択します。
  6. 「確認と作成」をクリックし、作成 をクリックします。

    • 説明: B2C テナントの作成には数分かかる場合があります。作成したら、この新しい B2C ディレクトリに切り替えて管理する必要があります。

2. Azure AD B2C へのアプリケーションの登録

認証に Azure AD B2C を使用する各アプリケーションを登録する必要があります。

  1. Azure portal で、Azure AD B2C テナント にいることを確認します (右上隅のディレクトリ セレクターを使用します)。
  2. 左側のナビゲーション ペインで、「管理」の下にある アプリケーション登録 を選択します。
  3. 「+新規登録」をクリックします。

  4. アプリケーションを登録します:

    • 名前: アプリケーションの名前を付けます (例: WebApp-MinhaEmpresa)。
    • サポートされているアカウント タイプ: 「組織ディレクトリまたは ID プロバイダー ディレクトリ内のアカウント (ユーザー フローでユーザーを認証するため)」を選択します。
    • リダイレクト URI (オプション): 「Web」を選択し、ログイン後に認証トークンが送信される URL を入力します (例: ローカル開発の場合は「https://localhost:5001/signin-oidc」、アプリケーションの実稼働 URL)。
    • 権限: 「openid および offline_access 権限に管理者の同意を与える」にチェックを入れます。
  5. [登録] をクリックします。

  6. 登録後、アプリケーション ID (クライアント)ディレクトリ ID (テナント) をメモします。アプリケーションを構成するにはこれらが必要になります。

3. ユーザーフローの作成

ユーザー フローは、登録、ログイン、プロファイル編集、パスワード リセットのための事前定義されたカスタマイズ可能な ID エクスペリエンスです。

  1. Azure AD B2C テナントの左側のナビゲーション ウィンドウで、「ポリシー」の下の [ユーザー フロー] を選択します。
  2. 「+新しいユーザー フロー」をクリックします。

  3. ユーザー フローを作成します:

    • ユーザー フロー タイプ: 「登録してサインイン」を選択します。
    • バージョン: 「推奨」。
    • 名前: 名前を付けます (例: B2C_1_signup_signin)。
    • ID プロバイダー: 「ローカル アカウントの電子メール」 (ソーシャル プロバイダーを統合する場合は、「Google」、「Facebook」など) を選択します。
    • ユーザー属性とトークン クレーム: 登録時に収集する属性 (例: 「電子メール アドレス」、「名」、「姓」) とトークンに含まれるクレームを選択します。
    • 多要素認証 (MFA): 「無効」 (この例では、セキュリティを強化するために有効にすることもできます)。
    • 条件付きアクセス: 無効 (この例の場合)。
  4. [作成] をクリックします。

  5. このプロセスを繰り返して、「パスワード リセット」 (例: 「B2C_1_password_reset」) や「プロファイル編集」 (例: 「B2C_1_profile_edit」) などの他のユーザー フローを作成します。

    • 説明: ユーザー フローは、顧客 ID エクスペリエンスのバックボーンです。これらは、認証プロセス中にユーザーが行う画面と対話のシーケンスを定義します。これらのフローの外観と動作をカスタマイズできます。

4. ユーザー フローのユーザー インターフェイス (UI) のカスタマイズ

アプリケーションのブランドに合わせて、ログイン ページと登録ページの外観をカスタマイズできます。

  1. Azure AD B2C テナントの左側のナビゲーション ウィンドウで、ユーザー フロー を選択します。
  2. 作成したユーザー フローをクリックします (例: B2C_1_signup_signin)。
  3. 左側のナビゲーション ウィンドウで、[ページ レイアウト] を選択します。
  4. カスタム CSS または HTML を使用して、ブランドに合わせて各ページのレイアウト (例: 「統合ログイン ページ」、「ローカル アカウント サインアップ ページ」) をカスタマイズできます。

    • 説明: 高度なカスタマイズの場合、独自の HTML/CSS/JavaScript ファイルを Azure BLOB ストレージ上でホストし、それらを参照できます。彼らはここにいる。

5. Azure AD B2C とアプリケーションの統合

統合には、認証に Azure AD B2C を使用するようにアプリケーションを構成することが含まれます。このプロセスは、アプリケーションのプラットフォームとフレームワークによって異なります。 Web アプリケーションの概念的な例を使用します。

  1. OpenID Connect を使用するようにアプリケーションを構成します: アプリケーションは、Azure AD B2C と通信するために OpenID Connect クライアントを使用する必要があります。
  2. 構成パラメータ: B2C テナントおよび登録済みアプリケーションからの次のパラメータが必要になります。

    • クライアント ID (アプリケーション ID): 登録したアプリケーションの ID (例: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。
    • B2C テナント ID (テナント ID): B2C テナントの名前 (例: mycompanyab2c.onmicrosoft.com)。
    • ユーザー フロー名 (ポリシー名): ログインに使用するユーザー フローの名前 (例: B2C_1_signup_signin)。
    • リダイレクト URI: アプリケーションの登録で構成した URL (例: https://localhost:5001/signin-oidc)。
    • OpenID Connect メタデータ エンドポイント: このエンドポイントは、B2C 構成情報を提供します。通常、形式は「https://.b2clogin.com/.onmicrosoft.com//v2.0/.well-known/openid-configuration」です。

    • 構成例 (ASP.NET Core Web アプリケーションの疑似コード): ```csシャープ // Startup.cs または Program.cs services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme) .AddMicrosoftIdentityWebApp(オプション => { Configuration.Bind("AzureAdB2C", オプション); options.Instance = "https://minhaempresab2c.b2clogin.com"; options.Domain = "mycompanyab2c.onmicrosoft.com"; options.ClientId = ""; options.SignUpSignInPolicyId = "B2C_1_signup_signin"; options.CallbackPath = "/signin-oidc"; options.SignedOutCallbackPath = "/signout-oidc"; options.ClientSecret = ""; // SPA ではない Web アプリのみ }); 「」

    • 説明: Microsoft.Identity.Web ライブラリは、Azure AD B2C と .NET アプリケーションの統合を簡素化します。他のプラットフォームについては、同等の SDK とライブラリがあります。

検証とテスト

認証プロセスとユーザー エクスペリエンスをテストすることが重要です。

1. 登録とログインのユーザー フローのテスト

  1. シナリオ: Azure AD B2C を使用するように構成された Web アプリケーションにアクセスします。新規ユーザーを登録し、新しく作成したアカウントでログインしてみてください。
  2. 予想されるアクション: Azure AD B2C の登録/ログイン ページにリダイレクトされ、アカウントを作成してログインし、アプリケーションに正常にリダイレクトされるはずです。
  3. 検証:
    • Azure portal の B2C テナントで、「管理」の下の ユーザー に移動します。新しいユーザーがリストに表示されるはずです。
    • Azure AD B2C 監査ログをチェックして、登録イベントとログイン イベントを確認します。

2. パスワードのリセットのテスト

  1. シナリオ: パスワード リセット ユーザー フローを使用してユーザーのパスワードをリセットしてみます。
  2. 期待されるアクション: ユーザーはパスワードをリセットし、新しいパスワードでログインできるはずです。
  3. 検証:
    • Azure AD B2C 監査ログをチェックして、パスワード リセット イベントを確認します。

3. Azure AD B2C での監査ログの確認

  1. Azure portal の B2C テナントで、Azure Active Directory > 監視 > 監査ログ に移動します。
  2. Category = Core Directory および Activity = Sign-in または Sign-up でログをフィルターします。
  3. イベントの詳細を確認して、認証操作が成功したことを確認します。

セキュリティのヒントとベスト プラクティス

  • MFA を有効にする: ログイン ユーザー フロー、特に特権または機密データへのアクセスを持つアカウントに対して多要素認証 (MFA) を常に有効にします。 MFA は、資格情報侵害攻撃に対する最も効果的な防御手段の 1 つです。
  • 条件付きアクセスを使用する: Azure AD B2C を条件付きアクセスと統合して、未知の場所や非準拠デバイスからのログインに MFA を要求するなど、リスクベースのセキュリティ ポリシーを適用します [3]。
  • 個人情報保護:Azure AD B2C Identity Protection 機能を使用して、資格情報の漏洩や異常なログインなどの ID リスクを検出して修復します。
  • 安全な UI カスタマイズ: ログイン/登録ページをカスタマイズするときは、カスタム HTML/CSS/JavaScript がセキュリティの脆弱性 (XSS など) を引き起こさないようにしてください。 CORS が正しく構成された安全な BLOB ストレージを使用します。
  • ユーザー属性を制限する: アプリケーションとビジネスに絶対に必要なユーザー属性のみを収集します。これにより、データ漏洩のリスクが最小限に抑えられ、コンプライアンスに役立ちます。
  • ログ監視: Azure AD B2C 監査ログとサインイン ログを継続的に監視して、不審なアクティビティや攻撃の試みを検出します。
  • クライアント シークレットのローテーション: アプリケーションでクライアント シークレットを使用する場合は、定期的にクライアント シークレットをローテーションし、安全に保存してください (例: Azure Key Vault)。
  • ソーシャル プロバイダーとの統合: Google や Facebook などのソーシャル アイデンティティ プロバイダーを統合する場合は、それらを正しく構成し、各プロバイダーのセキュリティ ガイドラインに従ってください。

一般的なトラブルシューティング

  • B2C テナント作成時のエラー:
    • Azure サブスクリプションに必要なアクセス許可があることを確認してください。
    • 初期ドメイン名が一意であり、使用されていないことを確認してください。
  • ログイン/登録後のリダイレクト エラー:
    • Azure AD B2C のアプリケーション登録で構成された「リダイレクト URI」がアプリケーションの戻り URL と正確に一致していることを確認します。
    • プロトコル (HTTP/HTTPS) とポートが正しいことを確認してください。
  • ユーザー フローが機能しないか、エラーが表示されます:
    • ユーザー フローが正しく作成され、アイデンティティ プロバイダーとユーザー属性が選択されていることを確認します。
    • Azure portal からユーザー フローを直接テストし (ユーザー フロー ページで「ユーザー フローの実行」をクリック)、問題を切り分けます。
    • 監査ログでエラー メッセージを確認します。
  • UI のカスタマイズは適用されません:
    • カスタム CSS/HTML ファイルの URL が正しく、パブリックにアクセスできることを確認します (BLOB ストレージでホストされている場合)。
    • b2clogin.com ドメインからのアクセスを許可するために、BLOB ストレージ上で CORS が正しく構成されていることを確認してください。
    • 最新の変更がロードされるようにブラウザのキャッシュをクリアしてください。
  • アプリケーション統合の問題:
    • 顧客 IDB2C テナント IDユーザー フロー名 がアプリケーションで正しく構成されていることを確認してください。
    • アプリケーションの認証ライブラリが最新であることを確認してください。
    • アプリケーション ログで認証エラー メッセージを確認してください。

結論

Azure AD B2C は、顧客の ID を管理および保護するための強力かつ柔軟なソリューションであり、ユーザー エクスペリエンスの向上と堅牢なセキュリティを提供します。複雑な ID 管理を Microsoft に委任することで、組織は顧客データの安全性とコンプライアンスを確保しながら、中核となるビジネスに集中できます。 Azure AD B2C の利点を最大化するには、ユーザー フローの慎重な実装、セキュリティのベスト プラクティスとの統合、継続的な監視が重要です。この実践的なガイドを使用すると、セキュリティ専門家と IT 管理者は、Azure AD B2C の構成、検証、管理を行うための十分な準備を整え、顧客の ID を保護し、アプリケーションの全体的なセキュリティ体制を強化できます。


参考文献:

[1] Microsoft Learn。 Azure Active Directory B2C ドキュメント。入手可能場所: https://learn.microsoft.com/pt-br/azure/active-directory-b2c/ [2] Microsoft Learn。 Azure AD B2C のベスト プラクティス。入手可能場所: https://learn.microsoft.com/pt-br/azure/active-directory-b2c/best-practices [3] Microsoft Learn。 Azure AD B2C の ID 保護と条件付きアクセス。入手可能場所: https://learn.microsoft.com/pt-br/azure/active-directory-b2c/conditional-access-identity-protection-overview条件付きアクセス ID 保護の概要) [4] Microsoft Learn。 Web アプリケーションを Azure Active Directory B2C に登録します。入手可能場所: https://learn.microsoft.com/pt-br/azure/active-directory-b2c/tutorial-register-applications [5] Microsoft Learn。 ユーザー フローとカスタム ポリシーの作成 - Azure Active Directory B2C。入手可能場所: https://learn.microsoft.com/pt-br/azure/active-directory-b2c/tutorial-create-user-flows [6] Microsoft Learn。 Azure AD B2C を使用してサンプル Web アプリケーションで認証を構成します。入手可能場所: https://learn.microsoft.com/pt-br/azure/active-directory-b2c/configure-authentication-sample-web-app [7] Microsoft Learn。 Azure AD B2C の Identity Protection を使用してリスクを調査します。入手可能場所: https://learn.microsoft.com/pt-br/azure/active-directory-b2c/identity-protection-investigate-risk