Endlich Single-Sign-On mit openID?

Wie wäre es, wenn man nicht für jede neue Anwendung im Web (jedes Forum, jedes Wiki, jedes Portal, jeden Shop…) einen neuen Benutzerzugang einrichten müsste? Jedesmal Benutzerdaten eingeben wie nervig ist das denn! Und wie oft war der gewünschte Benutzername schon vergeben oder das Passwort zu kurz? Die Folge sind vergessene Benutzernamen und Passwörter – mit der Zeit ein kleines Chaos bei den meisten Anwendern.

openIDopenID ist ein dezentrales Single-Sign-On System zur eigenen Identifizierung im Web. Vor 2/3 Monaten war das kam Thema kurz auf und seither sammle ich Informationen für einen Blogpost dazu und verwende mit phpMyID meinen eigenen ID-Server. Nachdem das Thema gerade wieder überall in meinem Feedreader auftaucht, habe ich beschlossen endlich meinen Post zu schreiben. Drei Punkte: Was bringt openID?, Wie funktioniert openID?, und Wie kann man damit loslegen? und natürlich noch eine Ladung Links im folgenden.

Was bringt openID?

Mit einem openID-Account ist es möglich sich im Web zu Authentifizieren. Man legt damit einer Website den eigenen virtuellen Ausweis – die eigene “Identification Card (ID)” vor. Damit entfällt die aufwendige Registrierung, da ja auf dem Ausweis alle wichtigen Daten stehen die eine Person identifizieren. Es gibt sehr viele Anwendungen. Sinnvoll halte ich den Einsatz in öffentlichen Communities, Wikis, Foren und Blogs – generell Seiten an denen man sich bsiher registrieren musste. Damit liese sich zukünftig auch Spam reduzieren.

Wie funktioniert openID?

Man kann sich die Authentifizierung via openID so ähnlich vorstellen, wie die Bezahlung mit einer Bankcard. Wenn man an der Kasse steht ist es wichtig, dass man seine Karte hat und die Pin kennt. Um die Rechnung zu bezahlen gibt man seine Bankcard dem Kassier.  Der fragt nun mit der Karte bei der Bank nach, ob man genügend Geld hat. Die Bank meldet sich und möchte vom Kunden eine Authetifizierung in Form der Pin damit sichergestellt wird, dass kein Missbrauch stattfindet. Wenn die Pin richtig war und du noch Geld auf dem Konto hast, genehmigt die Bank die Überweisung. Simpel, oder?
Analog dazu Authentifiziert man sich an einer Website mit seiner openID (einer URL wie z.B. http://m.zung.us) und seinem Passwort. Wenn man sich an der Website anmelden / einloggen möchte, gibt man dort seine ID ein. Die Website fragt dann beim openID-Server nach, ob der Benutzer bekannt ist. Falls ja muss man dann die Übermittlung der Benutzerdaten mit der Eingabe seines Passwortes genehmigen. Danach liefert der Server die benötigten Daten direkt an die Website und alles ist erledigt.

Einzige Voraussetzung ist natürlich, dass die Website openID unterstützt (genauso wie der Kassier für die bargeldlose Bezahlung ein Bankcard-Terminal haben muss). Seiten die bisher openID unterstützen sind z.B. zoomr, ma.gnolia.com, LiveJournal.com, Wikitravel.com. Außerdem unterstützen AOL und Microsoft openID.

Wie kann man damit loslegen?

Als erstes benötigt man eine openID. In einigen Fällen besitzt man vielleicht schon eine openID, z.B. sobald man einen Livejournal Account hat, oder AOL AIM verwendet. Es gibt inzwischen sehr viele kostenlose openID-Provider wie pip.verisignlabs.com, MyOpenID, claimID. Ich habe alle drei getestet oder auch kostenpflichtige wie …

Wenn man seine eigene URI (z.B. die eigene Domain oder URL des Weblogs) als openID verwenden möchte ist dies recht einfach umzusetzen. Man muss dazu lediglich den verwendeten openID-Server im Header seiner Website / Weblogs eintragen (hier die Anleitung dazu, oder für WordPress als Plugin). Ein weiterer Vorteil dabei ist dass man unabhängig von einem einzelnen Betreiber wird, da man lediglich einen anderen openID Server eintragen kann wenn man möchte.

Wenn man die Daten nicht über einen openID-Provider verwalten möchte, kann man dies auch selbst tun. Ein einfaches PHP-Skript dazu gibt es auf phpMyID, komplizierter ist einen eigenen openID-Server zu installieren.

Um openID wie hier auf mzungu’s zum Kommentieren zu verwenden, gibt es ein WordPress-Plugin. Am meisten Sinn macht es natürlich wenn man sich auf allen Blogs mit openID einloggen kann. Für WordPress wurde die vollständige Integration für zukünftige Versionen vorgeschlagen.

Weiteren Informationen im Web:

(Vielen Dank an Tom und frogpond für einige Links zum Thema.)