Elenca i conflitti di soggetto di una connessione

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

Elenca i conflitti di soggetto SSO di un'organizzazione con connessione enterprise (SAML o OIDC), dal più recente.

Un conflitto di soggetto viene registrato quando il provider di identità invia un nuovo soggetto con l'indirizzo email verificato di un utente già collegato alla stessa connessione con un soggetto diverso. Succede, per esempio, quando la casella di un ex dipendente viene assegnata a un nuovo dipendente. KeenAuth non collega automaticamente il nuovo soggetto: l'accesso viene rifiutato con sso_subject_conflict e viene aperto un record perché un amministratore lo risolva.

L'autorizzazione è users:read perché un record riguarda un account utente; per risolverlo serve users:write.

Richiesta

Campo Tipo Obbligatorio Descrizione
connection_id path sì ID della connessione (conn_…).
limit query no Dimensione della pagina, 1–100 (predefinito 20).
after / before query no Cursore da list_metadata. Un cursore funziona solo per la connessione che l'ha prodotto.
order query no desc (predefinito) o asc, per data di creazione.

Risposta

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 Descrizione
user_id L'utente che possiede l'indirizzo email verificato ed è già collegato a questa connessione con un altro soggetto.
status open (in attesa di una decisione), resolved o expired (chiuso 30 giorni dopo l'apertura, senza una decisione).
resolution same_person o different_person; impostato solo quando status è resolved.
last_seen_at Il tentativo di accesso più recente con il nuovo soggetto.
closed_at Quando il record è stato risolto o è scaduto; null finché è aperto. Un record scaduto può mostrare anche null.

Errori

HTTP code Quando
400 invalid_cursor Il cursore è malformato o appartiene a un'altra connessione o query.
401 unauthenticated La credenziale manca, non è valida o è stata revocata.
403 insufficient_permissions La credenziale non ha users:read.
404 not_found La connessione non esiste in questo ambiente.
422 validation_failed Un parametro di query non è valido (per esempio limit superiore a 100).
429 rate_limited È stato superato il limite di richieste; riprova dopo il periodo indicato in Retry-After.
503 service_unavailable Una dipendenza non è disponibile temporaneamente; riprova dopo il periodo indicato in Retry-After.

Esempio

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