{"revision":"9f11a31dd2951db0","language":"it","entry":{"id":"oidc-authorize","kind":"endpoint","group":"oidc","title":"Comincia un accesso","method":"GET","path":"/oidc/authorize","paths":[],"summary":"L'endpoint di autorizzazione. Controlla l'app e il suo redirect URI, tiene la richiesta 30 minuti e mostra la pagina di consenso, dove firma la chiave di dispositivo della persona.","response":"La pagina di consenso (HTML). Dopo la firma il browser va a redirect_uri con code, state e iss.","parameters":[{"name":"response_type","in":"query","required":true,"description":"code."},{"name":"client_id","in":"query","required":true,"description":"Il client_id dell'app."},{"name":"redirect_uri","in":"query","required":true,"description":"Esattamente uno di quelli registrati (un URI di loopback con qualunque porta)."},{"name":"scope","in":"query","required":true,"description":"openid, e qualunque tra profile veil veil:accounts veil:orgs veil:keys."},{"name":"code_challenge","in":"query","required":true,"description":"BASE64URL(SHA-256(code_verifier)), 43 caratteri."},{"name":"code_challenge_method","in":"query","required":true,"description":"S256."},{"name":"state","in":"query","required":false,"description":"Fino a 1024 caratteri; torna com'è, e il suo SHA-256 sta nel consenso firmato."},{"name":"nonce","in":"query","required":false,"description":"Fino a 512 caratteri; nel consenso firmato e nel token ID."},{"name":"prompt","in":"query","required":false,"description":"none, o qualunque tra login consent select_account."},{"name":"ui_locales","in":"query","required":false,"description":"it mostra la pagina in italiano."}],"sample":"/oidc/authorize","access":"public","base":"directory","notes":["Un'app sconosciuta o un redirect URI non registrato si rifiutano sulla pagina, senza mai mandarci il browser. Ogni altro errore torna all'app come error= con state e iss.","Errori che tornano all'app: invalid_request, invalid_scope, unsupported_response_type, request_not_supported, request_uri_not_supported, access_denied, login_required, consent_required."],"errors":["400 invalid_request","429 rate_limited","500 internal_error","503 busy"],"related":["sign-in-with-veil"],"sections":[{"kind":"code","language":"shell","code":"curl -fsS 'https://veil.rip/oidc/authorize?response_type=code&client_id=veil_app_0123456789abcdef0123456789abcdef&redirect_uri=https%3A%2F%2Fapp.example.org%2Fcallback&scope=openid%20profile%20veil&state=af0ifjsldkj&nonce=n-0S6_WzA2Mj&code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM&code_challenge_method=S256'"}],"live":false,"responses":[{"status":200,"contentType":"text/html","description":"La pagina di consenso (HTML). Dopo la firma il browser va a redirect_uri con code, state e iss.","fields":[]}],"responseObjects":[],"errorFormat":"html","errorDetails":[{"status":400,"code":"invalid_request","description":"Errore OAuth: un parametro manca, è ripetuto o malformato, oppure il corpo non è un modulo.","action":"Leggi `error_description`, correggi la richiesta e mandala di nuovo.","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":"no-store","description":"La pagina porta un id di richiesta."}],"verify":"Al redirect URI controlla state, poi che iss sia https://veil.rip, prima di scambiare il codice.","documentationUrl":"https://veil.rip/docs/oidc-authorize?lang=it","supportsBrowserFetch":false,"browserMode":"local-or-server"}}