
Auf Basis der, schon vorhandenen, tollen Arbeit der OpenID-Implementierung für Drupal haben wir uns entschlossen eine Sigle-Sign-On-Lösung für unsere Kunden zu entwicklen. Ziel ist es eine Authentifizierungsinstanz für eine beliebige Anzahl von Websites aufzubauen. Die Benutzerdaten und das Passwort werden über den OpenID-Server nur an einer Stelle gewartet.
Sowohl OpenID-Provider als auch die verknüpften Websites werden auf Drupal aufgebaut, allerdings sollte das auch mit jedem anderen System, welches OpenID-Implementiert möglich sein.
Mit den bereits vorhandenen Drupal-Modulen OpenID (core) und OpenID-Provider ist bereits eine einfache Verknüpfung per OpenID zu erreichen.
Ein wichtige Funktionalität ist die Synchronisierung der Daten, sodass Änderungen, beispielsweise der Email-Adresse, automatisch auch auf den verknüpften Websites aktualisiert werden, und somit zum Beispiel Benachrichtigungsmails etc. auf der neuen Adresse ankommen. Einen Ansatz für den Austausch der Benutzerdaten wagte Development Seed mit Feeds, PubSubhubbub und OpenID-Conent-Profile-Field , dabei werden die Daten über eine auf RDF
aufbauende FOAF-(Friend-of-a-friend)-Spezifikation
für die verknüpften Websites bereitgehalten und sie werden per Drupals On-Top-PubSubhubbub-Hub
über Änderungen benachrichtigt. Wir haben dieses System neu aufgelegt, sodass es nun die neusten Module unterstützt und in Drush-Make
-Files gepackt, damit wir komfortabler das System aufsetzen können:
drush make http://gitorious.org/openid_sso/makefiles/blobs/raw/master/osso_provider_feeds.make
drush make http://gitorious.org/openid_sso/makefiles/blobs/raw/master/osso_relying_feeds.make
Das OpenID-Protokoll jedoch beinhaltet schon Spezifikationen für den Datenaustausch: SREG (Simple Registration) und AX (Attribute Exchange). Und auch eine Spezifikation für Benachrichtigungen der verknüpften Websites (update_url ). Es gibt bereits Module für AX, sowohl für den Provider
als auch den Client
, welche wir lediglich um die update_url erweitern mussten (Patch für OpenID Provider AX
und für OpenID Client AX
).
Für Drupal 6 kann man entweder unser neues Modul OpenID-Profile-Mapper , für Drupal-Core Profile, oder das existierende OpenID-Content-Profile-Field
, für Content Profiles, verwenden. Auch sollte es möglich sein beide Module gleichzeitig zu verwenden.
Den aktuellen Stand der Entwicklungen kann man am schnellsten mit unseren Drush-Make-Files bekommen (schon mit allen notwendigen Patches):
drush make http://gitorious.org/openid_sso/makefiles/blobs/raw/master/osso_provider_ax.make
drush make http://gitorious.org/openid_sso/makefiles/blobs/raw/master/osso_relying_ax.make
Das hier vorgestellte befindet sich noch in intensiver Entwicklung und sollte nur zu Testzwecken verwendet werden. Allerdings wären wir über das Testen und Feedback zu dem OpenID Profile Modul allgemein und zu den folgenden Cases dankbar:
Kommentare
Pingback
[...] ein paar Monaten hatten wir in diesem Block bereits unseren Zentralen Authentifizierungsserver mit Benutzerdatenaustausch vorgestellt. Nun gibt es ein (englischen) Screencast über die Installation und Konfiguration des [...]