{"revision":"9f11a31dd2951db0","language":"it","entry":{"id":"oidc-register","kind":"endpoint","group":"oidc","title":"Registra un'app senza scheda","method":"POST","path":"/oidc/register","paths":[],"summary":"RFC 7591, aperta: un'app di cui nessuna scheda risponde. La pagina di consenso la dice non verificata, e sparisce 30 giorni dopo la registrazione.","response":"201 con i metadati tenuti, e client_secret una volta.","parameters":[],"sample":"/oidc/register","access":"public-write","base":"directory","notes":["Gli errori di questo endpoint seguono OAuth: `{\"error\", \"error_description\"}` (RFC 6749, 5.2), non l'oggetto `error` del resto delle API. Un limite risponde comunque 429 con la busta solita.","Dieci registrazioni all'ora per IP."],"errors":["400 invalid_client_metadata","400 invalid_redirect_uri","404 invalid_request","429 rate_limited","500 internal_error","503 busy","503 temporarily_unavailable"],"related":["sign-in-with-veil"],"sections":[{"kind":"code","language":"shell","code":"curl -fsS --json '{\"client_name\":\"CLI notes\",\"redirect_uris\":[\"http://127.0.0.1/callback\"],\"token_endpoint_auth_method\":\"none\"}' 'https://veil.rip/oidc/register'"}],"live":false,"responses":[{"status":201,"contentType":"application/json","description":"201 con i metadati tenuti, e client_secret una volta.","fields":[{"name":"client_id","type":"string","description":"veil_app_ e 32 caratteri hex."},{"name":"client_secret","type":"string","description":"Per client_secret_basic, una volta."},{"name":"client_id_issued_at, client_secret_expires_at, veil_expires_at","type":"integer","description":"Secondi Unix; l'app finisce a veil_expires_at."},{"name":"redirect_uris, client_name, client_uri, token_endpoint_auth_method, grant_types, response_types, id_token_signed_response_alg, post_logout_redirect_uris, jwks, application_type, scope","type":"mixed","description":"I metadati come sono stati tenuti."}]}],"responseObjects":[],"errorFormat":"json","errorDetails":[{"status":400,"code":"invalid_client_metadata","description":"Errore OAuth: un campo della registrazione manca o non è ammesso (nome, sito, grant type, response type, algoritmo del token ID, jwks).","action":"Leggi `error_description` e correggi quel campo.","scope":"endpoint"},{"status":400,"code":"invalid_redirect_uri","description":"Errore OAuth: un redirect URI non è https, o è http fuori dall'interfaccia di loopback, o ha un frammento o informazioni utente.","action":"Registra URI https esatti, o http://127.0.0.1/… per un'app nativa.","scope":"endpoint"},{"status":404,"code":"invalid_request","description":"Errore OAuth: Accedi con Veil non è configurato su questo server.","action":"Usa https://veil.rip, o un server il cui documento di discovery risponde.","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"},{"status":503,"code":"temporarily_unavailable","description":"Errore OAuth: in questo momento ci sono troppe app registrate senza scheda.","action":"Registra l'app da /developers, con una scheda.","scope":"endpoint"}],"responseHeaders":[{"name":"Content-Type","value":"application/json","description":"JSON, anche per gli errori."},{"name":"Cache-Control","value":"no-store","description":"Privata: mai in una cache."}],"bodyFields":[{"name":"redirect_uris","in":"body","required":true,"description":"Da 1 a 10: https, o http sull'interfaccia di loopback."},{"name":"client_name","in":"body","required":true,"description":"Da 1 a 60 caratteri; non può dire Veil."},{"name":"token_endpoint_auth_method","in":"body","required":false,"description":"client_secret_basic (predefinito), private_key_jwt o none."},{"name":"grant_types, response_types","in":"body","required":false,"description":"authorization_code (e refresh_token); code."},{"name":"id_token_signed_response_alg","in":"body","required":false,"description":"EdDSA (predefinito) o ES256."},{"name":"jwks","in":"body","required":false,"description":"Con private_key_jwt: da 1 a 8 chiavi pubbliche. jwks_uri e logo_uri non si leggono."}],"documentationUrl":"https://veil.rip/docs/oidc-register?lang=it","supportsBrowserFetch":false,"browserMode":"local-or-server"}}