Abbiamo sempre ritenuto importante utilizzare un sistema di Single Sign On sui siti web, sia come utenti che come sviluppatori. Abbiamo visto OpenID, che non è riuscito ad imporsi per svariati motivi (salvo notevoli eccezioni). Abbiamo visto passare anche BBAuth (che essendo di Yahoo! puzza un po' di morto). Poi ecco Facebook Connect, ma occorre fidarsi e poi anche Google Federated Login, ma poi hai paura di essere tracciato e forse non ce lo hanno in troppi... insomma, a dispetto di coloro che pensano che la questione SSO sia una faccenda conclusa e risolta, sembra proprio che ci sia ancora spazio per delle buone idee. E quando si parla di buone idee, Mozilla è sempre in prima fila. E infatti, ecco la loro proposta: BrowserID. Vediamo di capire meglio di cosa si tratta.
La descrizione ufficiale parla di un sistema di autenticazione decentralizzato, basato su un protocollo chiamato Verified Email. Si capisce dunque subito che questo sistema userà il nostro indirizzo email come nostro identificativo univoco. Si tratta dell'indirizzo che usiamo comunemente: BrowserID non rilascia indirizzi email.
Niente "username" o URL (come per OpenID), ma solo il vecchio caro indirizzo di posta elettronica. Tramite tale identificativo potremmo collegarci a tutti i siti che faranno uso di BrowserID e usare i loro servizi.
Il concetto di autenticazione alla base di BrowserID (così come per OpenID) è quello di poter verificare di possedere quell'identificativo. I metodi con cui questa verifica viene effettuata esulano dal sistema stesso: password? lettore biometrico? Dipenderà dal tipo di verifica che vorrà essere effettuata dal provider email (tecnicamente chiamato Primary Identity Authority).
Una caratteristica interessante di BrowserID è che questo è stato programmato per funzionare da subito ma di poter migliorare successivamente grazie alla sua integrazione direttamente all'interno dei browser e dei service provider di email (come gmail.com o yahoo!). Man mano che gli utenti lo useranno, browser vendor e gestori di posta elettronica passeranno ad integrarlo, permettendo così a più persone di usarlo... e così via.
L'integrazione all'interno dei browser sarà possibile grazie ad una estensione dell'oggetto navigator
, che con BrowserID dovrà contenere anche l'oggetto id
e relativi metodi. Per quanto riguarda invece l'integrazione da parte dei gestori di posta elettronica, si tratterà di fare in modo che questi possano salvare, per i loro utenti, anche i certificati necessari alla transazione sicura prevista dal protocollo verified email tra loro e il cosiddetto implementation provider, il quale potrà essere o il browser o, se questo non supportasse ancora nativamente BrowserID, un servizio ausiliare come l'attuale browserid.org. Una volta che avrà preso piede, il sistema non dovrà usare nessun meccanismo secondario (come appunto il sito BrowserID), ma solo il browser e il provider email. Sarebbe perfetto, non credete?
Lo stato dei lavori, al momento, è sperimentale. Nessun browser ancora implementa nativamente il sistema né tantomeno alcun email provider. Tuttavia il sistema è sperimentabile direttamente da chiunque utilizzando il sito demo myfavoritebeer.org. Per adesso l'implementazione lato client e lato server sono effettuate dal sito Browserid.org.
Le differenze con OpenID sono molte:
- OpenID "puro" usa degli URL come identificativi, invece BrowserID indirizzi email
- OpenID utilizza un sistema di terze parti per l'autenticazione, mentre BrowserID riutilizza un sistema già a nostra disposizione: il provider email
- BrowserID, almeno al momento, non ha nessun meccanismo di delega, che invece è un punto cruciale di OpenID: se il mio provider di posta elettronica dovesse chiudere, che succederà ai miei account BrowserID?
- OpenID ha sempre sofferto di problemi a livello di user experience, mentre l'obiettivo a medio termine di BrowserID è quello di integrare tutto all'interno del browser stesso
- OpenID ha un concetto piuttosto complesso di profilazione, dati dell'utente che possono transitare dal provider al sito e sul quale l'utente ha il completo controllo. Alcuni provider implementano poi il concetto di persona, gruppi diversi di dati legati allo stesso identificativo OpenID. Anche su questo aspetto non appare niente nel protocollo BrowserID
Non credo comunque che si possa fare, al momento, una onesta comparazione tra l'uno e l'altro sistema. Nessuno può dire se avrà successo o meno. Il campo SSO è un campo minato sul quale ormai non si contano più i cadaveri degli entusiasti implementatori. Sicuramente vale la pena di aspettare con cauto ottimismo.
Per conoscere i dettagli del protocollo vi consiglio questa lettura.