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

> Integración bidireccional entre CaseBender y Microsoft Sentinel para la ingesta de incidentes (pull o push) y la sincronización de disposiciones.

## Descripción general

La integración de Microsoft Sentinel (**INT-009**) ingiere los incidentes de Sentinel en
CaseBender y puede devolver las disposiciones de los casos a Sentinel cuando se cierra un caso.

<CardGroup cols={2}>
  <Card title="Ingesta entrante" icon="arrow-right-to-bracket">
    Los incidentes de Sentinel se ingieren — ya sea **extraídos automáticamente**
    de forma programada (recomendado) o **enviados** por webhook / Logic App — y
    luego se normalizan y se convierten en alertas.
  </Card>

  <Card title="Sincronización saliente" icon="arrow-right-from-bracket">
    Cuando se cierra un caso vinculado en CaseBender, el estado y la clasificación
    del incidente de Sentinel se actualizan con un comentario de auditoría.
  </Card>
</CardGroup>

<Tip>
  **Recomendado: active el sondeo automático.** CaseBender puede extraer nuevos
  incidentes de forma programada directamente de su espacio de trabajo de Log
  Analytics — sin Logic App, conector de datos ni endpoint entrante. Véase
  [Sondeo automático](#entrada-sondeo-automatico-recomendado).
</Tip>

<Note>
  Esta integración usa la **API REST de Azure Security Insights** y se autentica
  con una **aplicación de Azure AD (Entra ID)** mediante el flujo de credenciales
  de cliente (ámbito `management.azure.com`).
</Note>

## Capacidades

| Capacidad                             | Dirección     | Descripción                                                                                                     |
| ------------------------------------- | ------------- | --------------------------------------------------------------------------------------------------------------- |
| **Sondeo de incidentes (pull)**       | Entrante      | CaseBender consulta la API de Security Insights de forma programada e ingiere nuevos incidentes automáticamente |
| Ingesta de incidentes (push)          | Entrante      | Los incidentes de Sentinel se envían por webhook / Logic App                                                    |
| Extracción de observables y entidades | Entrante      | Las entidades se extraen del incidente                                                                          |
| Sincronización de disposiciones       | Saliente      | El `status` + `classification` del incidente + comentario se envían al cerrar el caso                           |
| Prueba de conexión                    | Bidireccional | Valida las credenciales OAuth2 y el acceso al espacio de trabajo                                                |

## Requisitos previos

<Steps>
  <Step title="Registrar una aplicación de Azure AD">
    En el [centro de administración de Microsoft Entra](https://entra.microsoft.com), registre
    una aplicación y cree un **client secret**. Anote el **Directory (tenant) ID**, el
    **Application (client) ID** y el valor del secret.
  </Step>

  <Step title="Asignar el rol del espacio de trabajo">
    Otorgue a la aplicación el rol **Microsoft Sentinel Reader** en el espacio de trabajo de Log
    Analytics con Sentinel habilitado (para entrada). Para el cierre saliente, otorgue
    **Microsoft Sentinel Responder**.
  </Step>

  <Step title="Recopilar las coordenadas del espacio de trabajo">
    Anote el **Subscription ID**, el **Resource Group** y el **nombre del espacio de trabajo de
    Log Analytics**.
  </Step>

  <Step title="Salida de red">
    El sondeador de CaseBender debe alcanzar `login.microsoftonline.com` y `management.azure.com`.
  </Step>
</Steps>

## Configurar la integración en CaseBender

<Steps>
  <Step title="Abrir el catálogo de integraciones">
    Vaya a **Settings → Integrations → Create** y elija **Microsoft Sentinel** en la categoría
    **SIEM**.
  </Step>

  <Step title="Introducir las credenciales de Azure y el espacio de trabajo">
    | Campo                        | Descripción                                             |
    | ---------------------------- | ------------------------------------------------------- |
    | Azure Tenant ID              | Directory (tenant) ID                                   |
    | Application (Client) ID      | El client ID del registro de aplicación                 |
    | Client Secret                | El valor del client secret                              |
    | Subscription ID              | Suscripción de Azure que contiene el espacio de trabajo |
    | Resource Group               | Grupo de recursos del espacio de trabajo                |
    | Log Analytics Workspace Name | Espacio de trabajo con Sentinel a sondear               |
  </Step>

  <Step title="Activar el sondeo automático (recomendado)">
    | Opción                        | Efecto                                                                                            |
    | ----------------------------- | ------------------------------------------------------------------------------------------------- |
    | `pollingEnabled`              | Activa la extracción programada de incidentes de Sentinel                                         |
    | `pollingIntervalMinutes`      | Frecuencia de sondeo (por defecto `5`, rango 1–1440)                                              |
    | `pollingInitialLookbackHours` | En la primera ejecución, importa incidentes modificados dentro de esta ventana (por defecto `24`) |
    | `pollMaxItemsPerRun`          | Límite de seguridad de elementos por ejecución (por defecto `500`)                                |
  </Step>

  <Step title="Configurar la creación automática de casos">
    | Opción               | Efecto                                                                                                                                                        |
    | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | `autoCreateCases`    | Promueve cada incidente ingerido a un **Caso** (deduplicado por nombre de incidente). Si está desactivado, los incidentes permanecen en la bandeja de alertas |
    | `minSeverityForCase` | Solo crea casos automáticamente a partir de esta severidad                                                                                                    |
  </Step>
</Steps>

## Entrada (sondeo automático, recomendado)

<Steps>
  <Step title="Extracción programada">
    En cada intervalo, CaseBender enumera los incidentes del espacio de trabajo con
    `properties/lastModifiedTimeUtc` mayor que el último cursor, en orden ascendente. En la
    primera ejecución se importan los incidentes modificados dentro de
    `pollingInitialLookbackHours`.
  </Step>

  <Step title="Cursor + deduplicación">
    CaseBender avanza un cursor por integración hasta el `lastModifiedTimeUtc` más reciente. Los
    incidentes se **deduplican por nombre de incidente**, por lo que las ventanas superpuestas
    nunca crean duplicados.
  </Step>

  <Step title="Normalización">
    Cada incidente se normaliza como una alerta de CaseBender y se conserva el identificador del
    incidente de Sentinel para que el cierre saliente pueda encontrarlo más adelante.
  </Step>
</Steps>

<Info>
  El sondeo se ejecuta en el servicio de sondeo en segundo plano de CaseBender. Asegúrese de que
  pueda alcanzar `login.microsoftonline.com` y `management.azure.com` (directamente o a través de
  su proxy).
</Info>

## Salida: sincronización de disposiciones a Sentinel

Cuando se cierra un caso vinculado, CaseBender actualiza el `status` del incidente de Sentinel (a
`Closed`) y la `classification`, y añade un comentario de auditoría. La salida requiere el rol
**Microsoft Sentinel Responder**.

## Consideraciones de seguridad

* **Privilegio mínimo** — otorgue **Sentinel Reader** solo para entrada; añada **Sentinel
  Responder** únicamente si activa el cierre saliente.
* **Manejo de secretos** — rote el client secret según la política de su organización.
* **Red** — restrinja la salida a `login.microsoftonline.com` y `management.azure.com`.

## Solución de problemas

<AccordionGroup>
  <Accordion title="La autenticación falla">
    Verifique los ID de tenant/cliente y el secret, y que la aplicación tiene el rol Sentinel
    Reader en el espacio de trabajo. Confirme que el subscription ID, el resource group y el
    nombre del espacio de trabajo son correctos.
  </Accordion>

  <Accordion title="El sondeo está activado pero no aparecen incidentes">
    Confirme que **Enable automatic polling** está activado y que las coordenadas del espacio de
    trabajo son correctas. Verifique que el sondeador puede alcanzar `management.azure.com`. En la
    primera ejecución solo se importan incidentes dentro de `pollingInitialLookbackHours`.

    **Asegúrese de que todos los servicios de CaseBender estén en ejecución** — con Docker,
    `docker compose ps` debe mostrar los servicios `worker` y `misp-processor` como `Up`.
  </Accordion>

  <Accordion title="El cierre del caso no actualiza Sentinel">
    Asegúrese de que la aplicación tiene el rol Sentinel Responder y de que el caso está
    vinculado a un incidente de Sentinel. Consulte la línea de tiempo del caso para ver el
    resultado de la sincronización.
  </Accordion>
</AccordionGroup>

## Documentación relacionada

* [Descripción general de integraciones](./introduction.mdx)
* [API REST de Microsoft Sentinel](https://learn.microsoft.com/en-us/rest/api/securityinsights/)
