OpenID, en introduktion

En av de tekniknyheter som fått mer utrymme än andra senaste tiden är OpenID. I den här artikeln ska vi titta på vad OpenID är och vilket värde det ger dess användare. Jag tänkte återkomma vid ett senare tillfälle med mer teknisk information om hur det fungerar och hur man gör sin egen sajt OpenID-kompatibel.

Hur många användar-IDn har du? Själv har jag vid något tillfälle senaste året eller så, loggat in som någon av (håll i dig nu…): robert.buren, robertburen, robert_buren, robu, robbur, robertb, robertb, 67349 och robertbu. Det kanske är lite i överkant, men prova att räkna efter själv ska du se att det är fler än du tror. Och till vart och ett av dessa IDn finns ett lösenord knutet. Ofta använder jag (som de flesta andra) samma lösenord på flera ställen, men det kan mycket väl vara så att samma användar-ID har olika lösenord på olika sajter också. Om du inte har sett det här som ett problem förut så beror det antagligen på att du helt enkelt resignerat och trott att det är ett problem som inte kommer att lösas — eller så tycker du bara om att motionera minnet med en massa artificiella bokstavskombinationer. Jag tillhörde nog den förstnämnda kategorin. Tills nyligen, alltså, när jag fick höra om, och prova på, OpenID!

Som användare av OpenID får du följande fördelar:

  • ett användar-ID, som funkar på alla sajter (som stöder OpenID) och som garanterat inte redan är taget av någon annan
  • ett lösenord. Eller, beroende på vilken OpenID-provider du använder så kanske du istället för lösenord använder någon typ av certifikat eller varför inte fingeravtrycksigenkänning?
  • du slipper skriva in de vanligaste uppgifterna i din användarprofil när du registrerar dig på ett nytt ställe, dvs för- och efternamn, email, etc
  • du behöver inte oroa dig för att ditt lösenord stjäls av någon skum internet-butik, eftersom inloggningen i praktiken görs på annat ställe. (Däremot måste du istället lita på din OpenID-provider, vilket ofta lyfts fram som en av svagheterna i OpenID.)

Ett OpenID är en webb-URL som du själv har full kontroll på. Eftersom den är unik så behöver du inte oroa dig för att någon annan hunnit ta den före dig. Du måste ha kontroll över den, eftersom du måste kunna lägga till några enkla html-taggar i sidhuvudet på sidan, för att peka ut vilken OpenID-server som ska användas för autentisering. Min OpenID-URL hos min nuvarande OpenID-provider är http://robu.myopenid.com. Jag har alltså registrerat mig hos myopenid.com och knutit min lösenordsskyddade profil till den URLen.

När helst jag nu vill registrera mig på en sajt som stödjer OpenID räcker det om jag skriver in den URLen. Vad som händer sedan (lite översiktligt) är att sajten går till den URLen, ser vilken OpenID-server som ska autentisera mig, och gör en redirect i min browser till den servern. Jag loggar in där (dvs hos min OpenID-provider) som vanligt. Om jag redan loggat in tidigare så har jag ju redan en session där och behöver alltså inte ens göra om det igen. Min OpenID-provider frågar mig då om jag godkänner att skicka över profilinformation till den frågande sajten. När jag godkänt detta skickas ytterligare en redirect till min browser, och jag hamnar då tillbaka hos den ursprungliga sajten, som då redan fått den profilinformation jag godkänt.

Nästa gång jag vill logga in på samma sajt skriver jag in min OpenID-URL igen, och blir återigen redirectad till min OpenID-provider. Eftersom jag då redan godkänt den sajten hos min OpenID-provider så behöver han bara bekräfta att jag är jag (med mitt lösenord, t.ex.). Sedan blir jag tillbakaskickad, med en etablerad session på sajten. Om jag redan tidigare loggat in hos min OpenID-provider så sker dessa steg i snabb följd utan min inblandning, och det ser alltså ut som om jag loggar in direkt med mitt OpenID på sajten jag vill in på (utan att behöva ange mitt lösenord)!

I beskrivningen ovan har jag dessutom hoppat över ett steg som gör användandet ännu trevligare för mig som slutanvändare! Jag använder nämligen inte robu.myopenid.com som OpenID! Jag har registrerat en domän särskilt för detta ändamål: robu.se, och det är den jag anger istället! Specifikationen till OpenID gör det nämligen möjligt att ha en annan URL som pekar ut det riktiga IDt. Jag måste även på denna sida kunna ange speciella html-taggar i sidhuvudet, som pekar ut mitt riktiga OpenID och den OpenId-provider jag vill använda. (Kolla in html-källkoden på robu.se om du vill, så ser du!)

Den stora fördelen med att delegera mitt OpenID på det sättet är att jag obehindrat kan byta OpenID-provider när som helst, och behålla mitt OpenID, dvs robu.se, så länge jag vill! Varje gång en sajt vill autentisera mig hämtas sidan på http://robu.se, där OpenID-providern pekas ut, och sedan blir jag skickad dit för inloggning. Det enda jag behöver göra för att byta provider är att registrera mig hos den nya providern och peka ut den i sidhuvudet på http://robu.se.

OpenID ger användaren kontroll över sitt ID på nätet, och det finns uppenbara fördelar med att ha och använda ett OpenID. Det är naturligvis först när användandet uppnått någon sorts kritisk massa som de stora fördelarna kommer, men å andra sidan är det så enkelt att skaffa och använda ett OpenID, så jag ser ingen anledning att vänta. Ha så kul!

Tillägg: Bäst att jag skriver det här innan nån annan gör det… Jag vet att OpenIDs arkitektur har vissa öppningar för phishing. Det är naturligtvis ett problem man inte ska blunda för på något sätt (och du kan läsa mer om det här), men jag tycker inte att det är ett stoppande hinder för OpenID. För det första så finns phishing-hotet ute i det vilda redan nu, och att OpenID inte helt löser det problemet förtar inte de fördelar det kommer med. För det andra så kan man ju med OpenID införa alternativa autentiseringslösningar som inte innefattar lösenord (t.ex. klientcertifikat) och därigenom ta ett stort steg för att faktiskt bekämpa phishing-problemet. Men, som sagt, det är naturligtvis ett problem man bör vara medveten om!