AZAuth: un sistema oAuth 2.0 OpenSource

AZAuth è un sistema di autenticazione che segue il protocollo oAuth 2.0 ed è totalmente OpenSource

oAuth 2.0
oAuth 2.0

Si tratta di un nostro progetto, nato per soddisfare un’esigenza di programmazione: difatti in tutte le web application che creiamo, ci troviamo sempre a dover “reinventare la ruota” creando un sistema di autenticazione e di billing.

Abbiamo deciso, pertanto, di creare un sistema di autenticazione standalone e che sia valido per tutte le applicazioni che creiamo, in modo da non dover affrontare ogni volta lo stesso problema: la scelta del protocollo di comunicazione è caduta sulla versione 2.0 di oAuth (per gli amici oAuth2), che è lo stesso protocollo di autenticazione usato da grossi player come Facebook, Google e Twitter.

A questo punto molti di voi, quelli che hanno esperienza di programmazione di web application, si chiederanno come mai creare un server oAuth 2.0 quando è possibile interfacciarsi direttamente ai sistemi di autenticazione di Google, Facebook e Twitter. La risposta è semplice: sono lontani.

Di norma le nostre web application sono formate da un core lato server che espone delle REST-API all’esterno che vengono “consumate” da un’interfaccia di alto livello, ad esempio una interfaccia web “client-only” (ad esempio realizzata in AngularJS) oppure una applicazione mobile per SmartPhone: in questo caso il server API riceve dei comandi dal frontend che devono essere autenticati di volta in volta e, pertanto, avere un sistema di autenticazione in locale permette di velocizzare di molto il sistema.

Per comodità, abbiamo integrato all’applicazione di autenticazione anche un un sistema di billing “prepagato” in modo da avere in un unico “posto sicuro” tutto ciò che riguarda l’utente.

L’applicazione è realizzata in Ruby on Rails e sfrutta una base dati MongoDB per lo storage permanente dei dati e uno storage Redis per tenere in memoria gli utenti loggati. Tutte le viste sono state realizzate con Twitter Bootstrap per far si che siano adattabili con facilità.

Ovviamente una applicazione simile va mantenuta aggiornata nel tempo: non essendo il nostro business principale, abbiamo deciso di renderla totalmente OpenSource con la speranza che si crei una comunità di sviluppatori che ci aiutino nel mantenimento.

Siamo consci del fatto che creare una comunità OpenSource è un processo lento, pertanto per far fronte alle prossime incombenze, abbiamo creato una campagna su kickstarter: se il prodotto è di tuo interesse, hai tempo fino al 22 agosto per contribuire.

E stato scritto anche un breve articolo in inglese sulla nostra iniziativa.

Leave a Reply

Your email address will not be published. Required fields are marked *

2 × 5 =