Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Un sistema di login con OAuth 2 e Scribe

Nozioni introduttive su come realizzare un sistema d'esempio che sfrutta OAuth 2 mediante la libreria Scribe per la gestione della procedura di login degli utenti.
Nozioni introduttive su come realizzare un sistema d'esempio che sfrutta OAuth 2 mediante la libreria Scribe per la gestione della procedura di login degli utenti.
Link copiato negli appunti

Ogni Authorization Server normalmente offre un SDK e la documentazione necessaria. Se si volesse realizzare
un'App in grado di effettuare il login basandosi su più
fornitori di identità, ci si troverebbe innanzi alle seguenti criticità:

  1. ogni SDK è una libreria che va aumentare le dimensioni dell'App da installare. Considerando che
    molto probabilmente non si andranno ad utilizzare tutte le
    funzionalità dell'SDK, avremmo uno spreco di banda per scaricare l'App ed uno spreco di spazio sul dispositivo in
    cui si va ad installare.
  2. ogni SDK avrà delle funzionalità e delle entità simili tra loro. Avere n tipi di login comporta il fatto
    dover supportare n tipi di procedure molto simili tra
    loro ma basate su librerie diverse.

Fortunatamente esiste la libreria Java Scribe che semplifica notevolmente la vita nel caso in cui si voglia lavorare con OAuth. Per usarla è sufficiente includere la dipendenza Maven:

<dependency>
  <groupId>com.github.scribejava</groupId>
  <artifactId>scribejava-apis</artifactId>
  <version>5.1.0</version>
</dependency>

Per inizializzarla è sufficiente eseguire un codice simile a questo:

OAuthService service = new ServiceBuilder(YOUR_API_KEY)
  .apiSecret(YOUR_API_SECRET)
  .build(LinkedInApi20.instance());

YOUR_API_SECRET e YOUR_API_KEY sono codici che vengono forniti dall'authorization
authority che si decide di utilizzare. Ovviamente un'App può
contenere tutti gli OAuthService che gli servono, uno per ogni
autorità supportata (Twitter, Facebook etc.).

Nei prossimi paragrafi vedremo la realizzazione di un sistema d'esempio che sfrutta OAuth 2 mediante Scribe
per la gestione della procedura di login
degli utenti.

OAuth Test: un esempio di come usare Facebook per effettuare il login

Si è detto in precedenza che OAuth è stato adottato da tutti i big del mondo IT (Twitter,
Google, Facebook e Microsoft). Per rendere più chiaro l'utilizzo della libreria Scribe
andremo a realizzare una App d'esempio che non farà niente altro che effettuare il login mediante l'Authorization
Server di Facebook.

A fronte
di questa
applicazione che non fa sostanzialmente niente, se non consentire di effettuare il login, vedremo le operazioni da
svolgere per impostare un ambiente di test,
utilizzando la propria connessione ad Internet casalinga. L'applicazione è composta da un'App Android e da un
backend realizzato in Java con Maven e Spring. Per la parte di backend si è utilizzato Eclipse come
ambiente di sviluppo e Java JDK 1.7. Il nome di questa applicazione, con un notevole sforzo di immaginazione è OAuth-test.

Lo schema del sistema che si vuole utilizzare come esempio d'utilizzo di OAuth è illustrato nella figura
sottostante.

Schema OAuth Test

Come si vede dalla figura abbiamo concettualmente 3 sistemi: il server Facebook che funge da authorization
server
, l'applicazione OAuth-test sul dispositivo ed il rispettivo backend OAuth-test-backend
che rappresentano la nostra applicazione,
(quella che in ambito OAuth viene chiamata client).

E' bene notare che lo scopo di quest'App d'esempio è illustrare semplicemente la logica di funzionamento di
OAuth e di cosa ci offre la libreria Scribe per
l'autenticazione con OAuth. Sono stati volutamente esclusi alcuni
elementi fondamentali per un progetto "reale":
l'uso dell'HTTPS e la memorizzazione del token
con un sistema di persistenza sono solo alcuni egli elementi non inclusi al fine di rendere il tutto il più
chiaro e semplice possibile.

Nei prossimi paragrafi introdurremo le varie parti del sistema d'esempio e la configurazione da eseguire su
Facebook. I sorgenti del progetto d'esempio sono disponibili su questo link per la parte Android e su quest'altro per la parte di backend.

Nel caso in cui vogliate riprodurre tale applicazione d'esempio da un PC di casa vostra, verranno fornite alcune istruzioni su come configurare l'ambiente. La parte di backend è stata realizzata in Java usando Maven e Spring. La libreria Scribe viene utilizzata sul back-end, non all'interno dell'App Android.

A differenza delle altre librerie presentate in questa guida, Scribe non verrà utilizzata direttamente nell'App Android ma nel cosidetto backend. Il codice completo dell'App verrà fornito a corredo di questa guida, quindi in questa sezione ci occuperemo solo degli aspetti salienti del progetto d'esempio.

Ti consigliamo anche