
Da ich mich zur Zeit vermehrt um Identitätsmanagement im Web und im speziellen mit OpenID und Information cards/Cardspace beschäftige, möchte ich die Gelegenheit nutzen, eine Artikelserie ins Leben zu rufen, die sich erst einmal mit OpenID beschäftigt.
1. Was ist OpenID?
OpenID ist ein dezentrales Single-Sign-On-System (SSO). Man meldet sich nicht direkt bei dem Dienst an, den man nutzen möchte, sondern wird von seinem OpenID-Provider authentifiziert.
Bei seinem Provider hat man Daten wie Name, Nickname, E-Mail-Adresse und so weiter hinterlassen, so dass man nicht mehr gezwungen ist, diese dem Dienst bei einer Registrierung erneut mitzuteilen. Eine Steuerung, welche Daten bei der Registrierung übermittelt werden, ist zusätzlich möglich. Man möchte ja nicht jedem Betreiber sein Geschlecht oder Geburtsdatum offenbaren. Bei manchen OpenID-Providern ist es zusätzlich möglich in einem OpenID-Account mehrere Identitäten zusammen zu fassen. Dadurch kann man zum Beispiel die selbe OpenID verwenden, um den anfragenden Dienst entweder private, geschäftliche oder halbwegs anonyme Daten zu übermitteln.
Bei der Anmeldung an einen Dienst per OpenID gibt man lediglich seine Kennung an. Der Dienst leitet einen an seinen OpenID-Provider weiter, bei dem (wenn noch nicht erfolgt) die eigentliche Anmeldung mittels Usernamen und Kennwort erfolgt. Nach erfolgreicher Anmeldung wird man zum ursprünglichen Dienst weitergeleitet und ist angemeldet.
2. Warum OpenID?
Ein Grund wäre manische Faulheit. Persönlich habe ich nur eine Handvoll unterschiedliche Passwörter, die ich mir merken kann/möchte. Zwar benutze ich auch Passwortmanager wie KeePass/KeePassX, in dem ich aber eher Passwörter von Kunden verwalte. Zum Bewegen in Foren und Portalen selber benutze ich fast immer dieselben Passwörter, die sich aber (das muss ich zu meiner Verteidigung noch anmerken) von Passwörtern für Mail, FTP und so weiter unterscheiden. Ich nehme jetzt einfach mal dreist an, dass dieses Verhaltensmuster auf 90 Prozent aller Webbenutzer passt.
Mit OpenID pflegt man nur eine Identität, dessen Daten man aber selektiv übertragen lassen kann. Man ist also quasi immer Herr seiner Daten. Desweiteren benötigt man nur noch das Passwort für seinen OpenID-Provider. Hier liegt meiner Meinung nach auch die größte Gefahr von OpenID, auf die ich aber in einem folgenden Artikel zu sprechen komme.
Ein Vorteil von OpenID als Verwalter seiner Identitäten ist, dass zwischen OpenID-Provider und dem Dienst, an dem man sich anmelden möchte, selber keine Passwortdaten ausgetauscht werden. Man meldet sich nur bei seinem OpenID-Provider an und dieser teilt dann dem anfragenden Diensten mit, ob ich authentifiziert bin oder nicht.
3. Wie bekomme ich eine OpenID?
OpenID-Provider gibt es mittlerweile mehr als genug. Yahoo bietet seit mehreren Wochen an, Accounts zusätzlich mit einer OpenID auszustatten, unterstützt aber nur die OpenID 2.0-Spezifikation. Bisher bieten aber nur wenige Seiten die Anmeldung mit der zweiten Version von OpenID an. Hier ist man also besser dran, sich an Anbieter wie myOpenID oder Verisign PIP zu halten. Eine etwas größere Liste findet man hier.
Ich gebe es zu: ich habe den Überblick verloren, bei wie vielen und welchen Websites/Shops/Portalen ich mittlerweile in der einen oder anderen Form eine Anmeldung vollzogen habe. Nach mehr als 13 Jahren im World wide web verzeihe ich mir da aber, besonders da ich in den letzten Jahren dazu übergegangen bin, wichtige Accounts zu notieren beziehungsweise unwichtige/einmalige Registrationen mit einer "Wegwerf"-E-Mail-Adresse zu tätigen.
OpenID ist ein Identitätsverfahren, das (nicht nur) an dieser Stelle ansetzt: ein dezentrales, benutzerorientiertes Identitätssystem. Dezentral heißt in dem Fall, dass man nicht auf einen Anbieter festgelegt ist, dem man seine Benutzerdaten anvertraut. Man kann sogar seinen eigenen OpenID-Server betreiben. Das benutzerorientierte bei OpenID ist die Tatsache, dass der Benutzer Herr über seine Accounts bleibt. Er entscheidet, welchen Seiten er welche Informationen zur Verfügung stellt und kann auch im Nachhinein diesen das Vertrauen entziehen.
Wie funktioniert OpenID?
Man entscheided sich für einen OpenID-Server-Anbieter (z.B. MyOpenID), erstellt seinen Account und bekommt seine OpenID-URL zugewiesen (http://username.myopenid.com). Mit dieser URL kann man sich auf Webseiten, die OpenID unterstützen, anmelden. Einfach die URL in das dafür vorgesehene Formular eingeben und abschicken. Man wird zum OpenID-Server-Anbieter weitergeleitet und muss sich dort authentifizieren und wird gefragt, ob man der anfragenden Seite die Accountdaten übermitteln soll. Bestätigt man dies, wird man wieder zurück zur Seite, bei der man sich anmelden möchte, geleitet. Hat man zusätzlich gesagt, dass man ab sofort dieser Seite vertrauen kann, muss man bei künftigen Besuchen beim Login nur noch seine OpenID-URL angeben. Die Authentifizierung findet dann automatisch statt.
Vor- und Nachteile von OpenID
Größter Vorteil von OpenID ist das Single-Sign-On-Verfahren, mit dem man sich nach einmaliger Authentifizierung zukünftig nicht mehr um die Identifizierung seines Accounts kümmern muss. Die offene, dezentrale Struktur bietet sogar jedem die Möglichkeit eigene OpenID-Server zu betreiben.
Und darin sehe ich auch die größte Schwachstelle des Systems. Nicht nur aus Anwendersicht, sondern auch als Webseitenbetreiber, der OpenID zur Authentifizierung einsetzt: Identitätsdiebstahl. Da man bei der Anmeldung zur Website seines OpenID-Servers weitergeleitet wird, könnten bösartige Personen auf die Idee kommen, eine exakt gestaltete Kopie dieser Seite anzulegen, um Username und Passwort mit einer sogenannten Phishingattacke zu stehlen. Und mit diesen Daten hat man Zugriff auf alle Zugänge in diesem OpenID-Account. Als Seitenbetreiber ist man auf der anderen Seite "gezwungen" den übermittelten Daten zu vertrauen. Ich habe mich jetzt testweise noch nicht bei vielen Seiten über OpenID angemeldet, aber bisher hat keine Seite mittels Double-Opt-In-Verfahren die Richtigkeit meiner E-Mail-Adresse überprüft.
Weitere Probleme sehe ich in der Usability (man wird bei der Anmeldung auf eine andere Seite weitergeleitet, die man zwar kennt, aber man ist es doch gewöhnt während der Registrierung auf einer Seite zu bleiben), der Privatsspähre (was hindert meinem OpenID-Serverbetreiber daran, Bewegungsprofile von mir anzulegen?) und der Abhängigkeit in der Verfügbarkeit (wenn mein OpenID-Server nicht erreichbar ist/nicht mehr existiert, habe ich keinen Zugriff auf meine Identitäten).
OpenID und TYPO3
TYPO3 hat mit der Extension naw_openid eine funktionierende Integration des OpenID-Systems. Die Extension regelt die Anmeldung, die Verbindung des OpenID-Accounts mit schon bestehenden Frontendusern sowie die Erstellung von neuen Usern. Beim Testen ist mir nur aufgefallen, dass in der aktuellen Version (0.1.5) nicht die Abhängigkeit mit der Extension sr_feuser_register integriert ist. Ich hatte das Problem, dass mein Test-OpenID-Account den Parameter Gender übergeben hat, dieses Feld sich aber nicht in der Standard-fe_user-Tabelle befindet. Erst mit der Installation von sr_feuser_register war es mir möglich, bei der ersten Anmeldung auch einen neuen Useraccount in TYPO3 anlegen zu lassen.
Update: auf der Website von Thomas gibt es mehrere Screencasts, die sich mit OpenID und der Integration in TYPO3 beschäftigen. Sehenswert.