veil

Comincia un accesso

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.

GET/oidc/authorize
Accesso
Accesso pubblico
Client
Client locale o server

Parametri#

NomePosizioneSignificato
response_typeObbligatorioQuerycode.
client_idObbligatorioQueryIl client_id dell'app.
redirect_uriObbligatorioQueryEsattamente uno di quelli registrati (un URI di loopback con qualunque porta).
scopeObbligatorioQueryopenid, e qualunque tra profile veil veil:accounts veil:orgs veil:keys.
code_challengeObbligatorioQueryBASE64URL(SHA-256(code_verifier)), 43 caratteri.
code_challenge_methodObbligatorioQueryS256.
stateQueryFino a 1024 caratteri; torna com'è, e il suo SHA-256 sta nel consenso firmato.
nonceQueryFino a 512 caratteri; nel consenso firmato e nel token ID.
promptQuerynone, o qualunque tra login consent select_account.
ui_localesQueryit mostra la pagina in italiano.

Esempi di richiesta#

cURL
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'

Risposta#

HTTP 200text/html

La pagina di consenso (HTML). Dopo la firma il browser va a redirect_uri con code, state e iss.

Intestazioni della risposta#

IntestazioneValoreSignificato
Cache-Controlno-storeLa pagina porta un id di richiesta.

Cosa verificare#

Al redirect URI controlla state, poi che iss sia https://veil.rip, prima di scambiare il codice.

Note d’uso#

  • 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.

Errori#

Il callback OAuth mostra una pagina HTML di ritorno, anche in caso di errore. I codici seguenti descrivono l’errore mostrato nella pagina. Guida a risposte ed errori

HTTPCodiceSignificato e cosa fare
400invalid_request

Errore OAuth: un parametro manca, è ripetuto o malformato, oppure il corpo non è un modulo.

Leggi error_description, correggi la richiesta e mandala di nuovo.

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.