OAuth

Da Wikipedia, l'enciclopedia libera.

OAuth è un protocollo aperto, sviluppato da Blaine Cook e Chris Messina a partire dal novembre 2006. Tale protocollo permette l'autorizzazione di API di sicurezza con un metodo standard e semplice sia per applicazioni portatili che per pc fisso e web.

OAuth logo

Per gli sviluppatori di applicazioni è un metodo per pubblicare e interagire con dati protetti. OAuth garantisce ai service provider l'accesso da parte di terzi ai dati degli utenti, proteggendo contemporaneamente le loro credenziali.

In altre parole, permette all'utente di dare l'accesso alle sue informazioni presenti, ad esempio, su un sito detto service provider, ad un altro sito, chiamato consumer, senza però condividere la sua identità.

Il protocollo OAuth 1.0 è stato pubblicato come RFC 5849 nell'aprile 2010.

OAuth 1.0[modifica | modifica wikitesto]

Motivazioni[modifica | modifica wikitesto]

L'idea di base è quella di autorizzare terze parti a gestire documenti privati senza condividere la password. La condivisione della password infatti presenta molti limiti a livello di sicurezza, come ad esempio non garantisce supporto per singoli privilegi su determinati file o operazioni, ma rende accessibile l'intero account e il pannello di amministrazione. Inoltre vige l'impossibilità di revocare l'accesso nel futuro se non cambiando la password dell'intero account.

OAuth è nato quindi con il presupposto di garantire l'acesso delegato ad un client specifico per determinate risorse sul server per un tempo limitato, con possibilità di revoca.

Attori[modifica | modifica wikitesto]

In OAuth esistono 3 attori principali:

  • Server
  • Client
  • Utente

L'utente è la persona fisica che vuole garantire l'accesso alle risorse presenti sul server. Il client è la parte che richiede l'accesso alle risorse protette. Per far questo il client interagisce con il server ottenendo delle proprie credenziali temporanee. Per accedere alle risorse protette, il client richiede all'utente il permesso (token di accesso). Una volta ottenuto può accedere e interagire con le risorse stabilite per un breve periodo.

Sicurezza e limiti[modifica | modifica wikitesto]

OAuth 1.0 presenta alcune limitazioni a livello di sicurezza. Il server non svolgerà questo servizio "gratuitamente", ma raccoglierà informazioni riguardanti l'utente, il client e la loro interazione. OAuth 1.0 non garantisce confidenzialità ne sulle richieste, ne sui contenuti. Sebbene questo protocollo garantisce che il client acceda ad informazioni indesiderate, non garantisce che l'uso delle risorse autorizzate rimanga nell'ambito specificato. Per questo motivo OAuth suggerisce al server di proteggere le risorse tramite il protocollo TLS.

Per garantire l'integrità delle informazioni, OAuth offre 3 metodi diversi:

  • Plaintext -> usato solo con protocollo HTTPS;
  • HMAC
  • RSA

Un ulteriore problema noto è quello del phising. Il client potrebbe indirizzare l'utente and una pagina di accesso fasulla del server per richiedere l'autenticazione e ottenere le credenziali dell'utente.

OAuth 2.0[modifica | modifica wikitesto]

Un'evoluzione di OAuth 1.0 è descritta nel documento RFC 6749 dell'ottobre 2012. Il principio di funzionamento è il medesimo, ma differisce dal predecessore per qualche miglioramento nel servizio. OAuth 2.0, infatti, presenta una chiara divisione dei ruoli, implementando un un mediatore tra client e server. Un'altro vantaggio rispetto alla precedente versione è dato dalla possibilità di prolungare il tempo di utilizzo del token di accesso qualora desiderato.

Gli attori sono i medesimi con l'aggiunta di un server mediatore. Quest'ultimo ha il principale compito di gestire i token di accesso tra client e server. Il server che funge da mediatore può essere lo stesso che ospita le risorse alle quali accedere. Il server mediatore può gestire token di accesso provenienti da più di un solo server.

I limiti di OAuth 2.0 sono i medesimi di OAuth 1.0. I protocolli Oauth non sono compatibili fra loro.

Voci correlate[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

Telematica Portale Telematica: accedi alle voci di Wikipedia che parlano di reti, telecomunicazioni e protocolli di rete