veil

Leggi le chiavi di firma del provider

Le chiavi pubbliche che firmano i token ID: una Ed25519 (EdDSA) e una P-256 (ES256), più la coppia precedente per 30 giorni dopo una rotazione.

GET/oidc/jwks
Accesso
Pubblico; chiave API facoltativa
Client
Fetch dal browser supportato

Esempi di richiesta#

cURL
curl -fsS 'https://veil.rip/oidc/jwks'

Risposta#

HTTP 200application/json

Un JWK Set.

CampoTipoSignificato
keysarray<object>Ognuna {kty, crv, x, y?, kid, use: sig, alg}. kid è l'impronta RFC 7638; alg è fisso per chiave.

Intestazioni della risposta#

IntestazioneValoreSignificato
Cache-Controlpublic, max-age=300Cinque minuti.

Cosa verificare#

Verifica un token solo con la chiave che il suo kid nomina, e solo con l'alg di quella chiave. Rifiuta none e HS256.

Note d’uso#

  • Cache-Control: public, max-age=300. Rileggilo quando un token nomina un kid che non hai.
  • Qui non si legge nessuna chiave API: un'intestazione Authorization su /oidc/ è la credenziale dell'app o della persona.

Errori#

Gli errori API restituiscono un oggetto error. Usa error.code nella logica del programma; error.message è un testo inglese per le persone e può cambiare. Guida a risposte ed errori

HTTPCodiceSignificato e cosa fare
404not_found

La scheda, la chiave, l’alias, il codice o la risorsa richiesti non sono stati trovati.

Controlla l’identificatore. Codici e anteprime temporanei potrebbero essere scaduti o già usati.

Errori comuni delle richieste
HTTPCodiceSignificato e cosa fare
429rate_limited

È stato superato un limite anonimo, delle richieste firmate o della chiave API.

Attendi almeno i secondi indicati da Retry-After. Condividi coda e budget dei tentativi tra i tuoi processi.

500internal_error

Si è verificato un errore imprevisto del server. I dettagli interni non vengono restituiti.

Riprova le letture con attese crescenti e un limite. Controlla l’esito delle scritture prima di inviare una nuova operazione firmata.

503busy

L’applicazione ha raggiunto un limite temporaneo di concorrenza o del database.

Attendi i secondi indicati da Retry-After e riprova con attese crescenti e un limite.