Lister les conflits de sujet d'une connexion

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

Liste les conflits de sujet SSO d'une connexion d'entreprise (SAML ou OIDC), du plus récent au plus ancien.

Un conflit de sujet est enregistré lorsque le fournisseur d'identité envoie un nouveau sujet avec l'adresse e-mail vérifiée d'un utilisateur déjà lié à la même connexion sous un autre sujet. Cela se produit, par exemple, lorsque la boîte e-mail d'un ancien employé est attribuée à un nouvel employé. KeenAuth ne lie pas automatiquement le nouveau sujet : la connexion est refusée avec sso_subject_conflict et un enregistrement est ouvert afin qu'un administrateur le résolve.

L'autorisation est users:read car un enregistrement concerne un compte utilisateur ; sa résolution nécessite users:write.

Requête

Champ Type Obligatoire Description
connection_id path oui Identifiant de la connexion (conn_…).
limit query non Taille de page, de 1 à 100 (par défaut 20).
after / before query non Curseur issu de list_metadata. Un curseur ne fonctionne que pour la connexion qui l'a produit.
order query non desc (par défaut) ou asc, selon la date de création.

Réponse

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 }
}
Champ Description
user_id L'utilisateur qui possède l'adresse e-mail vérifiée et qui est déjà lié à cette connexion sous un autre sujet.
status open (en attente d'une décision), resolved ou expired (fermé 30 jours après son ouverture, sans décision).
resolution same_person ou different_person ; renseigné uniquement lorsque status vaut resolved.
last_seen_at La dernière tentative de connexion avec le nouveau sujet.
closed_at Date à laquelle l'enregistrement a été résolu ou expiré ; null tant qu'il est ouvert. Un enregistrement expiré peut aussi afficher null.

Erreurs

HTTP code Quand
400 invalid_cursor Le curseur est mal formé ou appartient à une autre connexion ou à une autre requête.
401 unauthenticated L'identifiant d'accès est absent, invalide ou révoqué.
403 insufficient_permissions L'identifiant d'accès ne dispose pas de users:read.
404 not_found La connexion n'existe pas dans cet environnement.
422 validation_failed Un paramètre de requête est invalide (par exemple limit supérieur à 100).
429 rate_limited La limite de débit a été dépassée ; réessayez après la période indiquée par Retry-After.
503 service_unavailable Un service dont dépend l'API est temporairement indisponible ; réessayez après la période indiquée par Retry-After.

Exemple

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