Tim Tepaße: Single-SignOn mit OpenID

Beitrag lesen

Hallo,

Mein persönlicher Ansatz ist es derzeit, HTTP Login-Daten in Mac OS X' Schlüsselring zu speichern und „wichtige“ Login noch mal extra in einer verschlüsselten Datei. Aber ja, es ist nervig, das noch zu verwalten.

Ich habe schon echt überlegt, ob ich eine Website erstelle, die ähnliche wie Lesezeichen alle Login-Daten verwaltet - aber wer würde einer solchen Website vertrauen ? Persönliche Daten kann man nicht öffentlich ablegen.

Inzwischen gibt es einen neuen Ansatz, das Single-SignOn-Problem zu lösen; diesmal nicht zentralisiert mit einer Webseite oder einen Service wie noch Microsofts Passport, sondern dezentralisiert. Es heisst OpenID und wurde ursprünglich von der Weblog-Firma LiveJournal entwickelt, ist aber jetzt ein freies System mit ziemlicher Unterstützung in der Industrie, sogar Microsoft will da was machen.

Konzeptionell sieht das so aus:

1. Nutzer Adam will sich bei der Webseite Bärenforum authentifizieren, um dort über den Geschmack von gegrillten Eisbärenpfoten zu diskutieren.
2. Adam tippt eine URL (seine Identität) bei Bärenforum ein. Bei ihm ist das http://example.org/~adam/, seine Homepage.
3. Die Software hinter Bärenforum ruft die URL ab und findet dort die Adressierung von Adams Identitäts-Provider. Das sei dann mal Caros Identitätsdienst.
4. Bärenforum verbindet sich mit Caros Identitätsdienst und kündet an, dass er gerne ein Ja hätte, dass Adam wirklich hinter dieser URI steckt.
5. Adam authentifiziert sich bei Caros Dienst. Normalerweise wird er direkt per Redirect vom Bärenforum auf die Caro-Seite gesendet, das kann - wenn ich das richtig verstehe - aber auch anders geschehen, zum Beispiel über Jabber oder E-Mail oder, oder, oder. Wichtig zu wissen ist, dass Adam sich nur bei Caro authentifiziert – und die kennt er schon vorher, hat er doch einen Account dort.
6. Adam stimmt in Caros Service zu, dass er sich beim Bärenforum einloggen will und dass das zukünftig automatisch gehen soll.
7. Caro Software erzählt der Bärensoftware, dass Adam tatsächlich Adam ist und rein will.
8. Caros Seite leitet Adam wieder zurück auf die Webseite Bärenforum.
9. Adam ist beim Bärenforum eingeloggt; inzwischen hat ihm aber jemand erzählt, dass Bären auf der Liste bedrohter Tierarten steht und er will gar nicht mehr diskutieren.

(Vereinfacht dargestellt, natürlich)

Es gibt also drei Parteien: Der zu Identifizierende, der Dienst, bei dem man sich Identifizieren will und der Identitätsprovider. Sprich: Anstatt sich überall neu zu identifizieren, dass man tatsächlich derjenige hinter dem Benutzernamen xyz ist, macht man das nur bei bei seinem eigenen Identitätsprovider - und dieser erzählt es dann allen anderen. Streng genommen braucht man dann auch keine Anmeldeprozedur mehr; als Nutzername gilt dann einfach nur die URL, bei Adam also http://example.org/~adam/.

Und man hängt auch nicht von dem Identitätsprovider ab; man kann den gut auswechseln, kann man die Metadaten, die von der eigenen URI auf den Identitätsprovider zeigen auch auswechseln und auf einen anderen Provider zeigen können. Die gibt's inzwischen haufenweise, z.B. kann jeder AIM-Screenname auch dadurch identifiziert werden. Oder man ist sein eigener Provider und hat entsprechende Software dafür auf dem eigenen Webspace.

Auch wenn OpenId schon in Version 2.0 spezifiziert wird, wird es noch teilweise stark diskutiert; inbesondere in den letzten Monaten. Ein möglicher Angriffspunkte wär z.B. Phishing: Die Identifizierung beim Identitätsprovider wird abgefangen und/oder weiter geleitet um an die dortigen Daten zu kommen. Es ist lösbar, aber jegliche Lösung vergrößert die Schwelle für Unwissende. Etwas anderes, dass ich mir unangenehm vorstelle, wäre Spamming. Aber all das sind Probleme, unter denen auch das bestehende Web leidet. OpenId bleibt trotzdem eine interessante Lösung und meiner Meinung nach sprichts nichts dagegen, wenn neue Web-Anwendungen mit Login dies zusätzlich anbieten; im Gegenteil. (Ja, ich bin ein Fan)

Sollte das oben zu abstrakt gewesen sein: Simon Willison hat einen Screencast erstellt, der das Prozedere aus Nutzersicht schildet. Das dürfte erhellender sein.

http://simonwillison.net/2006/Dec/22/screencast/

Tim