> ## 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

> Intégration bidirectionnelle entre CaseBender et Microsoft Sentinel pour l'ingestion des incidents (pull ou push) et la synchronisation des dispositions.

## Présentation

L'intégration Microsoft Sentinel (**INT-009**) ingère les incidents Sentinel dans CaseBender et
peut renvoyer les dispositions de cas vers Sentinel lorsqu'un cas est clôturé.

<CardGroup cols={2}>
  <Card title="Ingestion entrante" icon="arrow-right-to-bracket">
    Les incidents Sentinel sont ingérés — soit **extraits automatiquement** de
    façon planifiée (recommandé), soit **poussés** via webhook / Logic App — puis
    normalisés et convertis en alertes.
  </Card>

  <Card title="Synchronisation sortante" icon="arrow-right-from-bracket">
    Lorsqu'un cas lié est clôturé dans CaseBender, le statut et la classification
    de l'incident Sentinel sont mis à jour avec un commentaire d'audit.
  </Card>
</CardGroup>

<Tip>
  **Recommandé : activez l'interrogation automatique.** CaseBender peut extraire
  de nouveaux incidents de façon planifiée directement depuis votre espace de
  travail Log Analytics — sans Logic App, connecteur de données ni endpoint
  entrant. Voir [Interrogation automatique](#entrant-interrogation-automatique).
</Tip>

<Note>
  Cette intégration utilise l'**API REST Azure Security Insights** et s'authentifie
  avec une **application Azure AD (Entra ID)** via le flux client-credentials
  (portée `management.azure.com`).
</Note>

## Fonctionnalités

| Fonctionnalité                         | Sens           | Description                                                                                                      |
| -------------------------------------- | -------------- | ---------------------------------------------------------------------------------------------------------------- |
| **Interrogation des incidents (pull)** | Entrant        | CaseBender interroge l'API Security Insights de façon planifiée et ingère les nouveaux incidents automatiquement |
| Ingestion des incidents (push)         | Entrant        | Les incidents Sentinel sont poussés via webhook / Logic App                                                      |
| Extraction d'observables et d'entités  | Entrant        | Les entités sont extraites de l'incident                                                                         |
| Synchronisation des dispositions       | Sortant        | Le `status` + `classification` de l'incident + un commentaire sont envoyés à la clôture du cas                   |
| Test de connexion                      | Bidirectionnel | Valide les identifiants OAuth2 et l'accès à l'espace de travail                                                  |

## Prérequis

<Steps>
  <Step title="Enregistrer une application Azure AD">
    Dans le [centre d'administration Microsoft Entra](https://entra.microsoft.com), enregistrez
    une application et créez un **client secret**. Notez le **Directory (tenant) ID**,
    l'**Application (client) ID** et la valeur du secret.
  </Step>

  <Step title="Attribuer le rôle sur l'espace de travail">
    Accordez à l'application le rôle **Microsoft Sentinel Reader** sur l'espace de travail Log
    Analytics avec Sentinel activé (pour l'entrée). Pour la clôture sortante, accordez
    **Microsoft Sentinel Responder**.
  </Step>

  <Step title="Recueillir les coordonnées de l'espace de travail">
    Notez le **Subscription ID**, le **Resource Group** et le **nom de l'espace de travail Log
    Analytics**.
  </Step>

  <Step title="Sortie réseau">
    L'interrogateur de CaseBender doit atteindre `login.microsoftonline.com` et
    `management.azure.com`.
  </Step>
</Steps>

## Configurer l'intégration dans CaseBender

<Steps>
  <Step title="Ouvrir le catalogue d'intégrations">
    Allez dans **Settings → Integrations → Create**, puis choisissez **Microsoft Sentinel** dans
    la catégorie **SIEM**.
  </Step>

  <Step title="Saisir les identifiants Azure et l'espace de travail">
    | Champ                        | Description                                    |
    | ---------------------------- | ---------------------------------------------- |
    | Azure Tenant ID              | Directory (tenant) ID                          |
    | Application (Client) ID      | Le client ID de l'enregistrement d'application |
    | Client Secret                | La valeur du client secret                     |
    | Subscription ID              | Abonnement Azure contenant l'espace de travail |
    | Resource Group               | Groupe de ressources de l'espace de travail    |
    | Log Analytics Workspace Name | Espace de travail avec Sentinel à interroger   |
  </Step>

  <Step title="Activer l'interrogation automatique (recommandé)">
    | Option                        | Effet                                                                                   |
    | ----------------------------- | --------------------------------------------------------------------------------------- |
    | `pollingEnabled`              | Active l'extraction planifiée des incidents Sentinel                                    |
    | `pollingIntervalMinutes`      | Fréquence d'interrogation (par défaut `5`, plage 1–1440)                                |
    | `pollingInitialLookbackHours` | Au premier passage, importe les incidents modifiés dans cette fenêtre (par défaut `24`) |
    | `pollMaxItemsPerRun`          | Limite de sécurité d'éléments par passage (par défaut `500`)                            |
  </Step>

  <Step title="Configurer la création automatique de cas">
    | Option               | Effet                                                                                                                               |
    | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
    | `autoCreateCases`    | Promeut chaque incident ingéré en **Cas** (dédupliqué par nom d'incident). Désactivé, les incidents restent dans la boîte d'alertes |
    | `minSeverityForCase` | Ne crée automatiquement des cas qu'à partir de cette sévérité                                                                       |
  </Step>
</Steps>

## Entrant (interrogation automatique)

<Steps>
  <Step title="Extraction planifiée">
    À chaque intervalle, CaseBender énumère les incidents de l'espace de travail dont
    `properties/lastModifiedTimeUtc` est supérieur au dernier curseur, par ordre croissant. Au
    premier passage, les incidents modifiés dans `pollingInitialLookbackHours` sont importés.
  </Step>

  <Step title="Curseur + déduplication">
    CaseBender avance un curseur par intégration jusqu'au `lastModifiedTimeUtc` le plus récent. Les
    incidents sont **dédupliqués par nom d'incident**, de sorte que les fenêtres qui se
    chevauchent ne créent jamais de doublons.
  </Step>

  <Step title="Normalisation">
    Chaque incident est normalisé en alerte CaseBender, et l'identifiant de l'incident Sentinel
    est conservé pour que la clôture sortante puisse le retrouver plus tard.
  </Step>
</Steps>

<Info>
  L'interrogation s'exécute dans le service d'interrogation en arrière-plan de CaseBender.
  Assurez-vous qu'il peut atteindre `login.microsoftonline.com` et `management.azure.com`
  (directement ou via votre proxy).
</Info>

## Sortant : synchronisation des dispositions vers Sentinel

Lorsqu'un cas lié est clôturé, CaseBender met à jour le `status` de l'incident Sentinel (à
`Closed`) et la `classification`, et ajoute un commentaire d'audit. La sortie nécessite le rôle
**Microsoft Sentinel Responder**.

## Considérations de sécurité

* **Moindre privilège** — accordez **Sentinel Reader** pour l'entrée uniquement ; ajoutez
  **Sentinel Responder** seulement si vous activez la clôture sortante.
* **Gestion des secrets** — faites tourner le client secret selon la politique de votre
  organisation.
* **Réseau** — restreignez la sortie à `login.microsoftonline.com` et `management.azure.com`.

## Dépannage

<AccordionGroup>
  <Accordion title="L'authentification échoue">
    Vérifiez les ID de tenant/client et le secret, et que l'application a le rôle Sentinel Reader
    sur l'espace de travail. Confirmez que le subscription ID, le resource group et le nom de
    l'espace de travail sont corrects.
  </Accordion>

  <Accordion title="L'interrogation est activée mais aucun incident n'apparaît">
    Confirmez que **Enable automatic polling** est activé et que les coordonnées de l'espace de
    travail sont correctes. Vérifiez que l'interrogateur peut atteindre `management.azure.com`. Au
    premier passage, seuls les incidents dans `pollingInitialLookbackHours` sont importés.

    **Assurez-vous que tous les services CaseBender fonctionnent** — avec Docker,
    `docker compose ps` doit afficher les services `worker` et `misp-processor` en `Up`.
  </Accordion>

  <Accordion title="La clôture du cas ne met pas à jour Sentinel">
    Assurez-vous que l'application a le rôle Sentinel Responder et que le cas est lié à un incident
    Sentinel. Consultez la chronologie du cas pour le résultat de la synchronisation.
  </Accordion>
</AccordionGroup>

## Documentation connexe

* [Présentation des intégrations](./introduction.mdx)
* [API REST Microsoft Sentinel](https://learn.microsoft.com/en-us/rest/api/securityinsights/)
