Runtime sequence OpenID

Für einen Kunden habe ich letztens OpenID in Java implementiert. OpenID ist “ein dezentrales Authentifizierungssystem für webbasierte Dienste.” (Wikipedia).

Kunden haben den Vorteil, daß sie sich einmal bei einem OpenID Provider registrieren und dann mit diesem Benutzernamen/Passwort-Paar bei beliebig vielen OpenID “ResourceProvidern” anmelden können, ohne bei diesen ihr Passwort eingeben zu müssen. Stellen Sie sich vor, Sie gehen auf eine Webseite, klicken auf “Einloggen” und sind angemeldet ohne auch nur irgendwas einzugeben. Geht nicht? Geht doch.

Anbieter haben den Vorteil, daß sie sich nicht um Passwörter kümmern müssen – es werden einfach keine Passwörter im System gespeichert. Außerdem ist die Hemmschwelle für Registrierungen und Login bei den Kunden geringer, was zu höheren Anmelderaten führt.

Eigentlich alles cool – Wenn die Implementierung nicht so komplex wäre. Die Spezifikation ist teilweise vage und der Ablauf nicht sehr detailliert beschrieben. Man benötigt schon recht viel Hintergrundwissen über Webtechnologien, Security und Authentification im Allgemeinen um OpenID sauber zu implementieren.

Als Library für Java kann ich openid4java empfehlen. Diese Library wurde sorgfältig erstellt und folgt dem OpenID Protokoll.

Und wer kommt als OpenID Provider in Frage? Auf OpenID.net gibts eine (unvollständige) Liste mit OpenID Providern, allen voran Google und Yahoo. Vielleicht ist auch bald eine Firma mit meiner Implementierung in dieser Liste…

Leave a reply