Listar los conflictos de sujeto de una conexión

GET /v1/connections/{connection_id}/subject-conflicts · permiso users:read

Lista los conflictos de sujeto SSO de una organización con conexión empresarial (SAML u OIDC), del más reciente al más antiguo.

Se registra un conflicto de sujeto cuando el proveedor de identidad envía un sujeto nuevo con la dirección de correo electrónico verificada de un usuario que ya está vinculado a la misma conexión con otro sujeto. Esto ocurre, por ejemplo, cuando el buzón de un antiguo empleado se asigna a un nuevo empleado. KeenAuth no vincula automáticamente el nuevo sujeto: el inicio de sesión se rechaza con sso_subject_conflict y se abre un registro para que un administrador lo resuelva.

El permiso es users:read porque un registro afecta a una cuenta de usuario; para resolverlo se necesita users:write.

Solicitud

Campo Tipo Obligatorio Descripción
connection_id path sí ID de la conexión (conn_…).
limit query no Tamaño de página, 1–100 (por defecto 20).
after / before query no Cursor de list_metadata. Un cursor solo funciona para la conexión que lo generó.
order query no desc (por defecto) o asc, por fecha de creación.

Respuesta

200 OK:

{
  "data": [
    {
      "id": "sscf_01j9xr4a6b8c0d2e4f6g8h0j2k",
      "connection_id": "conn_01j9xp6q0r1s5t7v9w1x3y5z7b",
      "user_id": "usr_01j9xm2n4p6q8r0s2t4v6w8x0y",
      "status": "open",
      "resolution": null,
      "created_at": "2026-10-28T10:00:00Z",
      "last_seen_at": "2026-10-28T10:05:00Z",
      "expires_at": "2026-11-27T10:00:00Z",
      "closed_at": null
    }
  ],
  "list_metadata": { "before": null, "after": null }
}
Campo Descripción
user_id El usuario que es propietario de la dirección de correo electrónico verificada y ya está vinculado a esta conexión con otro sujeto.
status open (a la espera de una decisión), resolved o expired (cerrado 30 días después de abrirse, sin decisión).
resolution same_person o different_person; solo se establece cuando status es resolved.
last_seen_at El intento de inicio de sesión más reciente con el nuevo sujeto.
closed_at Cuándo se resolvió o caducó el registro; null mientras esté abierto. Un registro caducado también puede mostrar null.

Errores

HTTP código Cuándo
400 invalid_cursor El cursor está mal formado o pertenece a otra conexión o consulta.
401 unauthenticated Falta la credencial, no es válida o fue revocada.
403 insufficient_permissions La credencial no tiene users:read.
404 not_found La conexión no existe en este entorno.
422 validation_failed Un parámetro de consulta no es válido (por ejemplo, limit mayor que 100).
429 rate_limited Se superó el límite de frecuencia; reintente después del periodo indicado en Retry-After.
503 service_unavailable Una dependencia no está disponible temporalmente; reintente después del periodo indicado en Retry-After.

Ejemplo

curl "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/subject-conflicts?limit=20" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
keenauth connections subject-conflicts list conn_01j9xp6q0r1s5t7v9w1x3y5z7b --limit 20