Elenca le chiavi di firma

GET /v1/signing-keys · permesso signing-keys:read

Restituisce le chiavi di firma dei token attualmente pubblicate nel JWKS dell'ambiente: next (pubblicata, non firma ancora), active (firma i nuovi token) e retired (non firma più; resta pubblicata 7 giorni perché i token che ha firmato restino verificabili). L'ordine è next, active, poi retired (dalla più recente). Le chiavi uscite dal JWKS e quelle revocate da una rotazione di emergenza non vengono restituite. La risposta contiene solo informazioni pubbliche: kid è l'impronta JWK SHA-256 RFC 7638 (base64url) e nessuna risposta contiene materiale di chiave privata, che non lascia mai il servizio di firma.

Richiesta

Questa operazione non accetta campi di percorso, query o body. L'ambiente deriva dalla credenziale.

Risposta

200 OK con data (chiavi) e list_metadata. L'elenco è piccolo quanto il JWKS e non è paginato; entrambi i cursori sono sempre null. activated_at è null per la chiave next; retired_at e removal_at (quando la chiave esce dal JWKS) sono valorizzati solo per le chiavi 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
  }
}

Errori

HTTP code Quando
401 unauthenticated La credenziale è mancante, non valida o revocata.
403 insufficient_permissions La credenziale non ha il permesso richiesto.
429 rate_limited Il limite di velocità è stato superato; riprova dopo il periodo Retry-After.
501 not_implemented L'operazione non è ancora disponibile in questo deployment; riprovare non cambia il risultato.
503 service_unavailable Una dipendenza è temporaneamente non disponibile; riprova dopo il periodo Retry-After.

Esempio

curl https://api.eu.keenauth.com/v1/signing-keys \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"