次の方法で共有


Azure Monitor を使用して Azure AD B2C を監視する

Von Bedeutung

2025 年 5 月 1 日より、Azure AD B2C は新規のお客様向けに購入できなくなります。 詳細については、FAQ を参照してください

Azure Monitor を使用して、Azure Active Directory B2C (Azure AD B2C) サインイン ログと 監査ログ をさまざまな監視ソリューションにルーティングします。 ログを長期間使用するために保持することも、サードパーティのセキュリティ情報およびイベント管理 (SIEM) ツールと統合して、環境に関する分析情報を得ることができます。

ログイベントは、次の場所にルーティングできます。

Azure Monitor

Azure AD B2C ログを別の監視ソリューションまたはリポジトリに転送する予定の場合は、Azure AD B2C ログに個人データが含まれていることを考慮してください。 このようなデータを処理する場合は、個人データに対して適切なセキュリティ対策を確実に講じてください。 これには、適切な技術的または組織的な手段を使用した、未承認または違法な処理に対する保護が含まれます。

この記事では、ログを Azure Log Analytics ワークスペースに転送する方法について説明します。 その後、ダッシュボードを作成したり、Azure AD B2C ユーザーのアクティビティに基づくアラートを作成したりできます。

このビデオでは、Azure Monitor を使用して Azure AD B2C の監視を構成する方法について説明します。

デプロイの概要

Azure AD B2C では 、Microsoft Entra 監視が使用されます。 Microsoft Entra テナントとは異なり、Azure AD B2C テナントにはサブスクリプションを関連付けることはできません。 そのため、Azure AD B2C とログの送信先である Log Analytics の統合を有効にするために、追加の手順を実行する必要があります。 Azure AD B2C テナント内の Microsoft Entra ID で 診断設定 を有効にするには、 Azure Lighthouse を使用して リソースを委任し、Azure AD B2C ( サービス プロバイダー) が Microsoft Entra ID ( 顧客) リソースを管理できるようにします。

ヒント

Azure Lighthouse は、通常、複数の顧客のリソースを管理するために使用されます。 ただし、 独自の複数のMicrosoft Entraテナントを持つ企業内のリソースを管理するためにも使用できます。これは、単一のリソースグループの管理のみを委任することを除いて、ここで行っていることです。

この記事の手順を完了すると、新しいリソース グループ (ここでは azure-ad-b2c-monitor) が作成され、Azure AD B2C ポータルの Log Analytics ワークスペースを含む同じリソース グループにアクセスできるようになります。 また、Azure AD B2C から Log Analytics ワークスペースにログを転送することもできます。

このデプロイ中に、Azure AD B2C ディレクトリ内のユーザーまたはグループを承認して、Azure サブスクリプションを含むテナント内の Log Analytics ワークスペース インスタンスを構成します。 承認を作成するには、Log Analytics ワークスペースを含むサブスクリプションに Azure Resource Manager テンプレートをデプロイします。

次の図は、Microsoft Entra ID と Azure AD B2C テナントで構成するコンポーネントを示しています。

リソース・グループ・プロジェクション

このデプロイでは、ログが生成される Azure AD B2C テナントを構成します。 また、Log Analytics ワークスペースがホストされる Microsoft Entra テナントも構成します。 使用する Azure AD B2C アカウント (管理者アカウントなど) には、Azure AD B2C テナントのグローバル 管理者 ロールを割り当てる必要があります。 デプロイの実行に使用する Microsoft Entra アカウントには、Microsoft Entra サブスクリプション の所有者ロールが 割り当てられている必要があります。 また、説明に従って各手順を完了するときに、正しいディレクトリにサインインしていることを確認することも重要です。

要約すると、Azure Lighthouse を使用して、Azure AD B2C テナント内のユーザーまたはグループが、別のテナント (Microsoft Entra テナント) に関連付けられているサブスクリプション内のリソース グループを管理できるようにします。 この承認が完了すると、サブスクリプションとログ分析ワークスペースを Azure AD B2C の診断設定でターゲットとして選択できます。

[前提条件]

1. リソースグループを作成または選択する

まず、Azure AD B2C からデータを受信する宛先 Log Analytics ワークスペースを含むリソース グループを作成するか、選択します。 Azure Resource Manager テンプレートをデプロイするときに、リソース グループ名を指定します。

  1. Azure portal にサインインします。
  2. 複数のテナントにアクセスできる場合は、上部メニューの [設定] アイコンを選択して、[ ディレクトリ + サブスクリプション ] メニューから Microsoft Entra ID テナントに切り替えます。
  3. リソース グループを作成 するか、既存のものを選択します。 この例では、 azure-ad-b2c-monitor という名前のリソース グループを使用します。

2. Log Analytics ワークスペースを作成する

Log Analytics ワークスペースは、Azure Monitor ログ データ用の固有の環境です。 この Log Analytics ワークスペースを使用して、Azure AD B2C 監査ログからデータを収集し、クエリやブックで視覚化したり、アラートを作成したりします。

  1. Azure portal にサインインします。
  2. 複数のテナントにアクセスできる場合は、上部メニューの [設定] アイコンを選択して、[ ディレクトリ + サブスクリプション ] メニューから Microsoft Entra ID テナントに切り替えます。
  3. Log Analytics ワークスペースを作成します。 この例では、azure-ad-b2c-monitor という名前のリソース グループで、AzureAdB2C という名前の Log Analytics ワークスペースを使用します。

3. リソース管理の委任

この手順では、Azure AD B2C テナントを サービス プロバイダーとして選択します。 また、Microsoft Entra テナント内のグループに適切な Azure 組み込みロールを割り当てるために必要な承認も定義します。

3.1 Azure AD B2C テナント ID を取得する

まず、Azure AD B2C ディレクトリの テナント ID (ディレクトリ ID とも呼ばれます) を取得します。

  1. Azure portal にサインインします。
  2. 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
  3. [ Microsoft Entra ID] を選択し、[ 概要] を選択します。
  4. テナント ID を記録します。

3.2 セキュリティグループを選択する

次に、サブスクリプションを含むディレクトリで前に作成したリソース グループにアクセス許可を付与する Azure AD B2C グループまたはユーザーを選択します。

管理を容易にするために、各ロールに Microsoft Entra ユーザー グループ を使用することをお勧めします。これにより、そのユーザーに直接アクセス許可を割り当てるのではなく、グループに個々のユーザーを追加または削除できます。 このチュートリアルでは、セキュリティ グループを追加します。

Von Bedeutung

Microsoft Entra グループのアクセス許可を追加するには、[グループの種類][セキュリティ] に設定する必要があります。 このオプションは、グループの作成時に選択します。 詳細については、「Microsoft Entra ID を使用した基本グループの作成およびメンバーの追加」を参照してください。

  1. Azure AD B2C ディレクトリで [Microsoft Entra ID] を選択したまま、 [グループ] を選択し、グループを選択します。 既存のグループがない場合は、 セキュリティ グループを作成し、メンバーを追加します。 詳細については、「 Microsoft Entra ID を使用して基本グループを作成し、メンバーを追加する」の手順に従ってください。
  2. [概要] を選択し、グループのオブジェクト ID を記録します。

3.3 Azure Resource Manager テンプレートを作成する

Azure Lighthouse でカスタム認可と委任を作成するには、Azure Resource Manager テンプレートを使用します。 このテンプレートは、前に作成した Microsoft Entra リソース グループ ( azure-ad-b2c-monitor など) へのアクセス権を Azure AD B2C に付与します。 [ Deploy to Azure]\(Azure にデプロイ \) ボタンを使用して GitHub サンプルからテンプレートをデプロイします。これにより、Azure portal が開き、ポータルでテンプレートを直接構成してデプロイできます。 これらの手順では、Microsoft Entra テナント (Azure AD B2C テナントではない) にサインインしていることを確認します。

  1. Azure portal にサインインします。

  2. 複数のテナントにアクセスできる場合は、上部メニューの [設定] アイコンを選択して、[ ディレクトリ + サブスクリプション ] メニューから Microsoft Entra ID テナントに切り替えます。

  3. [Azure にデプロイ] ボタンを使用して Azure portal を開き、ポータルで直接テンプレートをデプロイします。 詳細については、 Azure Resource Manager テンプレートの作成に関するページを参照してください。

    Azure に展開する

  4. [ カスタム デプロイ ] ページで、次の情報を入力します。

    フィールド 定義
    サブスクリプション azure-ad-b2c-monitor リソース グループが作成された Azure サブスクリプションを含むディレクトリを選択します。
    リージョン リソースがデプロイされるリージョンを選択します。
    [Msp Offer Name](Msp オファー名) この定義を説明する名前。 たとえば、 Azure AD B2C 監視です。 これは、Azure Lighthouse に表示される名前です。 MSP オファー名は、Microsoft Entra ID で一意である必要があります。 複数の Azure AD B2C テナントを監視するには、異なる名前を使用します。
    Msp オファーの説明 プランの簡単な説明。 たとえば、 Azure AD B2C で Azure Monitor を有効にします
    テナント ID で管理 Azure AD B2C テナントの テナント ID (ディレクトリ ID とも呼ばれます)。
    承認 Microsoft Entra ID principalIdprincipalIdDisplayName、Azure roleDefinitionId を含むオブジェクトの JSON 配列を指定します。 principalIdは、この Azure サブスクリプションのリソースにアクセスできる B2C グループまたはユーザーのオブジェクト ID です。 このチュートリアルでは、前に記録したグループのオブジェクト ID を指定します。 roleDefinitionIdの場合は、共同作成者ロールの組み込みロール値 (b24988ac-6180-42a0-ab88-20f7382dd24c) を使用します。
    RG 名 Microsoft Entra テナントで以前に作成したリソース グループの名前。 たとえば、「 azure-ad-b2c-monitor 」のように入力します。

    次の例は、1 つのセキュリティ グループでの承認配列を示しています。

    [
      {
        "principalId": "<Replace with group's OBJECT ID>",
        "principalIdDisplayName": "Azure AD B2C tenant administrators",
        "roleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c"
      }
    ]
    

テンプレートをデプロイした後、リソース プロジェクションが完了するまでに数分 (通常 5 分以内) かかることがあります。 Microsoft Entra テナントでデプロイを確認し、リソース プロジェクションの詳細を取得できます。 詳細については、「 サービス プロバイダーの表示と管理」を参照してください。

4. サブスクリプションを選択します

テンプレートをデプロイし、リソース プロジェクションが完了するまで数分待った後、次の手順に従ってサブスクリプションを Azure AD B2C ディレクトリに関連付けます。

ポータル設定 |[ディレクトリ + サブスクリプション] ページで、 [現在の + 委任されたディレクトリ] で Azure AD B2C テナントと Microsoft Entra テナントが選択されていることを確認します。

  1. Azure portal からサインアウトし、Azure AD B2C 管理者アカウントで再度サインインします。 このアカウントは、 リソース管理の委任 手順で指定したセキュリティ グループのメンバーである必要があります。 サインアウトしてもう一度サインインすると、次の手順でセッション資格情報が更新されます。

  2. ポータルのツール バーの [設定] アイコンを選択します。

  3. ポータル設定 |[ディレクトリ + サブスクリプション] ページの [ディレクトリ名] の一覧で、Azure サブスクリプションと作成した azure-ad-b2c-monitor リソース グループを含む Microsoft Entra ID ディレクトリを見つけて、[切り替え] を選択します。

  4. 正しいディレクトリを選択し、Azure サブスクリプションが [既定のサブスクリプション] フィルターに一覧表示されて選択されていることを確認します。

    デフォルトのサブスクリプションフィルターのスクリーンショット

5. 診断設定を構成する

診断設定では、リソースのログとメトリックを送信する場所を定義します。 使用できる宛先は次のとおりです。

この例では、Log Analytics ワークスペースを使用してダッシュボードを作成します。

5.1 診断設定の作成

Azure portal で 診断設定を作成する 準備ができました。

Azure AD B2C アクティビティ ログの監視設定を構成するには、次のようにします。

  1. Azure AD B2C 管理アカウントで Azure portal にサインインします。 このアカウントは、「 セキュリティグループの選択 」ステップで指定したセキュリティグループのメンバーである必要があります。

  2. 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。

  3. [Microsoft Entra ID] を選択します

  4. [監視][診断設定] を選択します。

  5. リソースに対する既存の設定がある場合は、構成済みの設定の一覧が表示されます。 [ 診断設定の追加] を選択して新しい設定を追加するか、[ 設定の編集] を選択して既存の設定を編集します。 各設定には、各送信先の種類を 1 つだけ含めることができます。

    Azure portal の診断設定ウィンドウのスクリーンショット。

  6. 設定にまだ名前がない場合は、名前を付けます。

  7. AuditLogsSignInLogs を選択します

  8. [ Log Analytics ワークスペースに送信] を選択し、次の操作を行います。

    1. サブスクリプション でサブスクリプションを選択します。
    2. [Log Analytics ワークスペース] で、前に作成したワークスペースの名前 (AzureAdB2C など) を選択します。

    現在、Azure AD B2C テナントでサポートされているのは、 AuditLogsSignInLogs の診断設定のみです。

  9. 保存 を選択します。

イベントが生成されてから Log Analytics ワークスペースに表示されるまでに最大 15 分かかることがあります。 また、データの陳腐化に影響を与え、レポートで重要な役割を果たす可能性がある Active Directory レポートの待機時間についても説明します。

Azure AD B2C ディレクトリで Azure Monitor を使用するように診断設定を設定するには、委任されたリソース管理を設定する必要があります」というエラー メッセージが表示された場合は、 セキュリティ グループのメンバー であるユーザーでサインインし、 サブスクリプションを選択してください

6. データを視覚化する

これで、Log Analytics ワークスペースを構成して、データを視覚化し、アラートを構成できるようになりました。 これらの構成は、Microsoft Entra テナントと Azure AD B2C テナントの両方で行うことができます。

6.1 クエリの作成

ログ クエリは、Azure Monitor ログ内に収集されたデータの価値を最大限に使用するのに役立ちます。 強力なクエリ言語により、複数のテーブルのデータを結合したり、大量のデータ セットを集約したり、最小限のコードによって複雑な操作を実行したりできます。 サポートデータが収集され、適切なクエリの作成方法を理解している限り、事実上、あらゆる質問に答え、分析を実行できます。 詳細については、「Azure Monitor でログ クエリの使用を開始する」を参照してください。

  1. Azure portal にサインインします。

  2. 複数のテナントにアクセスできる場合は、上部メニューの [設定] アイコンを選択して、[ ディレクトリ + サブスクリプション ] メニューから Microsoft Entra ID テナントに切り替えます。

  3. Log Analytics ワークスペース ウィンドウで、[ログ] を選択します

  4. クエリ エディターで、次の Kusto クエリ言語 クエリを貼り付けます。 このクエリは、過去 x 日間の操作によるポリシーの使用状況を示します。 既定の期間は、90 日間 (90d) に設定されています。 このクエリは、ポリシーによってトークン/コードが発行される操作のみに注目していることに注意してください。

    AuditLogs
    | where TimeGenerated  > ago(90d)
    | where OperationName contains "issue"
    | extend  UserId=extractjson("$.[0].id",tostring(TargetResources))
    | extend Policy=extractjson("$.[1].value",tostring(AdditionalDetails))
    | summarize SignInCount = count() by Policy, OperationName
    | order by SignInCount desc  nulls last
    
  5. [実行] を選択します。 クエリの結果が画面の下部に表示されます。

  6. 後で使用するためにクエリを保存するには、[ 保存] を選択します。

    Log Analytics ログエディター

  7. 次の詳細情報を入力します。

    • [名前] - クエリの名前を入力します。
    • [名前を付けて保存] - [ queryを選択します。
    • カテゴリ - Logを選択します。
  8. 保存 を選択します。

render 演算子を使用して、クエリを変更してデータを視覚化することもできます。

AuditLogs
| where TimeGenerated  > ago(90d)
| where OperationName contains "issue"
| extend  UserId=extractjson("$.[0].id",tostring(TargetResources))
| extend Policy=extractjson("$.[1].value",tostring(AdditionalDetails))
| summarize SignInCount = count() by Policy
| order by SignInCount desc  nulls last
| render  piechart

Log Analytics ログ エディターの円グラフ

その他のサンプルについては、Azure AD B2C SIEM GitHub リポジトリを参照してください。

6.2 ワークブックの作成

ワークブックは、Azure ポータル内でデータを分析し、豊かな視覚的レポートを作成するための柔軟なキャンバスを提供します。 これにより、Azure 全体から複数のデータ ソースを活用し、それらを統合された対話型エクスペリエンスに組み合わせることができます。 詳細については、「 Azure Monitor ブック」を参照してください

以下の手順に従って、JSON ギャラリー テンプレートを使用して新しいワークブックを作成します。 このブックは、Azure AD B2C テナントの User Insights and Authentication ダッシュボードを提供します。

  1. Azure portal にサインインします。

  2. 複数のテナントにアクセスできる場合は、上部メニューの [設定] アイコンを選択して、[ ディレクトリ + サブスクリプション ] メニューから Microsoft Entra ID テナントに切り替えます。

  3. Log Analytics ワークスペース ウィンドウで、 [ブック] を選択します。

  4. ツールバーから [+ 新規 ] オプションを選択して、新しいブックを作成します。

  5. [新しいワークブック] ページで、ツールバーの >] オプションを使用して [詳細エディター] を選択します。

    ギャラリーテンプレート

  6. [ギャラリー テンプレート] を選択します。

  7. ギャラリー テンプレートの JSON を Azure AD B2C 基本ブックのコンテンツに置き換えます。

  8. [適用] ボタンを使用してテンプレートを適用します。

  9. ツールバーから [編集完了 ] ボタンを選択して、ワークブックの編集を終了します。

  10. 最後に、ツールバーの [保存 ] ボタンを使用してブックを保存します。

  11. [タイトル] を指定します (Azure AD B2C ダッシュボードなど)。

  12. 保存 を選択します。

    ワークブックを保存する

ワークブックには、ダッシュボードの形式でレポートが表示されます。

ワークブックの最初のダッシュボード

ブックの 2 番目のダッシュボード

ブックの 3 番目のダッシュボード

アラートを作成する

アラートは Azure Monitor のアラート ルールによって作成され、保存されたクエリやカスタム ログ検索を定期的に自動的に実行できます。 アラートは、特定のパフォーマンス メトリックに基づいて、または特定のイベントが発生したときに作成できます。 また、イベントが不在の場合や、特定の時間枠内に多数のイベントが発生したときにアラートを作成することもできます。 たとえば、アラートを使用して、サインインの平均回数が特定のしきい値を超えたときに通知を受け取ることができます。 詳細については、アラートの作成に関するページをご覧ください。

次の手順を使用して新しい Azure アラートを作成し、前の期間と比較して Total Requests が 25% 減少するたびに電子メール通知を送信します。 アラートは 5 分ごとに実行され、その前の 1 時間と比較して最後の 1 時間の低下を探します。 アラートは、Kusto クエリ言語を使用して作成されます。

  1. Azure portal にサインインします。

  2. 複数のテナントにアクセスできる場合は、上部メニューの [設定] アイコンを選択して、[ ディレクトリ + サブスクリプション ] メニューから Microsoft Entra ID テナントに切り替えます。

  3. Log Analytics ワークスペースから、 [ログ] を選択します。

  4. このクエリを使用して、新しい Kusto クエリ を作成します。

    let start = ago(2h);
    let end = now();
    let threshold = -25; //25% decrease in total requests.
    AuditLogs
    | serialize TimeGenerated, CorrelationId, Result
    | make-series TotalRequests=dcount(CorrelationId) on TimeGenerated from start to end step 1h
    | mvexpand TimeGenerated, TotalRequests
    | serialize TotalRequests, TimeGenerated, TimeGeneratedFormatted=format_datetime(todatetime(TimeGenerated), 'yyyy-MM-dd [HH:mm:ss]')
    | project   TimeGeneratedFormatted, TotalRequests, PercentageChange= ((toreal(TotalRequests) - toreal(prev(TotalRequests,1)))/toreal(prev(TotalRequests,1)))*100
    | order by TimeGeneratedFormatted desc
    | where PercentageChange <= threshold   //Trigger's alert rule if matched.
    
  5. [実行] を選択して、クエリをテストします。 過去 1 時間以内にリクエストの合計が 25% 以上減少した場合は、結果が表示されます。

  6. このクエリに基づいてアラート ルールを作成するには、ツール バーで使用できる [+ 新しいアラート ルール ] オプションを使用します。

  7. [アラート ルールの作成] ページで、[条件名] を選択します

  8. [ 信号ロジックの構成 ] ページで、次の値を設定し、[ 完了] ボタンを使用して変更を保存します。

    • アラート ロジック: 結果の数0 より大きい値に設定します。
    • 評価基準: [期間 (分)] に 120 を選択し、[頻度 (分)] に 5 を選択します

    アラート ルールの条件を作成する

アラートが作成されたら、 Log Analytics ワークスペース に移動し、 [アラート] を選択します。 このページには、 時間範囲 オプションで設定された期間にトリガーされたすべてのアラートが表示されます。

アクション グループを構成する

Azure Monitor および Service Health のアラートでは、アクション グループを使用して、アラートがトリガーされたことをユーザーに通知します。 音声通話、SMS、電子メールの送信を含めることができます。または、さまざまな種類の自動アクションをトリガーします。 Azure portal でアクション グループを作成および管理するガイダンスに従います

アラート通知メールの例を次に示します。

メール通知

複数のテナント

複数の Azure AD B2C テナント ログを同じ Log Analytics ワークスペース (または Azure ストレージ アカウント、またはイベント ハブ) にオンボードするには、 Msp オファー名 の値が異なる個別のデプロイが必要です。 Log Analytics ワークスペースが、「 リソース グループの作成または選択」で構成したリソース グループと同じリソース グループにあることを確認します。

複数の Log Analytics ワークスペースを操作する場合は、 クロス ワークスペース クエリ を使用して、複数のワークスペース間で機能するクエリを作成します。 たとえば、次のクエリは、同じカテゴリ (認証など) に基づいて、異なるテナントからの 2 つの監査ログの結合を実行します。

workspace("AD-B2C-TENANT1").AuditLogs
| join  workspace("AD-B2C-TENANT2").AuditLogs
  on $left.Category== $right.Category

データ保持期間の変更

Azure Monitor ログは、企業内の、または Azure にデプロイされた任意のソースから毎日大量のデータを収集し、インデックスを付けて、格納する処理をスケーリングおよびサポートするように設計されています。 既定では、ログは 30 日間保持されますが、データ保持期間は最大 2 年間まで延長できます。 Azure Monitor ログを使用して使用状況とコストを管理する方法について説明します。 価格レベルを選択したら、 データ保有期間を変更できます。

監視データ収集を無効にする

Log Analytics ワークスペースのログ収集を停止するには、作成した診断設定を削除します。 ワークスペース内で既に収集されたログ データを保持するための料金は引き続き発生します。 収集した監視データが不要になった場合は、Log Analytics ワークスペースと、Azure Monitor 用に作成したリソース グループを削除できます。 Log Analytics ワークスペースを削除すると、ワークスペース内のすべてのデータが削除され、追加でデータ保持料金が発生するのを防ぎます。

Log Analytics ワークスペースとリソース グループを削除する

  1. Azure portal にサインインします。
  2. 複数のテナントにアクセスできる場合は、上部メニューの [設定] アイコンを選択して、[ ディレクトリ + サブスクリプション ] メニューから Microsoft Entra ID テナントに切り替えます。
  3. Log Analytics ワークスペースを含むリソース グループを選びます。 この例では、 azure-ad-b2c-monitor という名前のリソース グループと AzureAdB2C という名前の Log Analytics ワークスペースを使用します。
  4. Logs Analytics ワークスペースを削除します
  5. [ 削除 ] ボタンを選択して、リソース グループを削除します。

次のステップ