Réponse exemple
GET/v1/scim/tokensListe les jetons SCIM de provisionnement du workspace courant.Renvoie l'ensemble des jetons SCIM (bearers de provisionnement) émis pour le workspace courant, triés du plus récent au plus ancien (created_at décroissant). Ces jetons servent à authentifier un fournisseur d'identité (Okta, Azure AD) auprès de l'endpoint SCIM v2 de Coffrify. L'appel est strictement limité au workspace résolu par votre clé : il ne renvoie jamais les jetons d'un autre workspace. La réponse n'expose que des métadonnées (préfixe, usage, dates) et jamais la valeur secrète du jeton, qui n'est consultable qu'une seule fois à la création.
Authentification
Cet endpoint exige une clé API valide portant le scope workspace:manage. Ce scope de niveau workspace est requis car la gestion des jetons SCIM est une opération d'administration sensible. Un scope plus large comme * (clé pleine puissance ou session du propriétaire) satisfait également l'exigence ; en revanche un scope plus fin ne suffit pas. Transmettez la clé via l'en-tête Authorization: Bearer cof_live_....
Paramètres de requête
Aucun paramètre de requête (query string) n'est lu par le handler. La liste complète des jetons du workspace est toujours renvoyée.
Réponse
La réponse est une enveloppe de liste : object vaut "list" et data contient le tableau des jetons. Chaque entrée expose id, name, token_prefix (préfixe tronqué du jeton, p. ex. scim_a1b2c3d4...), last_used_at, request_count (nombre d'appels SCIM authentifiés avec ce jeton), created_at et revoked_at (null si le jeton est toujours actif). La valeur secrète complète n'est jamais présente.
| Champ | Type | Description |
|---|---|---|
| object | string | Toujours "list". |
| data | array | Tableau des jetons SCIM du workspace. |
| data[].id | string (uuid) | Identifiant interne du jeton. |
| data[].name | string | Libellé donné à la création (p. ex. « Okta production »). |
| data[].token_prefix | string | Préfixe tronqué du jeton (14 premiers caractères + « ... »). |
| data[].last_used_at | string | null | Date du dernier usage SCIM, null si jamais utilisé. |
| data[].request_count | number | Nombre de requêtes SCIM authentifiées avec ce jeton. |
| data[].created_at | string | Date de création. |
| data[].revoked_at | string | null | Date de révocation, null si le jeton est actif. |
Erreurs
| Code | Quand | Résolution |
|---|---|---|
| 401 missing_api_key | Aucun en-tête Authorization fourni et aucune session valide. | Ajoutez Authorization: Bearer cof_live_.... |
| 401 invalid_api_key | Préfixe de clé non reconnu ou clé introuvable. | Vérifiez la clé ou émettez-en une nouvelle. |
| 401 revoked_api_key / expired_api_key | Clé révoquée, inactive ou expirée. | Émettez une nouvelle clé API. |
| 403 scope_missing | La clé ne porte pas workspace:manage (ni un scope plus large). | Émettez une clé avec workspace:manage sur app.coffrify.com/developer. |
| 403 ip_not_allowed | IP appelante hors liste d'autorisation de la clé. | Appelez depuis une IP autorisée ou ajustez la liste. |
| 429 rate_limited | Quota de requêtes du workspace dépassé sur les endpoints de lecture. | Respectez l'en-tête Retry-After avant de réessayer. |
| 500 internal_error | Erreur lors de la lecture en base. | Réessayez ; conservez le request_id pour le support. |
Voir aussi
- POST /v1/scim/tokens — émettre un nouveau jeton SCIM (valeur révélée une seule fois).
- Endpoint SCIM v2 :
https://api.coffrify.com/scim/v2(consommé par l'IdP). - GET /v1/members — vérifier les membres provisionnés via SCIM.