Blog

Sign in with OpenID, aanmelden vereenvoudigd

Geschreven door: Chris Ramakers 7 reacties

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!

7 Reacties op deze blogpost:

woony
Door woony op 12 mei 2010

Het idee is best wel interessant , maar ik vind het gebruik van een paswoord etc zeker niet slecht. Het geeft de mensen ook meer een gevoel van 'veiligheid'. Alsook een 'url' gebruiken ter ID vind ik toch wat apart , een url kan snel veranderen of niet meer beschikbaar zijn , etc etc... Persoonlijk ben ik dan eerder voorstander van een systeem als gravatar. 1 plaats waar je een account hebt, maar dus op 'elke' site kunt gebruiken. Gravatar is ook ondertussen veel meer vertegenwoordigt merk ik toch.

Chris R.
Door Chris R. op 12 mei 2010

@woony Het gebruik van username/password is zeker niet slecht alleen zijn er tegenwoordig zoveel sites waar je op moet aanmelden dat het voor een actieve internet gebruiker bijna niet meer te overzien is.

Ook zit je vaak met het probleem dat je username al bezet is of dat bijna elke site andere eisen stelt aan usernamen/wachtwoord
- minstens 8 tekens
- beginnen met een letter
- minstens 1 letter en 1 cijfer
- ...

OpenID probeer hier een oplossing voor te bieden en ik moet zeggen dat ze daar goed in slagen. Als alle sites OpenID zouden ondersteunen had ik geen nood aan 5 verschillende usernames en 10 verschillende wachtwoorden waarvan ik niet weet waar ik ze gebruik.

De veiligheid van OpenID is een ander verhaal maar van wat ik ervaren heb en weet is er weldegelijk voldoende rekening gehouden met veiligheid. Maar natuurlijk is alles hackbaar, ook je gebruikersnaam en wachtwoord trouwens.

Andries Seutens
Door Andries Seutens op 12 mei 2010

Een mooie aanvulling is de keynote die Dick Hardt gaf op de O'Reilly Open Source Convention:
http://www.youtube.com/watch?v=RrpajcAgR1E. Zonde van de slechte video kwaliteit.

Pickels
Door Pickels op 12 mei 2010

Het is goed dat jullie eens posten over OpendID. Ik vind OpenID heel praktisch zowel als gebruiker en als developer.

Ik heb wel een paar opmerkingen/aanvullingen:
"OpenID probeert een vaak voorkomend probleem op te lossen, namelijk gebruikers die hun wachtwoord vergeten."

Dit is zeker juist maar je moet nog altijd het paswoord van je OpenID provider onthouden. De meeste mensen hebben maar 1 paswoord voor al hun internet accounts dus dit zie ik niet als een groot probleem.

Het grootste voordeel als gebruiker van OpenID is dat je niet overal forms moet invullen, links in bevestigings mail aanklikken, enz. Als developer kun je een website maken waar je niks van de gebruiker moet vragen behalve zijn OpenID url en toch authentication hebben. Dit kan aantrekkelijk zijn voor gebruikers die liever niet hun persoonlijke gegevens met een website delen.

"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."

Dit is ook juist maar je kan dit opvangen door de optie te geven om meerdere OpenIDs te linken aan 1 account.

"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."

Wat ik ook zie gebeuren is dat gebruikers verschillende OpenIDs gaan gebruiken naar gelang het type website. Bijvoorbeeld voor alles van met muziek en media te maken hebben zou ik mijn Last.fm account gebruiken. Voor alle sociale media websites zou ik dan weer twitter gebruiken en voor professionele doeleinden zou ik mijn gmail/google account gebruiken.

"Vooral de strijd tussen Facebook Connect/OpenGraph, OpenID en oAuth zal hierin een beslissende rol gaan spelen."

OpenID en OAuth doen 2 verschillende zaken. Met OpenID kan je van 1 website op verschillende websites inloggen. Met OAuth kan je van verschillende websites op 1 website(meestal een API) inloggen.

Facebook is wel al een relying party maar dus nog geen provider: http://www.allfacebook.com/2009/05/facebooks-openid-live/ Dit is zoals je zegt wel een probleem voor de toekomst. Met het aantal gebruikers dat facebook heeft is Facebook Connect een grote concurent van OpenID.

Je bent nog 1 groot nadeel vergeten. OpenID is nogal gevoelig voor phishing. Ik kan een website maken die zegt dat je met je Google OpenID kan inloggen maar ik verwijs je dan door naar een phishing website die op de Google inlog pagina lijkt. Doorwinterde computer gebruikers hebben dit meestal wel door maar voor mensen die niet zo computer savvy zijn kan dit een probleem zijn.

Dit probleem wordt al ten dele opgelost door sommige providers. Bijvoorbeeld bij MyOpenID kan je op je inlog pagina een persoonlijk logo of fototje uploaden. Er zijn ook andere providers die zoals de bank met een soort digipas werken. Je zou ook een provider kunnen maken die met onze digitale identiteitskaarten zou kunnen werken.

Nog een paar interessante links:
Javascript OpenID selector: http://code.google.com/p/openid-selector/
Presentatie (The implications of OpenID): http://www.youtube.com/watch?v=DslTkwON1Bk

Ik hoop dat het ok is dat ik zo een lange comment heb getypt., maar ik vind OpenID een zeer interesant gegeven.

Chris R.
Door Chris R. op 12 mei 2010

@pickels
Bedankt voor de uitvoerige comment, really appreciate it.

Wat ik er wel nog bij wil zeggen is hetvolgende.

Je zegt dat het niet zo'n groot probleem is omdat de meeste mensen overal hetzelfde wachtwoord gebruiken. Ik durf dat te betwijfelen, maar los daarvan is het niet alleen je wachtwoord maar ook je gebruikersnaam die je vaak vergeet of de exacte combinatie van gebruikersnaam en wachtwoord. Daar kan OpenID een grote rol spelen en een oplossing bieden.

Je hebt absoluut gelijk als je verwacht dat mensen meerdere OpenID's gaan gebruiken, dat is ook niet meer dan normaal aangezien je meestal meerdere online identiteiten hebt. Professioneel, Privé, en wie weet wat nog allemaal. Voor elk "profiel" een andere OpenID hebben is niet zo vreemd.

De lijn tussen oAuth en OpenID is trouwens ook aan het vervagen. OpenID heeft als hoofddoel authenticatie maar biedt ook de mogelijkheid om profielgegevens over te dragen (data portability), oAuth heeft als hoofddoel data portability maar biedt (zoals bij twitter) ook de mogelijkheid om authenticatie te doen. Het is een dunne scheidingslijn en ik denk dat het voor de toekomst beter is dat er één formaat zou zijn, desnoods het OpenGraph formaat van facebook, het maakt niet uit ... maar geen wildgroei.

En wat je phishing verhaal betreft, overschot van gelijk. Dat is en blijft een jammer gegeven waar de meeste providers gevoelig voor zijn. Ik wist niet van de manier waarop MyOpenID het probeert op te lossen maar dat is in ieder geval een stap in de goede richting.

Nogmaals bedankt om de tijd te nemen je mening te uiten ... :)

Almar
Door Almar op 13 mei 2010

Bedankt voor dit heldere en complete artikel!

Het zou inderdaad best eens kunnen dat OpenID dit jaar zijn doorbraak gaat kennen.

In dat kader wil ik de lezers ook even wijzen op het Nederlandse initiatief OpenID Plus. Hierin werkt het Nederlandse bedrijfsleven onder leiding van ECP-EPN (het platform voor de InformatieSamenleving) samen om een aantal kip-ei problemen te doorbreken en OpenID op een hoger plan te tillen binnen een Trusted Framework.

Afspraken worden gemaakt over eenduidige user-interface, usability, veiligheid, toelating, promotie en beveiliging.

De bedoeling is om in 2010 met een aantal grote Relying Party's (webshops, etc) live te gaan en dit verder gestaag uit te bouwen in 2011 e.v.

Meer info op:
http://openidplus.nl/
http://www.ecp.nl/openid
http://almarhijlkema.amplify.com/

Nicky
Door Nicky op 17 mei 2010

Goed artikel, zelf was ik er nog niet echt van op de hoogte, zelden of nooit een site tegengekomen waar ik de keuze kreeg om zo aan te melden. Zelf zie ik als groot nadeel dat vele mensen hun gegevens bij de basis niet correct invullen (wie vult alles correct in op gmail?) en dus ga je vanaf het begin misschien met foutieve gegevens werken (zeker belangrijk bij ecommerce sites). Ga er me eens in verdiepen.

Reageer ook op dit artikel

U kan optioneel inloggen met Twitter of Facebook. U krijgt dan de mogelijk om uw reactie ook te delen via Twitter of Facebook
Login with twitter
Aanmelden