{"revision":"9f11a31dd2951db0","language":"it","entry":{"id":"oidc-discovery","kind":"endpoint","group":"oidc","title":"Leggi la configurazione OpenID","method":"GET","path":"/.well-known/openid-configuration","paths":[],"summary":"Il documento di discovery di Accedi con Veil: issuer https://veil.rip, gli endpoint, gli scope, gli algoritmi e i metodi.","response":"I metadati del provider (OpenID Connect Discovery 1.0).","parameters":[],"sample":"/.well-known/openid-configuration","access":"public","base":"directory","notes":["Cache-Control: public, max-age=3600. CORS ammette ogni origine.","Qui non si legge nessuna chiave API: un'intestazione Authorization su /oidc/ è la credenziale dell'app o della persona."],"errors":["404 not_found","429 rate_limited","500 internal_error","503 busy"],"related":["sign-in-with-veil"],"sections":[{"kind":"code","language":"shell","code":"curl -fsS 'https://veil.rip/.well-known/openid-configuration'"}],"live":false,"responses":[{"status":200,"contentType":"application/json","description":"I metadati del provider (OpenID Connect Discovery 1.0).","fields":[{"name":"issuer","type":"string","description":"https://veil.rip. Confrontalo con l'iss di ogni token e della risposta di autorizzazione."},{"name":"authorization_endpoint","type":"string","description":"/oidc/authorize."},{"name":"token_endpoint","type":"string","description":"/oidc/token."},{"name":"userinfo_endpoint","type":"string","description":"/oidc/userinfo."},{"name":"jwks_uri","type":"string","description":"/oidc/jwks."},{"name":"registration_endpoint","type":"string","description":"/oidc/register."},{"name":"end_session_endpoint","type":"string","description":"/oidc/logout."},{"name":"revocation_endpoint","type":"string","description":"/oidc/revoke."},{"name":"introspection_endpoint","type":"string","description":"/oidc/introspect."},{"name":"scopes_supported","type":"array<string>","description":"openid profile veil veil:accounts veil:orgs veil:keys."},{"name":"id_token_signing_alg_values_supported","type":"array<string>","description":"EdDSA ed ES256."},{"name":"code_challenge_methods_supported","type":"array<string>","description":"Solo S256: PKCE è obbligatorio per ogni app."},{"name":"authorization_response_iss_parameter_supported","type":"boolean","description":"true: la risposta porta iss (RFC 9207)."}]}],"responseObjects":[],"errorFormat":"json","errorDetails":[{"status":404,"code":"not_found","description":"La scheda, la chiave, l’alias, il codice o la risorsa richiesti non sono stati trovati.","action":"Controlla l’identificatore. Codici e anteprime temporanei potrebbero essere scaduti o già usati.","scope":"endpoint"},{"status":429,"code":"rate_limited","description":"È stato superato un limite anonimo, delle richieste firmate o della chiave API.","action":"Attendi almeno i secondi indicati da `Retry-After`. Condividi coda e budget dei tentativi tra i tuoi processi.","scope":"common"},{"status":500,"code":"internal_error","description":"Si è verificato un errore imprevisto del server. I dettagli interni non vengono restituiti.","action":"Riprova le letture con attese crescenti e un limite. Controlla l’esito delle scritture prima di inviare una nuova operazione firmata.","scope":"common"},{"status":503,"code":"busy","description":"L’applicazione ha raggiunto un limite temporaneo di concorrenza o del database.","action":"Attendi i secondi indicati da `Retry-After` e riprova con attese crescenti e un limite.","scope":"common"}],"responseHeaders":[{"name":"Cache-Control","value":"public, max-age=3600","description":"Un'ora."}],"documentationUrl":"https://veil.rip/docs/oidc-discovery?lang=it","supportsBrowserFetch":true,"browserMode":"fetch"}}