OpenID bietet mir nun also einen Ausweg aus dem Passwort-WirrWarr und damit eine schicke Lösung, mich auch ohne Nutzername und Passwort bei Services einzuloggen.
Leute, die sich häufiger im Internet bewegen kennen aber noch ein weiteres, zum Teil sehr nerviges Problem: Bei jeder Plattform oder Community, bei der man sich neu anmeldet, muss man immer wieder die selben Daten neu eintippen, obwohl diese sich in den seltensten Fällen ändern und ein Import von einer zentralen Stelle eine Supersache wäre. Auch hier lautet die Lösung des Problems OpenID und eine damit verbundene Registrierung.
Dafür ist es nötig, dass der OpenID-Client eine Registrierung mit OpenID unterstützt. Der User trägt dann bei der Registrierung seine OpenID ein und klickt ‘verifizieren’. Wie beim Login wird der Nutzer auf den OpenID-Provider umgeleitet und muss mit seinem Passwort seine Identität bestätigen. Beim normalen OpenID-Login ist damit alles getan und man ist schon fertig. Bei einer OpenID-Registrierung werde ich als User aber noch um einen weiteren Schritt gebeten, nämlich die Auswahl der gewünschten Daten, die ich an den OpenID-Client weitergeben möchtet.
Um dies zu vereinfachen kann ich bei einigen OpenId-Providern, wie z.B. bei myopenid.com, gleich mehrere Identitäten angeben, die sogenannten Personas. So besitze ich z.B. gleich drei Personas dort: Eine Private, eine Geschäftliche und eine Fiktive, die alle unterschiedliche Emailadressen, Profilfotos oder auch Namen enthalten.
Möchte ich mich jetzt bei einem Service per OpenID-Registrierung neu anmelden, wähle ich bei der Verifizierung eine der drei Personas aus, und die dazugehörigen Daten werden bei der Umleitung zurück zum OpenID-Client und dem damit verbundenen Server-Gespräch (siehe OpenWatt? OpenID! (Teil 2)) gleich mitgesendet. Nun sind bereits alle (oder zumindest die meisten) Registrierungsfelder vorausgefüllt. Wenn ich Glück habe und der OpenID-Client ein guter Service ist, dann wurden sämtliche Daten, die mein Provider mitgeschickt hat nach Abschluss des Registrierungsprozesses bereits meinem Profil hinzugefügt und ich spare mir das Ausfüllen. Zudem kann ich mich ab sofort immer wie gewohnt mit meiner bei der Registrierung angegebenen OpenID einloggen.
Damit das ganze reibungslos und gut funktioniert, reicht es allerdings leider nicht aus, dass der OpenID-Client blos ein OpenID-Feld in seinem Registrierungsformular hinzufügt. Beide Seiten müssen hierfür ihre OpenId-Implementierung entweder um das sogenannte sReg (Simple Registration) oder um AX (Attribute Exchange) erweitern.
Bei diesen beiden OpenID-Erweiterungen handelt es sich um Standarts, die vorgeben, wie genau der Austausch der Daten stattzufinden hat und vor allem, wie genau die einzelnen Daten bezeichnet und abgelegt sein müssen, denn ein Datenaustausch kann nur stattfinden, wenn die am Austausch beteiligten Partner die gleiche Sprache sprechen. Das heißt in unserem Fall (dem Austausch von Profilinformationen), dass der Client zum Beispiel das Email-Adress-Feld nur vorausfüllen kann, wenn er auch weiss welches von den Daten, die der Provider geschickt hat die Emailadresse ist. Ein Austausch ist demnach nur erfolgreich, wenn beide Seiten die gleiche Sprache sprechen, der Client also Simple Registration versteht, wenn der Provider Simple Registration unterstützt. Analog dazu funktioniert das mit Attribute Exchange: Beide Partner müssen Attribute Exchange unterstützen, wenn sie Daten untereinander austauschen wollen.
Das Ganze funktioniert also prinzipiell wie ein normales ‘Tauschgeschäft’ in einem Laden: Möchte ich als Kunde (Client) die gewünschte Ware mit nach Hause nehmen, dann ist es sehr förderlich, wenn ich das Zahlungsmittel (Standart) dabei habe, was der Verkäufer (Provider) auch akzeptiert. Besonders gut klappt der Kauf dann noch, wenn der Verkäufer Euro möchte, ich ihm auch Euro geben kann, denn sonst wird er Probleme haben zu wissen, was das, was ich ihm gegeben habe wert ist (->Client und Provider haben entweder beide sReg oder AX implementiert und haben damit keine Probleme, zu wissen, was der andere geschickt hat).
Gott sei dank kann ich an dieser Stelle beruhigend sagen: Auch dies sind wieder alles Dinge die im Hintergrund passieren und von denen der normale User nichts mitbekommt, sondern lediglich davon profitiert, ohne irgendetwas davon verstanden haben zu müssen.
Allgemein kann man noch sagen, dass Simple Registration die eher abgespecktere Variante der beiden ist, es werden also nicht soviele Daten ausgetauscht. Deswegen hat man irgendwann Attribute Exchange entwickelt, welches den Austausch von weitaus mehr Informationen unterstützt. Möchte jemand wissen, welche Daten von welchem Standart unterstützt werden können, findet er hier einen Überblick.
Der Vollständigkeit halber möchte ich an dieser Stelle noch die dritte Möglichkeit erwähnen, in deren Format man bei einer OpenID-Registrierung Profildaten austauschen kann: OpenID mit hcard. Auf Microformate und hcard möchte ich allerdings an dieser Stelle nicht weiter eingehen, kommt bestimmt später noch. Aber wen es interessiert, der sollte unbedingt hier (deutsch) und hier (englisch) weiterlesen. Der Ablauf insgesamt ist zudem auch gleich wie oben beschrieben.
Beim nächsten mal werde ich ein paar OpenID-Provider vorstellen und eine kleine Liste mit Services zusammenstellen, bei denen man sich mit OpenID einloggen oder sogar registrieren kann.
PS: Leider habe ich es immernoch nicht geschafft, meinen eigenen OpenID-Login ans laufen zu bekommen. Schätzungsweise ist auch 1und1 Schuld und ich werde ihnen im neuen Jahr mal schreiben um nachzufragen, was da los ist. Deswegen verzeihen mir bitte die tausend und abertausend Leute, die hier kommentieren den Mißstand