Créer un jeton de gestion pour la CLI
POST https://api.keenauth.com/v1/environments/{environment_id}/management-tokens · appelé par keenauth login
Échange la connexion de la CLI contre un jeton de 10 minutes pour un environnement. Vous n'appelez pas ce point de terminaison vous-même : keenauth login vous connecte avec votre compte du tableau de bord (autorisation par appareil ou, avec --web, redirection loopback avec PKCE) et la CLI demande un jeton pour chaque environnement sur lequel elle travaille. Le jeton est lié à la clé de la CLI (DPoP) et ne porte que les autorisations de votre rôle du tableau de bord dans cet environnement.
Demande
En-têtes :
| En-tête | Requis | Description |
|---|---|---|
Authorization |
oui | DPoP <access token> : le jeton d'accès reçu par la CLI lors de votre connexion. |
DPoP |
oui | Une preuve DPoP pour cette requête, signée avec la clé à laquelle le jeton d'accès est lié ; elle contient le hachage du jeton d'accès et le nonce du serveur. |
Content-Type |
oui | application/json. |
Corps : un objet JSON vide, {}. Tout autre membre est refusé avec unknown_field. La requête n'a pas d'Idempotency-Key : chaque appel émet un nouveau jeton.
Réponse
201 Created avec Cache-Control: no-store :
| Champ | Description |
|---|---|
access_token |
Le jeton de gestion. Envoyez-le sous la forme Authorization: DPoP <token> avec une preuve de la même clé. |
token_type |
Toujours DPoP. |
expires_in |
Durée de vie en secondes : 600. |
expires_at |
Fin de la durée de vie (RFC 3339, UTC). |
environment_id |
L'environnement pour lequel le jeton est émis. |
audience |
La cellule pour laquelle le jeton est émis (<region>/<cell>). |
api_base |
URL de base de l'API régionale qui accepte le jeton. |
permissions |
Les autorisations de l'environnement accordées par votre rôle du tableau de bord. |
La CLI ne conserve le jeton qu'en mémoire. Un changement de rôle prend effet dans 10 minutes au plus ; lorsqu'un rôle est retiré, les jetons ouverts de cet utilisateur sont révoqués.
Erreurs
| HTTP | Code | Quand |
|---|---|---|
| 401 | unauthenticated |
Aucun jeton d'accès n'a été envoyé. |
| 401 | invalid_token |
Le jeton d'accès est invalide, expiré ou n'appartient pas à la CLI ; reconnectez-vous avec keenauth login. |
| 401 | invalid_dpop_proof |
La preuve DPoP est absente, répétée, ou ne correspond ni à la requête ni à la clé du jeton. |
| 401 | use_dpop_nonce |
Réessayez avec une preuve qui porte le nonce de l'en-tête de réponse DPoP-Nonce. |
| 401 | insufficient_user_authentication |
L'authentification multifacteur (ou, pour votre rôle, une clé d'accès ou une clé de sécurité) est requise ; reconnectez-vous. |
| 404 | not_found |
L'environnement n'existe pas ou vous n'avez aucun rôle du tableau de bord dans cet environnement. |
| 429 | rate_limited |
Plus de 30 jetons par minute pour votre utilisateur (partagé avec le tableau de bord) ; respectez Retry-After. |
Exemple
curl -X POST https://api.keenauth.com/v1/environments/env_01jb0000000000000000000000/management-tokens \
-H "Authorization: DPoP $ACCESS_TOKEN" \
-H "DPoP: $DPOP_PROOF" \
-H "Content-Type: application/json" \
-d '{}'