Uw browser is sterk verouderd. Upgrade je browser voor een betere gebruikers ervaring en veiligheid.

Artikels

Sign in with OpenID, aanmelden vereenvoudigd

Geschreven door

OpenID

De naam van deze manier van aanmelden is Single Sign on, Federated Login of Federated Authentication. Concreet wil dit zeggen dat je als ontwikkelaar het identificeren en authenticeren van je gebruikers overlaat aan een andere partij, een OpenID provider zoals het in vaktermen heet.

OpenID is het protocol en de standaard die het decentraliseren van login en authenticatie mogelijk maakt, hun belangen worden verdedigd door de OpenID Foundation.
OpenID is origineel ontworpen door medewerkers van SixApart, makers van LiveJournal, in 2005. De grote doorbraak wordt dit jaar verwacht. Als je de cijfers van OpenID bekijkt kan je inderdaad stellen dat er elk jaar exponentieel meer gebruikers en providers bij komen. Eind 2009 waren er meer dan 1 miljard OpenID enabled accounts en 9 miljoen websites waar je met je OpenID kan aanmelden. Hierbij moeten we wel een opmerking plaatsen namelijk dat 1 miljard OpenID enabled accounts lang niet gelijk staat met 1 miljard OpenID gebruikers.

Maar wat kan je er nu precies mee? OpenID probeert een vaak voorkomend probleem op te lossen, namelijk gebruikers die hun wachtwoord vergeten.

Werking

Wat is een OpenID eigenlijk? Voor de eindgebruiker is een OpenID gewoon een internet adres. www.myspace.com/chrisramakers kan bijvoorbeeld mijn OpenID zijn.

Het principe van OpenID is simpel. Bij registratie wordt gevraagd of je gebruik wil maken van OpenID of op de klassieke manier wil registreren met gebruikersnaam en wachtwoord. Kies je voor OpenID krijg je de keuze uit verschillende OpenID providers of mag je zelf je OpenID URL opgeven zoals je hieronder ziet op de site van AVRO.

Avro OpenID integratie

Daarna word je naar de website van je OpenID provider gestuurd (Google bijvoorbeeld) waar om je toestemming wordt gevraagd je OpenID aan deze nieuwe website te koppelen. Wat volgt zijn enkele versleutelingsmechanismen achter de schermen en word je mooi terug naar de website gestuurd waar je wou registreren.

OpenID Bevestiging bij Google

Nu kan je verder gaan met het invullen van je profiel (naam, email, foto, alias, ...) en kan je je registratie afronden. Zonder een gebruikersnaam of wachtwoord te moeten opgeven.

Bij toekomstige bezoeken kan je aanmelden door gewoon dezelfde OpenID URL op te geven als bij je registratie. Je hoeft dus om aan te melden niet langer je gebruikersnaam en wachtwoord in te geven.

Voordelen

Daar sta je dan, te staren naar het login scherm, je hebt al 5 verschillende wachtwoorden geprobeerd en 3 verschillende gebruikersnamen maar toch kan je niet aanmelden. Telkens krijg je de melding dat je wachtwoord ongeldig is of dat de gebruikersnaam niet bekend is. Meestal zit er dan niets anders op dan een nieuw wachtwoord aan te vragen.

Met OpenID wordt deze situatie verwezen naar de geschiedenisboeken. In plaats van overal je gebruikersnaam en wachtwoord te gebruiken om aan te melden kan je gewoon aanmelden met je OpenID URL. En geloof het of niet, de kans is zeer groot dat je al een OpenID hebt.

Ben je bijvoorbeeld geregistreerd op Hyves, Livejournal, Blogger, Flickr.com, Yahoo of heb je een Gmail of Windows Live emailadres dan heb je ook al een OpenID omdat al deze partijen een OpenID provider zijn.

Ook voor webontwikkelaars zijn er voordelen aan het gebruik van OpenID. Zo hoef je niet bezig te zijn met alles wat te maken heeft met Authentication, password recovery, account activation, etc ... Je kan je focussen op het implementeren van OpenID en de OpenID provider zorgt voor de rest.

Nadelen

Echt veel nadelen voor de eindgebruiker zijn er niet buiten natuurlijk het feit dat er nog maar een erg beperkt aantal websites zijn waar je met OpenID kan aanmelden. Er wordt inderdaad verklaard dat er meer dan 9 miljoen websites zijn waar je OpenID kan gebruiken maar in realiteit komen gebruikers zelden een website tegen waar je met OpenID kan aanmelden. Het aantal websites waar het wel kan stijgt echter elke dag en de toekomst ziet er rooskleurig uit.

Ik kijk al uit naar de dag dat ik maar één gebruikersnaam en wachtwoord moet onthouden en voor de rest overal kan aanmelden met OpenID.

Natuurlijk moet je rekening houden met het feit dat je als ontwikkelaar afhankelijk bent van een derde partij als je OpenID implementeert in je website.
Is bijvoorbeeld Myspace niet bereikbaar, zullen je gebruikers die een Myspace OpenID gebruiken niet kunnen aanmelden op je website. De kans dat grote OpenID providers zoals Google, Yahoo of Live onbereikbaar zijn is natuurlijk niet erg groot maar de kans bestaat en het is ongetwijfeld al voorgekomen. Houd er dus rekening mee dat indien je met informatie zit waar je gebruikers altijd en overal toegang toe moeten hebben je best een backup mechanisme voorziet om aan te melden.

Privacy en Security

Privacy en security zijn aspecten waar je ook zeker rekening mee moet houden. Je hebt namelijk zo goed als geen controle over het al dan niet veilig zijn van je OpenID provider. Hoewel het OpenID protocol gebruik maakt van het Diffie-Hellman versleutelingsmechanisme moet je toch in je achterhoofd houden dat security iets is wat je deels uit handen geeft.
Wordt je account bij je OpenID provider bijvoorbeeld gehacked dan heeft deze hacker plots ook toegang tot alle websites waar je je OpenID gebruikt. Het is dus van zeer groot belang dat je je OpenID provider vertrouwt en zeer defensief omgaat met de login gegevens van je OpenID provider. Net hetzelfde met privacy. Het OpenID protocol laat toe om je persoonlijke gegevens zoals naam, email, woonplaats, alias, etc. te delen met de website waar je wil aanmelden. Eens je je toestemming gegeven hebt moet je er natuurlijk van bewust zijn dat deze partij in de toekomst ook toegang zal hebben tot je gegevens, ook als je deze gegevens wijzigt bij je OpenID provider. Als je bij je OpenID provider bijvoorbeeld je spam emailadres verandert in je echt emailadres zal dit automatisch gedeeld worden met alle websites waar je via OpenID toestemming tot delen hebt gegeven. Zeker iets om als gebruiker in het achterhoofd te houden.

Facebook Connect en Sign in with Twitter

Facebook en Twitter bieden zelf ook een variant aan op OpenID namelijk Facebook connect en Sign in with Twitter. Hoewel ze beiden ook Federated Login mogelijk maken gebruiken ze niet het OpenID protocol.

Het verschil tussen OpenID en Facebook Connect of Sign in with Twitter is dat je er niet alleen mee kan aanmelden op andere websites maar deze andere websites ook toegang krijgen tot je Twitter of Facebook profiel.

Gebruik je bijvoorbeeld Gowalla op je iPhone met Sign in with Twitter kan je automatisch een Twitter berichtje laten plaatsen op je Twitter pagina als je bepaalde acties uitvoert met Gowalla. Allemaal zonder je Twitter gebruikersnaam en wachtwoord aan Gowalla te moeten geven. Twitter gebruikt hiervoor een variant van het oAuth Protocol waar we later een andere blogpost aan zullen wijden.

Gowalla twitter authentication

Facebook heeft met Facebook Connect een vergelijkbare, hetzij veel meer uitgebreide, dienst. Daarnaast heeft Facebook op de F8 conferentie recent OpenGraph aangekondigd wat op termijn Facebook Connect zal vervangen en nog veel meer mogelijkheden biedt.

De toekomst

Hoe ziet de toekomst er uit voor ons internet gebruikers? Als het aan OpenID ligt is het een toekomst waarbij je nergens nog een gebruikersnaam of wachtwoord moet opgeven om aan te melden. Of dat realistisch is voor de nabije toekomst is nog maar de vraag. Veel zal afhangen van de snelheid waarmee ontwikkelaars OpenID omhelzen en zullen inbouwen in hun applicaties en websites.

Een ander gevaar is dat er een wildgroei van protocollen gaat ontstaan waardoor de inburgering bij de gewone internet gebruikers zal stagneren. Vooral de strijd tussen Facebook Connect/OpenGraph, OpenID en oAuth zal hierin een beslissende rol gaan spelen.

Ik zie de toekomst rooskleurig in en hoop dat we snel ook sommige van onze klanten kunnen overtuigen om gebruik te gaan maken van OpenID op hun website. Heb je zelf als gebruiker of als ontwikkelaar ervaring met OpenID, oAuth of Facebook connect laat dan zeker weten wat jij er van vond en hoe je de toekomst ziet!