Conecte su SIEM al feed del registro de auditoría de Uniqkey

¿Tiene más preguntas? Enviar una solicitud

Uniqkey puede transmitir los eventos de seguridad de su organización a su SIEM (Microsoft Sentinel, Splunk, Elastic, Wazuh o cualquier herramienta que pueda consultar una API REST). Este artículo explica cómo activar la integración en el Admin Portal, cómo funciona la API de eventos y qué puede esperar de los datos.

Quién puede utilizarlo

  • La integración se activa para cada organización por un administrador de la organización en el Admin Portal.
  • Su SIEM necesita acceso HTTPS saliente al endpoint de eventos de Uniqkey.
  • Los eventos son las mismas entradas del registro de auditoría que ya puede ver en Audit logs en el Admin Portal. No se exporta nada que no sea visible allí y nunca se incluyen secretos del vault, contraseñas ni claves.

Paso 1: Activar la integración y generar un token

  1. Inicie sesión en el Admin Portal como administrador.
  2. Vaya a Integrations y abra la pestaña SIEM.
  3. Copie el API endpoint que aparece en la parte superior del widget. Esta es la URL que consultará su SIEM.
  4. Switch the SIEM toggle on, or click Generate Token. A dialog shows your new token.
  5. Copie el token and store it in your SIEM's secret store. El token solo se muestra una vez. Después de cerrar el cuadro de diálogo, no podrá volver a mostrarse.

Gestionar el token posteriormente:

  • Regenerate Token issues a new token and immediately invalidates the old one. Update your SIEM before or right after regenerating, otherwise polling stops.
  • Al desactivar SIEM se elimina el token y se desactiva la integración. Su SIEM recibirá 403 Forbidden until a new token is generated.
  • Hay un token por organización. Si varias herramientas necesitan el feed, comparten el mismo token.
  • La generación o eliminación de un token también queda registrada en el registro de auditoría.

Paso 2: Configurar su SIEM

Todos los conectores SIEM necesitan las mismas tres cosas:

ConfiguraciónValor
SolicitudGET on the API endpoint copied from the SIEM tab (.../api/v1/events)
AutenticaciónHTTP header Authorization: Bearer <your token>
PaginaciónPersist the cursor from every response and send it back as the cursor query parameter on the next request. Keep polling while has_more is true.

Una consulta cada 5 minutos es una buena configuración predeterminada. Los eventos están disponibles aproximadamente 2 minutos después de producirse (consulte «Qué esperar de los datos» más abajo), por lo que consultar con una frecuencia superior a cada 2 minutos no aporta ninguna ventaja.

Prueba rápida con curl

curl -s "https://<endpoint>/api/v1/events?limit=5" \
  -H "Authorization: Bearer <your token>"

A working setup returns HTTP 200 with a JSON body like the one in the "Response" section. 401 means the Authorization header is missing or not a Bearer token. 403 means the token is unknown, was regenerated, or the integration is disabled.

Referencia de la API

Solicitud

GET /api/v1/events

Parámetro de consultaDescripción
cursorMarcador de posición de una respuesta anterior. Devuélvalo sin cambios. Cuando está presente, determina dónde comienza la página; start is ignored.
startLímite de tiempo inferior, inclusivo, ISO 8601 (por ejemplo 2026-09-01T00:00:00Z). Utilícelo para la primera consulta o para un backfill. Se presupone UTC cuando no se especifica ninguna zona horaria.
endLímite de tiempo superior, exclusivo, ISO 8601. Se aplica junto con cursor, lo que permite paginar un backfill limitado.
limitEventos por página. Valor predeterminado: 200; máximo: 1000. Los valores fuera del intervalo se limitan, no se rechazan.
categoryFiltre por una o varias categorías. Repita el parámetro o separe los valores con comas: ?category=authentication,credential_access. Si se omite, se incluyen todas las categorías.

Una solicitud sin parámetros es válida y devuelve el historial de su organización desde el principio, página por página.

El cursor es opaco. No lo construya, analice ni modifique. Su formato puede cambiar sin previo aviso, pero un cursor recibido seguirá funcionando.

Respuesta

{
  "events": [ ... ],
  "has_more": true,
  "cursor": "eyJUIjoiMjAyNi0wOS0wMVQwOToxNDoyMi4xMTdaIiwiSSI6Ijlh..."
}
  • Los eventos se devuelven empezando por los más antiguos.
  • has_more tells you whether to request the next page right away. Loop on has_more, not on an empty events array: a page can be empty while more data remains.
  • cursor is always present, including on empty pages and when has_more is false. Store it as your checkpoint after every response.

Los errores devuelven HTTP 400 con un código legible por máquina:

{ "error": { "code": "invalid_cursor", "message": "Cursor is not valid. Submit the cursor from a previous response verbatim." } }
CódigoSignificado
invalid_cursorThe cursor was modified or is not from this API. Restart from a start time.
invalid_categoryValor de categoría desconocido. El mensaje enumera los valores válidos.

JSON delimitado por líneas

Si su collector prefiere un evento por línea (entradas REST genéricas de Splunk, Elastic, log shippers), envíe Accept: application/x-ndjson. El cuerpo contendrá un evento JSON por línea sin envoltorio y los campos de paginación pasarán a los headers de respuesta:

Content-Type: application/x-ndjson
X-Next-Cursor: eyJUIjoi...
X-Has-More: true

Los headers ofrecen las mismas garantías que el cuerpo JSON: el cursor siempre está presente, incluso en una página vacía.

Formato del evento

{
  "id": "9a1c7f2e-4b13-4a8e-9f21-0c2b7d5e8a44",
  "timestamp": "2026-09-01T09:14:22.117Z",
  "category": "credential_access",
  "action": "get_vault_password_details",
  "action_id": "daf12269-a58f-4e3a-ab01-05b1293a7cac",
  "action_source": "extension",
  "outcome": "success",
  "organization_id": "d5ecd732-4a67-418c-9dea-38a097fba1f6",
  "actor": { "id": "3f2a...", "email": "jane.doe@example.com", "type": "user" },
  "client": { "system": "extension", "ip": "185.23.44.9" },
  "target": { "type": "vault", "id": "7c9d...", "name": "GitHub build account" }
}
CampoDescripción
idID único del evento. Utilícelo para eliminar duplicados.
timestampMomento en que ocurrió el evento, en UTC.
categoryUna de las categorías indicadas a continuación. Es estable: una acción determinada nunca cambia de categoría.
actionNombre de acción legible, por ejemplo login_to_extension. No es único (la misma acción desde dos interfaces comparte un nombre) ni se garantiza que sea estable. Utilícelo para mostrarlo.
action_idIdentificador estable del tipo de acción. Cree reglas de detección basadas en este campo, no en action.
action_sourceQué parte de Uniqkey define la acción: extension, mobile, web_portal, partner_portal, scim_service, desktop_extension, queue_messages, breach. Utilícelo para distinguir dos eventos con la misma action.
outcomesuccess or failure. See the note under "What to expect".
organization_idEl ID de su organización.
actor.id, actor.emailEl empleado que realizó la acción, cuando corresponda.
actor.typeuser, scim, system, supporter (a partner support user), or breach.
client.systemDe dónde procede la solicitud: extension, mobile, web, desktop, or undefined. Muchos eventos contienen undefined; prefiera action_source cuando necesite identificar la interfaz.
client.ipIP de origen de la solicitud, cuando se registra. Puede no estar presente.
target.type, target.id, target.nameEl objeto sobre el que se realizó la acción: vault, employee, group, employee_group, resource_collection, or tag. name es el nombre del objeto en el momento del evento y puede no estar presente (las etiquetas nunca incluyen un nombre).

Categorías

CategoríaContiene
authenticationInicios y cierres de sesión, ciclo de vida de la contraseña maestra, inicio de sesión SSO y sesiones de navegador y portal de confianza
account_managementCiclo de vida de los empleados y cambios de perfil: invitados, activados, archivados y eliminados, incluido el aprovisionamiento SCIM
privilege_managementPrivilegios de administrador concedidos o revocados y acceso de soporte de partners concedido
group_managementGrupos, grupos de empleados, colecciones de recursos, etiquetas y sus miembros
credential_accessSe visualizó o copió un secreto, o se solicitaron, aprobaron o rechazaron sus detalles. Es la categoría con mayor volumen de eventos.
credential_managementElementos del vault y passkeys creados, editados o eliminados
sharingCualquier cambio que afecte a quién puede acceder a una credencial: comparticiones, revocaciones, caducidades, movimientos y desvinculaciones
data_exportDatos que salen del sistema de forma masiva, como las exportaciones de logins
policy_managementConfiguración de seguridad, restricciones y plantillas de restricciones, períodos de retención y configuración del proveedor SSO
device_managementDispositivos y aplicaciones complementarias vinculados o desvinculados y registro pasivo de la extensión
organization_managementDetalles de la organización, dominios verificados, archivado y restauración de la organización y generación o eliminación del token SIEM
threat_detectionEventos de supervisión de filtraciones de datos y reutilización de contraseñas
otherEventos genéricos sin significado de seguridad por sí mismos, además de eventos registrados antes de que existiera la categorización actual

Como cada evento incluye una categoría, puede dirigir varios conectores al mismo endpoint con diferentes category filtros, por ejemplo para enviar credential_access a un nivel de almacenamiento más económico y mantener el resto en su nivel de análisis.

Qué esperar de los datos

  • La entrega se realiza al menos una vez. En determinadas condiciones, un evento puede entregarse dos veces. Elimine duplicados mediante id.
  • Los eventos aparecen aproximadamente 2 minutos después de producirse. El feed retiene deliberadamente los 2 minutos más recientes para que no se omita ningún evento mientras aún se completan las escrituras. Por este motivo, su SIEM no debe consultar con una frecuencia superior a cada 2 minutos.
  • El historial está limitado por el período de retención del registro de auditoría. El feed proporciona lo que conserva su organización. Consulte Data Cleanup & Retention en la configuración de la organización. Si su collector permanece inactivo durante más tiempo que el período de retención, los eventos caducados no podrán recuperarse. Mantenga el collector en ejecución continua.
  • outcome no es una señal de inicio de sesión fallido. Uniqkey no registra actualmente los intentos de inicio de sesión fallidos, por lo que cada evento authentication es correcto. failure solo se utiliza para acciones cuyo propósito es registrar una denegación, por ejemplo una solicitud de aprobación rechazada en la aplicación móvil. No cree detecciones de fuerza bruta basadas en este feed.
  • client.ip no siempre está presente. Los eventos generados por procesos en segundo plano, SCIM o algunos flujos de cliente no incluyen IP. El valor se obtiene de la solicitud recibida y debe considerarse como informado por el cliente, no verificado por la infraestructura.
  • Nunca se incluyen datos confidenciales. Las contraseñas, notas seguras, números de tarjeta, claves y otros contenidos cifrados del vault nunca salen del límite de conocimiento cero. El feed solo contiene los metadatos visibles en el registro de auditoría del Admin Portal.

Notas por SIEM

Uniqkey todavía no proporciona paquetes de conectores preconfigurados. El endpoint sigue las mismas convenciones que otros proveedores de identidad y gestores de contraseñas, por lo que funciona el mecanismo estándar de consulta REST de cada SIEM.

  • Microsoft Sentinel: use a Codeless Connector or a Logic App with API key authentication (Authorization header, prefix Bearer ). Configure paging on the cursor response field, sent back as the cursor query parameter, and use has_more as the loop condition. The API accepts start and cursor together, which is how the Codeless Connector Framework sends its second page.
  • Splunk: a REST modular input or an Add-on Builder input works. Send Accept: application/x-ndjson so each event is indexed as its own record, and read X-Next-Cursor and X-Has-More for checkpointing.
  • Elastic: the Elastic Agent or Filebeat HTTP JSON / CEL input can poll the endpoint, persist cursor as its cursor state, and loop on has_more. NDJSON mode is also supported.
  • Wazuh: Wazuh has no native REST poller. Run a small scheduled script that polls the endpoint, keeps the cursor in a state file, and writes events as JSON lines to a log file that a Wazuh agent monitors with log_format: json.

Solución de problemas

SíntomaCausa probableSolución
401 UnauthorizedNo Authorization header, or it does not start with BearerCompruebe el formato del header en el conector SIEM.
403 ForbiddenEl token es incorrecto, se volvió a generar o se desactivó la integración.Genere un nuevo token en la pestaña SIEM y actualice el SIEM.
400 invalid_cursorEl cursor se editó, se truncó o procede de otra organización.Reset the connector checkpoint and restart from a start time
400 invalid_categoryError tipográfico en el filtro de categoríaUtilice uno de los valores de la tabla de categorías.
El feed está vacío, pero el Admin Portal muestra eventos.Los eventos tienen menos de 2 minutos o el filtro de categoría los excluye.Espere o elimine el filtro.
El conector se detiene después de un tiempo.Se perdió el checkpoint o se volvió a generar el token.Confirme que el cursor se guarda y que el token del SIEM coincide con el más reciente.
Faltan eventos antiguosEl período de retención del registro de auditoría ha expirado para esos eventos.Compruebe el período de retención y mantenga el collector en ejecución continua.
Eventos duplicadosNormal con la entrega at-least-onceDeduplicate on id

Cuando contacte con soporte, incluya el ID de su organización, la URL exacta de la solicitud sin el token, el estado HTTP y el cuerpo de la respuesta.

Artículos en esta sección