> ## Documentation Index
> Fetch the complete documentation index at: https://docs.casebender.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft Sentinel

> CaseBender と Microsoft Sentinel の双方向統合。インシデントの取り込み（pull または push）とディスポジション同期を提供します。

## 概要

Microsoft Sentinel 統合（**INT-009**）は、Sentinel のインシデントを CaseBender に取り込み、ケースが
クローズされたときに Sentinel へディスポジションを返すことができます。

<CardGroup cols={2}>
  <Card title="インバウンド取り込み" icon="arrow-right-to-bracket">
    Sentinel のインシデントは、スケジュールに基づいて **自動的にプル**（推奨）される
    か、Webhook / Logic App で **プッシュ** され、その後、正規化されてアラートに変換
    されます。
  </Card>

  <Card title="アウトバウンド同期" icon="arrow-right-from-bracket">
    CaseBender でリンクされたケースがクローズされると、Sentinel のインシデントのステー
    タスと分類が監査コメント付きで更新されます。
  </Card>
</CardGroup>

<Tip>
  **推奨: 自動ポーリングを有効にしてください。** CaseBender はスケジュールに基づき、
  Log Analytics ワークスペースから直接新しいインシデントをプルできます。Logic App、
  データコネクタ、インバウンドエンドポイントは不要です。
  [自動ポーリング](#インバウンド自動ポーリング) を参照してください。
</Tip>

<Note>
  この統合は **Azure Security Insights REST API** を使用し、client-credentials
  フロー（スコープ `management.azure.com`）で **Azure AD（Entra ID）アプリケーション**
  を用いて認証します。
</Note>

## 機能

| 機能                     | 方向      | 説明                                                                     |
| ---------------------- | ------- | ---------------------------------------------------------------------- |
| **インシデントのポーリング（pull）** | インバウンド  | CaseBender がスケジュールに基づき Security Insights API を照会し、新しいインシデントを自動的に取り込みます |
| インシデントの取り込み（push）      | インバウンド  | Sentinel のインシデントが Webhook / Logic App でプッシュされます                        |
| 観測対象とエンティティの抽出         | インバウンド  | エンティティがインシデントから抽出されます                                                  |
| ディスポジション同期             | アウトバウンド | ケースクローズ時にインシデントの `status` + `classification` + コメントを送信                 |
| 接続テスト                  | 双方向     | OAuth2 認証情報とワークスペースアクセスを検証                                             |

## 前提条件

<Steps>
  <Step title="Azure AD アプリケーションを登録">
    [Microsoft Entra 管理センター](https://entra.microsoft.com)でアプリケーションを登録し、
    **client secret** を作成します。**Directory (tenant) ID**、**Application (client) ID**、
    secret の値をメモします。
  </Step>

  <Step title="ワークスペースのロールを割り当て">
    アプリケーションに、Sentinel が有効な Log Analytics ワークスペースに対して **Microsoft Sentinel
    Reader** ロール（インバウンド用）を付与します。アウトバウンドクローズには **Microsoft Sentinel
    Responder** を付与します。
  </Step>

  <Step title="ワークスペースの座標を収集">
    **Subscription ID**、**Resource Group**、**Log Analytics ワークスペース名** をメモします。
  </Step>

  <Step title="ネットワーク送信">
    CaseBender のポーラーが `login.microsoftonline.com` と `management.azure.com` に到達できる必要が
    あります。
  </Step>
</Steps>

## CaseBender で統合を構成

<Steps>
  <Step title="統合カタログを開く">
    **Settings → Integrations → Create** に移動し、**SIEM** カテゴリの **Microsoft Sentinel** を
    選択します。
  </Step>

  <Step title="Azure 認証情報とワークスペースを入力">
    | フィールド                        | 説明                          |
    | ---------------------------- | --------------------------- |
    | Azure Tenant ID              | Directory (tenant) ID       |
    | Application (Client) ID      | アプリ登録の client ID            |
    | Client Secret                | client secret の値            |
    | Subscription ID              | ワークスペースを含む Azure サブスクリプション  |
    | Resource Group               | ワークスペースのリソースグループ            |
    | Log Analytics Workspace Name | ポーリング対象の Sentinel 対応ワークスペース |
  </Step>

  <Step title="自動ポーリングを有効にする（推奨）">
    | オプション                         | 効果                                    |
    | ----------------------------- | ------------------------------------- |
    | `pollingEnabled`              | Sentinel インシデントのスケジュール取得を有効化          |
    | `pollingIntervalMinutes`      | ポーリング間隔（既定 `5`、範囲 1–1440）             |
    | `pollingInitialLookbackHours` | 初回実行時、この範囲内に変更されたインシデントを取り込む（既定 `24`） |
    | `pollMaxItemsPerRun`          | 実行あたりの取り込み件数の安全上限（既定 `500`）           |
  </Step>

  <Step title="ケースの自動作成を構成">
    | オプション                | 効果                                                                   |
    | -------------------- | -------------------------------------------------------------------- |
    | `autoCreateCases`    | 取り込んだ各インシデントを **ケース** に昇格（インシデント名で重複排除）。無効の場合、インシデントはアラート受信トレイに留まります |
    | `minSeverityForCase` | この深刻度以上の場合のみケースを自動作成                                                 |
  </Step>
</Steps>

## インバウンド（自動ポーリング）

<Steps>
  <Step title="スケジュール取得">
    各間隔で、CaseBender は `properties/lastModifiedTimeUtc` が前回のカーソルより大きいワークスペース
    のインシデントを昇順で列挙します。初回実行時は `pollingInitialLookbackHours` 以内に変更された
    インシデントが取り込まれます。
  </Step>

  <Step title="カーソル + 重複排除">
    CaseBender は統合ごとのカーソルを最新の `lastModifiedTimeUtc` まで進めます。インシデントは
    **インシデント名で重複排除** されるため、ウィンドウが重なっても重複は作成されません。
  </Step>

  <Step title="正規化">
    各インシデントは CaseBender のアラートに正規化され、アウトバウンドクローズが後で参照できるよう
    Sentinel インシデントの識別子が保持されます。
  </Step>
</Steps>

<Info>
  ポーリングは CaseBender のバックグラウンドポーリングサービスで実行されます。`login.microsoftonline.com`
  と `management.azure.com` に（直接またはプロキシ経由で）到達できることを確認してください。
</Info>

## アウトバウンド: Sentinel へのディスポジション同期

リンクされたケースがクローズされると、CaseBender は Sentinel インシデントの `status`（`Closed` へ）と
`classification` を更新し、監査コメントを追加します。アウトバウンドには **Microsoft Sentinel Responder**
ロールが必要です。

## セキュリティ上の考慮事項

* **最小権限** — インバウンドのみの場合は **Sentinel Reader** を付与し、アウトバウンドクローズを有効に
  する場合のみ **Sentinel Responder** を追加します。
* **シークレットの取り扱い** — 組織のポリシーに従って client secret をローテーションしてください。
* **ネットワーク** — 送信を `login.microsoftonline.com` と `management.azure.com` に制限してください。

## トラブルシューティング

<AccordionGroup>
  <Accordion title="認証が失敗する">
    tenant/client の ID と secret、およびアプリケーションがワークスペースに対して Sentinel Reader ロール
    を持っていることを確認してください。subscription ID、resource group、ワークスペース名が正しいことを
    確認します。
  </Accordion>

  <Accordion title="ポーリングは有効だがインシデントが表示されない">
    **Enable automatic polling** がオンで、ワークスペースの座標が正しいことを確認してください。ポーラー
    が `management.azure.com` に到達できることを確認します。初回実行時は `pollingInitialLookbackHours`
    以内のインシデントのみが取り込まれます。

    **CaseBender のすべてのサービスが稼働していることを確認してください** — Docker では
    `docker compose ps` で `worker` と `misp-processor` サービスが `Up` である必要があります。
  </Accordion>

  <Accordion title="ケースのクローズが Sentinel を更新しない">
    アプリケーションに Sentinel Responder ロールがあり、ケースが Sentinel インシデントにリンクされて
    いることを確認してください。同期結果はケースのタイムラインで確認できます。
  </Accordion>
</AccordionGroup>

## 関連ドキュメント

* [統合の概要](./introduction.mdx)
* [Microsoft Sentinel REST API](https://learn.microsoft.com/en-us/rest/api/securityinsights/)
