OpenID besteht aus zwei Teilen – dem Client-Teil und dem Server-Teil. Alle, die OpenID als Client installieren wollen kann ich beruhigen – das ist recht einfach. Nehmen Sie die OpenID4java Libary und folgen Sie dem Beispielen.
Sie erhalten mit wenigen Befehlen eine Implementierung, die Sie gegen Google oder Yahoo oder was auch immer testen und verwenden können.
Der Vorteil für den Kunden ist klar – wer zB. bei google angemeldet ist, braucht nur noch einmal bestätigen, daß Ihre Software über OpenID zugreifen und zB. email-Adresse und Namen abrufen darf und kann sich ab dann ganz einfach anmelden – mit einen einzigen Klick.
Interessant wird das ganze für Multi-Server Systeme, da ein neuer Server im Verbund den Kunden nur noch zum OpenID Provider schicken muß und sofort – ohne daß der Kunde das mitbekommt – eine Authentifizierung erhält.

An der Serverseite ist naturgemäß etwas mehr zu tun.
Wenn der Kunde sich über OpenID anmelden möchte, bieten viele Webseiten bereits vordefinierte Buttons für Google, Yahoo usw. an. Dies muß aber nicht so sein. Entsprechend der OpenID Spezifikation kann der Kunde auch eine Webseite eingeben. Die OpenID Implementierung ruft dann die entsprechende Seite auf und holt sich ein xrds-File. Diese Datei ist eine XML Datei mit einem Link zum eigentlichen OpenID Provider.
Somit könnte der Kunde auf seiner eigenen Homepage eine derartige Datei ablegen und gibt bei Ihrer Webseite dann den Link zu seiner Homepage an (http://meinedomaine.com). Dort sucht Ihre Webseite nach der xrds-Datei und erhält einen Link zum eigentlichen OpenID Provider.

Der nächste Schritt ist der “Association” Schritt (Es ginge auch ohne diesem Schritt, jedoch müsste Ihre Webseite dann jedesmal beim OpenID Provider autorisieren). Bei diesem Schritt wird zwischen Ihrer Webseite und dem OpenID Provider eine Verschlüsselung vereinbart. Im Gegenzug gibt der OpenID Provider einen “Handle” zurück, der in der folgenden Kommunikation immer verwendet werden muß.

Nun ist erstmals der Kunde wieder im Spiel. Sein Browser wird zum OpenID Provider umgeleitet. In der Umleitung werden eine Menge Parameter mitgesendet. Der OpenID Provider wertet diese Parameter aus und prüft über Cookies den Anmeldestatus. Wenn der Kunde beim OpenID Provider (google, yahoo) noch nicht angemeldet oder registriert ist, so muß er das nun tun. Zu beachten ist, daß sich der Kunde beim OpenID Provider üblicherweise nicht abmeldet und auch mehrere Tage oder Wochen automatisch angemeldet bleibt.

Danach prüft der OpenID Provider, ob der Kunde die aufrufende Webseite bereits autorisiert hat, um auf die persönlichen Daten wie zB. email-Adresse oder Name zuzugreifen. Wenn das noch nicht geschehen ist, wird der Kunde auch dazu aufgefordert.

Nun ist auf der OpenID Provider Seite alles erledigt. Der Kunde wird wieder auf die Webseite zurückgeleitet (die Webseite hat die Rückleit-URL vorher dem OpenID Provider mitgeteilt). In der Rückleitung sind wieder eine Menge Parameter und Sicherheitsrelevante Daten mitgegeben. Die Aufgabe der Webseite ist es, diese Parameter nun zu prüfen. Dies geschieht mit einen direkten Aufruf an den OpenID Provider. Sobald die Daten geprüft wurden, ist der Vorgang abgeschlossen und der Kunde erfolgreich authentifiziert.

Leave a reply