OAuth Spiegato: Ruoli, Flusso PKCE e OAuth vs SAML

OAuth Spiegato

Cos'è OAuth? Ruoli, Flusso PKCE, OAuth vs SAML vs OIDC | We.Inc

OAuth 2.0 in parole semplici: quattro ruoli, il flusso authorization code con PKCE passo per passo, gli scope e in cosa OAuth differisce da OpenID Connect e SAML.

OAuth 2.0 è uno standard che permette a un'app di agire per tuo conto su un altro servizio senza mai vedere la tua password. Approvi una richiesta sulla pagina di accesso del servizio stesso, e l'app riceve un access token limitato agli scope che hai accettato. Si occupa dell'autorizzazione; OpenID Connect aggiunge l'accesso sopra di esso.

OAuth 2.0 vs OpenID Connect vs SAML 2.0

Prima di OAuth, collegare due servizi significava spesso digitare la password di uno dentro l'altro. OAuth l'ha sostituito con token a breve durata e con permessi limitati, emessi solo dopo la tua approvazione. Il generatore qui sotto crea nel tuo browser un vero verifier e challenge PKCE e costruisce l'URL di autorizzazione, così puoi vedere ogni parametro usato dal flusso.

Domande frequenti

OAuth è autenticazione o autorizzazione?

Autorizzazione. Un access token dice cosa può fare un'app, non chi è l'utente, e le API potrebbero non dirtelo nemmeno. Quando ti serve l'identità della persona, usa OpenID Connect, che restituisce un ID token firmato con claim come sub, iss, aud ed exp.

Cos'è PKCE e mi serve?

PKCE (RFC 7636) lega l'authorization code all'app che ha avviato il flusso. L'app invia prima l'hash di un segreto casuale e solo dopo il segreto stesso, così un code rubato è inutile. Usa S256, che i server devono supportare, invece di plain.

Qual è la differenza tra OAuth e SAML?

SAML è uno standard più vecchio basato su XML, in cui un identity provider invia un'asserzione firmata sull'utente a un service provider, soprattutto per il single sign-on aziendale nel browser. OAuth emette token per l'accesso alle API e funziona bene per app mobile e API. OpenID Connect è l'equivalente più vicino, nel mondo OAuth, dell'accesso con SAML.

Cosa sono gli scope?

Gli scope sono i permessi che un'app richiede, scritti come una lista separata da spazi di stringhe sensibili alle maiuscole definite dall'authorization server, per esempio openid email oppure repo read:user. La schermata di consenso li mostra, e il token copre solo ciò che è stato approvato.

Devo ancora usare il flusso implicit?

No per i nuovi progetti. Restituiva i token nel frammento dell'URL, dove possono trapelare tramite cronologia e log. Il flusso authorization code con PKCE dà alle app nel browser la stessa comodità senza quell'esposizione.

I quattro ruoli

Perché esiste lo scambio del code

Dove si inserisce OpenID Connect

Il flusso authorization code con PKCE

Ogni passaggio e i parametri che trasporta

PKCE nel codice

Creare un verifier e un challenge S256 nel browser

32 byte casuali codificati in base64url danno un verifier di 43 caratteri, la lunghezza minima consentita dall'RFC 7636.

Scambiare il code con i token

Si esegue dopo il reindirizzamento. Confronta prima state, poi invia il verifier salvato insieme al code.

Generatore PKCE e URL di autorizzazione

Crea un nuovo code_verifier e il relativo code_challenge S256 con le funzioni crittografiche del tuo browser, poi compone un URL di autorizzazione dalle tue impostazioni. Non viene inviato nulla; l'endpoint qui sotto è un segnaposto da sostituire.

Endpoint di autorizzazione

Scope (separati da spazi)

Nuovo verifier

code_verifier ({n} caratteri, tienilo segreto fino al passaggio 4)

code_challenge (S256)

URL di autorizzazione

Inizia gratis · Nessuna carta di credito richiesta

Correlati: Guide

Prodotto

Per chi è

Funzionalità

Risorse

Azienda

Mappa del sito