OAuth 1.0 rispetto a OAuth 2.0

May 01 2023
Introduzione a OAuth Consideriamo OAuth come il valet key di un'auto. A differenza di una normale chiave che consente al detentore un accesso illimitato, un parcheggiatore utilizza questa chiave del parcheggiatore solo per fare un giro temporaneo dell'auto senza avere accesso al vano portaoggetti o al bagagliaio.

Introduzione a OAuth

Consideriamo OAuth come la chiave del parcheggiatore di un'auto. A differenza di una normale chiave che consente al detentore un accesso illimitato, un parcheggiatore utilizza questa chiave del parcheggiatore solo per fare un giro temporaneo dell'auto senza avere accesso al vano portaoggetti o al bagagliaio. OAuth consente l'utilizzo delle informazioni sull'account di un utente finale da parte di servizi di terze parti come Amazon, Facebook, Google, Instagram, LinkedIn, Netflix, Paypal, Microsoft, Twitter, ecc. Queste società lavorano con molte applicazioni di terze parti e spesso consentono agli utenti di condividere le proprie credenziali all'interno di app come siti Web di notizie, piattaforme di blog, videogiochi online, ecc.

Ad esempio, quando si accede a un'altra app su Facebook, un utente può fare clic sul pulsante di accesso di Facebook. Quindi, Facebook li autentica automaticamente e il sito Web concede loro l'accesso con l'autorizzazione di Facebook. OAuth viene utilizzato anche per l'autenticazione della posta elettronica, come Gmail, in cui un servizio Web ottiene l'accesso a risorse protette all'interno di un altro dispositivo, consentendo all'utente di accedere a due diversi servizi con un unico accesso.

Versione OAuth:

OAuth 2.0 è un framework completamente riscritto di OAuth 1.0 e la versione 1.0 è considerata un protocollo che utilizza terminologia e termini diversi. La principale differenza nella funzione è il modo in cui entrambe le versioni classificano i compiti e l'esperienza dell'utente finale.

OAuth 1.0 ha un consumatore, un fornitore di servizi e un utente e non separa esplicitamente i ruoli del server delle risorse e del server delle autorizzazioni.

D'altra parte, OAuth 2.0 ha un client, un server di autorizzazione, un server di risorse e un proprietario della risorsa. Ecco perché queste versioni non hanno compatibilità con le versioni precedenti. OAuth 2.0 offre flussi di autorizzazione specifici per applicazioni Web, applicazioni desktop, telefoni cellulari, dispositivi intelligenti e applicazioni non basate su browser come i servizi basati su API.

OAuth 1.0

⇒ l'utente A desidera che l'App 1 acceda ai dati nell'App 2

⇒ App 1 invia richiesta di connessione con App 2 avviata dall'utente A

⇒ L'App 2 accetta la richiesta dell'App 1

⇒ L'App 2 invia un token temporaneo all'App 1

⇒ L'app 1 reindirizza l'utente A al login o possono essere utilizzati anche URL preformattati

⇒ Dopo che l'utente A si è autenticato con successo sull'App 1, l'App 1 chiede l'approvazione dell'utente A per concedere l'autorizzazione all'App 2 per accedere alle risorse dell'App 2

⇒ Al momento della concessione dell'approvazione, l'App 1 viene informata

⇒ L'app 1 richiede all'app 2 un nuovo token di accesso utilizzando il token temporaneo

⇒ L'app 2 approva la richiesta e invia un nuovo token di accesso

⇒ L'app 1 ora può accedere ai dati dell'app 2 utilizzando il nuovo token di accesso

Flusso OAuth 1.0

OAuth 2.0

⇒ l'utente A desidera che l'App 1 acceda ai dati nell'App 2

⇒ L'App 1 richiede l'accesso all'App 2 dal server di autorizzazione

⇒ l'utente A si autentica al server di autorizzazione con questa credenziale ricevuta nel passaggio precedente e restituisce la concessione di autorizzazione all'App 1 per accedere ai dati sull'App 2

⇒ Ora, l'App 1 richiede il token di accesso dal server di autorizzazione utilizzando la concessione di autorizzazione fornita dall'utente A nel passaggio 3 precedente

⇒ Il server di autorizzazione convalida la richiesta e invia un token di accesso all'App 1

⇒ L'app 1 ora può accedere ai dati nell'app 1 con il token di accesso

Flusso OAuth 2.0

Perché OAuth 2.0?

  • Migliore supporto per le applicazioni non browser
  • La separazione dei ruoli
  • Il token di accesso di breve durata e il token di aggiornamento
  • Complessità ridotta nella firma delle richieste