Accorder un accès au support
POST /v1/support-access-grants · permission support-access-grants:write
Accorde à l'équipe support de KeenAuth un accès limité dans le temps à cet environnement, par exemple pendant qu'elle traite un ticket de support. L'accès est soit en lecture seule (read), soit peut aussi modifier la configuration (read_write_config) ; le personnel du support n'écrit jamais de données d'utilisateurs finaux. Chaque utilisation de l'autorisation et chaque action du personnel est écrite dans le journal d'audit de gestion, et un événement support_access_grant.created est publié. Les autorisations ne peuvent être créées que depuis le tableau de bord, par un owner ou un admin qui s'est de nouveau connecté au cours des 5 dernières minutes ; les clés API et les clients machine reçoivent 403 insufficient_permissions.
Requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
Idempotency-Key |
header | non | Facultatif. 16-64 caractères [A-Za-z0-9_-] ; répéter la même clé avec le même corps renvoie la même autorisation. |
scope |
string | oui | read (lecture seule) ou read_write_config (peut aussi modifier la configuration). |
duration_hours |
integer | oui | Durée en heures, 1-72. |
ticket_ref |
string | oui | Référence du ticket de support : 1-200 caractères ASCII imprimables, sans espace en début ni en fin. |
allowed_regions_of_staff |
array | null | non | Enterprise uniquement. Seul le personnel situé dans ces régions (eu, us) peut utiliser l'autorisation ; omis ou null signifie aucune restriction. |
Corps de la requête :
{
"scope": "read",
"duration_hours": 24,
"ticket_ref": "SUP-48213",
"allowed_regions_of_staff": ["eu"]
}
Réponse
201 Created avec la nouvelle autorisation.
{
"id": "sag_01j9xk3m7q8r2s4t6v8w0y2z4a",
"scope": "read",
"status": "active",
"ticket_ref": "SUP-48213",
"allowed_regions_of_staff": ["eu"],
"granted_by": "du_01j9xk2p5n7q9s1t3v5w7y9z1b",
"created_at": "2026-10-12T09:30:00.123456Z",
"expires_at": "2026-10-13T09:30:00.123456Z",
"revoked_at": null
}
Erreurs
| HTTP | code | Quand |
|---|---|---|
| 400 | malformed_request |
Le corps n'est pas un JSON valide ou Idempotency-Key est mal formé. |
| 403 | insufficient_permissions |
La requête n'a pas été faite depuis le tableau de bord par un owner ou un admin, ou l'identifiant n'a pas la permission requise. |
| 403 | plan_feature_unavailable |
allowed_regions_of_staff nécessite le plan Enterprise. |
| 422 | validation_failed |
Un champ est invalide (scope, duration_hours hors de 1-72, ticket_ref, allowed_regions_of_staff). |
| 422 | idempotency_key_reuse |
L'Idempotency-Key a déjà été utilisée avec un autre corps. |
| 401 | unauthenticated |
L'identifiant est absent, invalide ou révoqué. |
| 429 | rate_limited |
La limite de débit a été dépassée ; réessayez après le délai Retry-After. |
| 503 | service_unavailable |
Une dépendance est temporairement indisponible ; réessayez après le délai Retry-After. |
Exemple
Création et révocation sont des actions du tableau de bord. Requête envoyée par le tableau de bord :
POST /v1/support-access-grants
Content-Type: application/json
Idempotency-Key: 2f1c9a7e-5b3d-4e8f-9a6c-1d2e3f4a5b6c
{
"scope": "read",
"duration_hours": 24,
"ticket_ref": "SUP-48213",
"allowed_regions_of_staff": ["eu"]
}