Panoramica di OAuth

OAuth (Open Authorization) è un protocollo di autenticazione che consente agli utenti di concedere a un altro sito Web o un’altra applicazione un accesso limitato alle proprie risorse disponibili in un sito Web o un’applicazione, senza condividere le proprie credenziali di accesso effettive.

OAuth agisce come un intermediario fidato che ti consente di autorizzare un servizio ad accedere ai tuoi dati di un altro servizio senza rivelare nome utente e password. Questo documento include una spiegazione tecnica del flusso di lavoro OAuth e un’analogia pratica con OAuth.

Flusso di lavoro OAuth

OAuth fornisce agli utenti un modo sicuro e standardizzato per concedere l’accesso ai propri dati su diversi siti Web e applicazioni, senza condividere le credenziali di accesso. Ti garantisce il controllo sui servizi che possono accedere ai tuoi dati e ti consente di revocare l’accesso in qualsiasi momento.

L’elenco seguente è una spiegazione dettagliata del funzionamento di OAuth.

Tu (l’utente) desideri utilizzare un sito Web o un’applicazione (denominato “client”) che richiede l’accesso ai tuoi dati su un altro sito Web o applicazione (denominato “server delle risorse”).

Il client richiede l’autorizzazione per accedere ai dati nel server delle risorse. In genere, lo fa reindirizzandoti alla pagina di accesso del server delle risorse.

Tu immetti le tue credenziali di accesso direttamente nella pagina di accesso del server delle risorse. Questo passaggio è fondamentale perché il nome utente e la password non vengono mai condivisi con il client.

Il server delle risorse verifica le tue credenziali ed esegue l’autenticazione. Una volta autenticato, genera un token di accesso univoco per il client.

Il server di risorse ti reindirizza all’applicazione client, fornendo il token di accesso insieme al reindirizzamento.

Il client riceve il token di accesso e lo invia al server delle risorse ogni volta che deve accedere ai tuoi dati.

Il server delle risorse controlla la validità del token di accesso. Se il token è valido, concede al client l’accesso alle risorse richieste per un periodo limitato.

Il client può utilizzare l’accesso concesso per recuperare o modificare i dati sul server delle risorse, ma solo nell’ambito definito dal token di accesso. L’ambito determina a quali azioni e dati può accedere il client.

Se il token di accesso scade o se il client necessita di autorizzazioni aggiuntive, il client può richiedere un nuovo token di accesso eseguendo nuovamente il processo di autenticazione.

Analogia pratica con OAuth

Di seguito è riportata un’analogia del funzionamento di OAuth utilizzando uno scenario pratico.

Immagina di dover organizzare una festa e di voler assumere un ristoratore (il cliente) che si occupi del catering. Tuttavia, non vuoi fornire al ristoratore le tue chiavi di casa (le credenziali di accesso) perché ciò gli consentirebbe l’accesso a tutti i tuoi effetti personali. Pertanto, ti rivolgi a un organizzatore di eventi fidato (OAuth) per gestire l’accesso.

Dici all’organizzatore di eventi che vuoi assumere un ristoratore per il catering. L’organizzatore di eventi sa come gestire l’accesso alla tua casa e i servizi del ristoratore.

L’organizzatore di eventi contatta il ristoratore e gli dice di recarsi a casa tua per un incontro. Tu non sei a casa in questo momento.

Il ristoratore arriva a casa tua ma si rende conto che non può entrare senza il tuo permesso (token di accesso). Ti chiama per chiederti il permesso di entrare.

Tu, in quanto proprietario della casa, vuoi verificare la credibilità del ristoratore prima di autorizzarlo a entrare. Quindi, fai alcune domande al ristoratore per verificare la sua identità (autenticazione).

Una volta che hai verificato le credenziali del ristoratore, gli fornisci un codice di accesso temporaneo (token di accesso) tramite il telefono. Questo codice gli consente di entrare in casa tua e preparare il cibo, ma solo nell’ambito delle sue mansioni.

Il ristoratore entra in casa utilizzando il codice di accesso e inizia a preparare il cibo. Può accedere alla cucina e alla sala da pranzo ma non può entrare nelle altre stanze.

Dopo un periodo specificato o al termine della festa, il codice di accesso scade, garantendo che il ristoratore non possa rientrare in casa tua senza il tuo permesso.

In questo scenario, tu (il proprietario della casa) sei l’utente, il ristoratore è l’applicazione client, la tua casa rappresenta i tuoi dati personali nel server delle risorse e l’organizzatore di eventi è OAuth.

Il codice di accesso funge da token di accesso, consentendo al client (ristoratore) un accesso limitato alle tue risorse (casa) senza compromettere le tue credenziali di accesso (chiavi di casa).

OAuth è simile a un intermediario fidato, che facilita la condivisione sicura dei tuoi dati tra i servizi, mantenendo al tempo stesso il controllo sulle autorizzazioni di accesso.