Passa al contenuto principale
Immagine
motivo esagonale viola

Che cosa sono i token OAuth?

I token OAuth autorizzano l'accesso alle risorse di un utente. In altre parole, non autenticano gli utenti, ma sono utilizzati dal fornitore di servizi per autorizzare l'accesso ad altre risorse per conto dell'utente.

La transazione OAuth si verifica quando un utente richiede l'autorizzazione a un'altra risorsa utilizzando l'identità del provider di servizi. La risorsa richiede l'autorizzazione al provider di servizi, che la fornisce sotto forma di richiesta di token e di segreto. Successivamente, la risorsa reindirizza l'utente al proprio provider di servizi per autenticare la richiesta. A questo punto, la risorsa scambia il token di richiesta con un token di accesso e un segreto. Se i due token condividono lo stesso segreto, la procedura OAuth è completa e l'utente ha delegato correttamente l'accesso della risorsa al provider di servizi.

La procedura OAuth

Passo 1

Richiesta d'accesso

Anne fa una richiesta a YouTube (risorsa) per pubblicare video direttamente sul suo feed Twitter (fornitore di servizi). YouTube chiede quindi a Twitter il permesso di accedere.

Immagine di una donna seduta a una scrivania

Passo 2

Richiesta scambio token e segreto

Twitter fornisce a YouTube un token di richiesta e un segreto.

Immagine di una chiave e di browser web

Passo 3

Autenticazione

Per accedere, YouTube reindirizza Anne a Twitter. Anne fornisce a Twitter le sue credenziali di accesso e autentica che la richiesta da YouTube è stata avviata da lei.

Immagine di una persona che usa un laptop

Passo 4

Accedi allo scambio di token

Una volta che la richiesta è stata autenticata dall'utente, YouTube chiede a Twitter di scambiare il token di richiesta e il segreto con un token di accesso. Se i segreti associati ai token corrispondono, Twitter fornirà a YouTube il token di accesso e concederà l'accesso a YouTube.

Immagine di una chiave e di browser web

Passo 5

Accesso garantito

Ora Anne può utilizzare in modo sicuro YouTube per pubblicare video direttamente sul suo feed Twitter.

Immagine di una donna seduta a una scrivania

L'esempio precedente riassume una procedura OAuth generica. OAuth consente inoltre un controllo e autorizzazioni più granulari, come il diritto di revocare i token tutte le volte che l'utente lo desidera e la definizione di diversi livelli di accesso ai provider di servizi per risorse diverse.

OAuth 1.0 rispetto a OAuth 2.0

Nel 2012, è stato introdotto OAuth 2.0, che rappresenta un'importante revisione di OAuth 1.0. Le modifiche apportate a questa versione di OAuth sono state talmente importanti da rendere le versioni 2.0 e 1.0 non compatibili. Il protocollo OAuth 2.0 è stato progettato per risolvere un difetto nella sicurezza della sessione nel flusso di autorizzazione OAuth.

Sebbene questo problema sia stato risolto con OAuth 2.0, la nuova versione non definisce né supporta intenzionalmente la crittografia, la firma, la verifica del client o il binding del canale, ma richiede invece che gli implementatori utilizzino, a tale scopo, un protocollo di sicurezza diverso, ad esempio HTTPS/TLS.

Le differenze tra OAuth 1.0 e 2.0 sono riassunte di seguito:

Grafico OAuth 1.0 e OAuth 2.0

OAuth rispetto a SAML – qual è la differenza?

SAML è un linguaggio variante XML che descrive un quadro di riferimento che consente a un dispositivo di eseguire sia l'autenticazione sia l'autorizzazione per conto di uno o più dispositivi.

Con l'emergere di opzioni leggere per la codifica dei dati, come JSON, OAuth è stato adottato per supportare gli utenti dei dispositivi mobili. Sebbene OAuth sia un protocollo più recente, nato dall'esigenza di sostituire SAML, per la sicurezza del single sign-on (SSO) entrambi i protocolli sono fondamentali.

In altre parole, OAuth non è un'alternativa a SAML ma i due protocolli possono completarsi a vicenda. Ad esempio, in un ambiente SSO, SAML può essere responsabile dell'autenticazione (confermando che l'utente è autentico e che gli deve essere concesso l'accesso) e OAuth sarà responsabile dell'autorizzazione (concedendo l'accesso a specifiche risorse protette).