Home > Joomla, Systemverwaltung > Joomla und OpenID reloaded (Web-SSO)

Joomla und OpenID reloaded (Web-SSO)

Nach längerer Sommerpause endlich wieder mal ein Artikel von mir. Diesmal ein reichlich sperriger, wie ich zugeben muss 😉 … Ich hoffe aber trotzdem, dass dieses Thema (Web-„Single Sign On“) den einen oder anderen interessiert …

In einem früheren Artikel habe ich mich bereits ausgiebig über die Eigenschaften der OpenID-Authentifizierung bei Joomla und auch im Allgemeinen ausgelassen. Auf meinem Weg zu eine Web-„Single Sign On“ – Lösung für unsere Joomla’s und andere webbasierte Applikationen, bin ich nun einen großen Schritt weiter gekommen (muss aus Zeitgründen so nebenher laufen). Diese Informationen möchte ich nun hier mit meinen Lesern teilen.

Fassen wir kurz zusammen :

1. Wir benötigen die Verwaltung der Zugangsdaten in einem LDAP-Directory. Siehe dazu u.a. auch den Artikel „Joomla und LDAP„.

Ist nun schon länger bei uns vorhanden (OpenLDAP) und aktiv. Alle unsere Applikationen authentifizieren sich dagegen. Damit haben wir ein zentrales Repository für alle unsere Anmeldedaten. Passwort-Änderungen erfolgen nur dort und müssen nicht mehr in jeder Applikation durchgeführt werden. Dies senkt den Verwaltungsaufwand erheblich.

2. Wir benötigen einen Identity-Server (OpenID-Server), der ebenfalls mit dem LDAP-System zusammenarbeitet.

Ich habe einen eigenen Identity-Server für uns aufgesetzt und mit unserem LDAP-System zusammengeschaltet. Wir verwenden den CommunityID-Server. Diese Konfiguration hat noch den Charme, dass ich damit auch unsere LDAP-Directory pflegen kann :-).  Dazu musste ich den CommunityID-Server etwas modifizieren, damit beim neu Anlegen eines Benutzers das Joomla-LDAP-Schema verwendet wird.

Unser Server ist so konfiguriert, dass Selbstregistrierung abgeschaltet ist und auch keine Delegation zu anderen OpenID-Servern erfolgt. Security !! Wir sind ein eigenes Biotop :-)!

Als Admin kann ich damit über ein sehr simples Webformular einen neuen Benutzer eintragen. Dieser wird automatisch in das LDAP-Verzeichnis übernommen und hat dann sofort Zugriff auf alle unsere Applikationen.

OpenID-Login

Nachstehende Information gilt sinngemäß auch für alle anderen Webapplikationen. Ich beschränke mich hier in diesem Artikel aber auf Joomla als Beispiel.

Um jetzt nun die OpenID-Authentifizierung, anstatt der derzeitigen LDAP-Authentifizierung,  sicher nutzen zu können, darf das OpenID-Authentifizierungsmodul in Joomla nur mit unserem eigenen OpenID-Server zusammenarbeiten. Wir möchten ja nicht, dass Hinz und Kunz sich auf unseren Joomlas registriert 😉 …

Dazu habe ich nun das OpenID-Authentifizierungs-Plugin von Joomla so modifiziert, dass es nur gegenüber einem bestimmten, über die Plugin-Parameter eingestellten, OpenID-Server authentifiziert. Außerdem fordert es vom OpenID-Server den sog. Nickname als Rückgabeparameter an. Dies ist dann der Username/Benutzername in Joomla. Damit sind wir auch die sperrigen langen OpenID-Benutzernamen los (s. früherer Artikel).

Dieses modifizierte Plugin ist zusätzlich ganz normal installierbar. Damit kann man sich mit seinem Benutzernamen gegen den Identity-Server authentifizieren:

Nach Abschicken dieses Login-Formulars gibt man sein Passwort ein und ist im System:

Diese Passwort-Angabe ist einmalig bei allen Sitzungen zu machen. Beim Aufruf aller nachfolgenden Web-Applikationen ist man sofort authentifiziert.

Wer dieses PlugIn ebenfalls benötigt, kann mich gerne über meine Webseiten Human Touchnologies kontaktieren. Keine Sorge, es wird nichts kosten :-). Ist und bleibt GPL 🙂 …

Nächste Schritte

Unsere anderen Web-Applikationen müssen eine OpenID-Authentifizierung ähnlicher Machart bekommen. Dazu gibt es fertige Klassen für verschiedene Programmiersprachen, die diese Arbeit erleichtern : z.B. http://www.janrain.com/openid-enabled

Ist halt wieder nur Arbeit 😉 … Für nebenher und Wochenenden 😉 …

KategorienJoomla, Systemverwaltung Tags: , ,
  1. Marek
    20. November 2015, 18:20 | #1

    Hallo,

    ich suche schon seit gut einem Jahr eine Möglichkeit OpenID für meine Webseite zu nutzen. Mein Hauptproblem ist, dass ich keine Ahnung habe.
    Gerade bin ich dabei die Webseite neu mit Joomla zu erstellen. Es handelt sich dabei um eine Clan-Seite für das Onlinespiel World of Tanks ( http://worldoftanks.eu/ ). Letztlich möchte ich die WargamginID für den Login nutzen.
    Bisher habe ich nirgends eine brauchbare Anleitung finden können, wie man überhaupt OpenID implementiert. Nicht mal auf deren Homepage und in deren Forum bekommt man auch keine Antwort.
    Lange Rede kurzer Sinn, Deine Anleitung erklärt schon mehr, als ich je in Stücken gefunden habe, aber weißt Du, ob es irgendwo eine Art Tutorial gibt, was man braucht und wie man das dann alles zusammensetzt?

    Danke und Gruß,

    Marek

  1. Bisher keine Trackbacks