Lister les clés de signature
GET /v1/signing-keys · permission signing-keys:read
Renvoie les clés de signature de jetons actuellement publiées dans le JWKS de l'environnement : next (publiée, ne signe pas encore), active (signe les nouveaux jetons) et retired (ne signe plus ; reste publiée 7 jours pour que les jetons qu'elle a signés restent vérifiables). L'ordre est next, active, puis retired (de la plus récente à la plus ancienne). Les clés sorties du JWKS et les clés révoquées par une rotation d'urgence ne sont pas renvoyées. La réponse ne contient que des informations publiques : kid est l'empreinte JWK SHA-256 RFC 7638 (base64url) et aucune réponse ne contient de clé privée, qui ne quitte jamais le service de signature.
Requête
Cette opération ne prend aucun paramètre de chemin, de requête ni de corps. L'environnement provient de l'authentification.
Réponse
200 OK avec data (clés) et list_metadata. La liste est aussi petite que le JWKS et n'est pas paginée : les deux curseurs valent toujours null. activated_at vaut null pour la clé next ; retired_at et removal_at (moment où la clé quitte le JWKS) ne sont renseignés que pour les clés retired.
{
"data": [
{
"kid": "ypeBEsobvcr6wjGzmiPcTaeG7_gUfE5yuYB3ha_uSLs",
"use": "token_signing",
"algorithm": "RS256",
"state": "next",
"storage": "wrapped",
"created_at": "2026-09-05T09:30:00.123456Z",
"activated_at": null,
"retired_at": null,
"removal_at": null
},
{
"kid": "PiPoFgA5WUoziU9lZOGxNIu9egCI1CxKy3PurtWcAJ0",
"use": "token_signing",
"algorithm": "RS256",
"state": "active",
"storage": "wrapped",
"created_at": "2026-03-09T09:30:00.123456Z",
"activated_at": "2026-09-05T09:30:00.123456Z",
"retired_at": null,
"removal_at": null
},
{
"kid": "Ln0sA6lQeuJl7PW1NWiFpTOTogKdJBOUmXJloaJa78Y",
"use": "token_signing",
"algorithm": "RS256",
"state": "retired",
"storage": "wrapped",
"created_at": "2025-09-10T09:30:00.123456Z",
"activated_at": "2026-03-09T09:30:00.123456Z",
"retired_at": "2026-09-05T09:30:00.123456Z",
"removal_at": "2026-09-12T09:30:00.123456Z"
}
],
"list_metadata": {
"before": null,
"after": null
}
}
Erreurs
| HTTP | code | Quand |
|---|---|---|
| 401 | unauthenticated |
L'authentification est manquante, invalide ou révoquée. |
| 403 | insufficient_permissions |
L'authentification manque la permission requise. |
| 429 | rate_limited |
La limite de débit a été dépassée ; réessayez après la période Retry-After. |
| 501 | not_implemented |
L'opération n'est pas encore disponible dans ce déploiement ; réessayer ne change pas le résultat. |
| 503 | service_unavailable |
Une dépendance est temporairement indisponible ; réessayez après la période Retry-After. |
Exemple
curl https://api.eu.keenauth.com/v1/signing-keys \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY"