Mehrere Websites – ein Login: Single Sign On

Die WOCAT World Overview of Conservation Approaches and Technologies ist eine Organisation, die sich für die nachhaltige Bodennutzung in einem weltweitem Netzwerk einsetzt. Dabei wird das Wissen über unterschiedliche Ansätze, Technologien und Methoden situativ beurteilt und in einem universitären Netzwerk ausgetauscht. Vor Ort über lokale Partner findet schliesslich die Integration in den Alltag, die eigentliche Feld- und Entwicklungsarbeit statt.

Die WOCAT besitzt nicht nur eine Website, welche das Netzwerk als solches unterhält, sondern auch drei weitere Sub-Websites, welche die Wissensdatenbanken betreiben. In allen Websites können sich Mitglieder einloggen und persönliche oder projektspezifische Daten bearbeiten. Da die Mitgliederdaten selbst in der Hauptwebsite abgelegt sind, ist es naheliegend, die Logins miteinander zu verbinden und ein sogenanntes Single Sign On (SSO oder SSI) zu verwirklichen. Das ist eine elegante Lösung, wo man sich einmalig an- oder abmeldet und anschliessend in verschiedenen Webbereichen ein- oder ausgeloggt ist. Pragmas hat diese Aufgabe in drei verschiedenen Teilaufgaben unterteilt: Erstens musste eine gemeinsame Verwaltung der Session entwickelt werden, zweitens ging es um die Zugriffssteuerung und drittens um eine Anpassung der Menüstruktur sowie der Benutzerführung.

Organisation entspricht nicht Funktion

Bis anhin waren die passwortgeschützten Bereiche auf jeder der vier Websites individuell gelöst. Das Problem lag einerseits darin, dass die Daten in unterschiedlichen Datenbanken (Mysql und Postgres) abgelegt sind und dass die Benutzerrechte nicht überall identisch sind. Zudem entsprechen die den Mitgliedern zugeordneten organisatorischen Gruppen nicht den eigentlichen funktionalen Gruppen. So gibt es eingeloggte Benutzer, Nutzer mit Bearbeitungsrechten und Nutzer, welche in Listen als Anteilhaber aber ohne Bearbeitungsrechte aufgeführt sind. Diese einfachen funktionalen Gruppen entstehen aus einem komplexen organisatorischen Schlüssel, z.B. muss ein Mitglied mit Bearbeitungsrechten diesen und jenen organisatorischen Gruppen zugehören, ohne jedoch in der organisatorischen Gruppe zu sein. Bisher gelang das über Views, welche den logischen Schlüssel von Organisation zu Funktion in der gemeinsamen Mysql-Datenbank abbildeten. Schliesslich sind die Datenbank-Verwaltungs-Websites von unterschiedlichen Entwicklern mit unterschiedlichen Ansätzen programmiert worden. Die Aufgabe, ein SSO zu realisieren erscheint zwar naheliegend und beinahe trivial. Die Ausgangslage ist jedoch hochkomplex und eher verworren. Es liegt nahe, mit einer möglichst einfachen Lösung die Bedürfnisse flexibel zu erfüllen.

Authentifizierung über Typo3

Die Hauptwebsite von WOCAT ist eine Typo3-Website. Typo3 legt für das Frontend-Login ein Cookie mit einem eindeutigen Wert im Browser des einloggenden Benutzers ab. Bei erfolgreichem Login wird in einer Datenbank-Tabelle ein Sessions-Eintrag unterhalten, der nach dem Logout wiederum gelöscht wird. Für ein gemeinsames Login sollte also auf das Benutzer-Cookie und die entsprechende Datenbank-Tabelle zugegriffen werden können. Für den Zugriff auf ein Cookie ist es wesentlich, zu welcher Domain es gehört. Bei WOCAT liegt die Hauptdomain auf www.wocat.net, die Datenbank-Subdomains liegen auf qa.wocat.net, qt und qm. Da das Benutzercookie mit der Domain wocat.net abgelegt wird, können schliesslich alle 4 Domains darauf zugreifen. Ebenfalls können alle Subdomains auf die Mysql-Datenbank mit den Benutzer- und Sessionsdaten, sowie den Rechte-Views zugreifen. Die erste Teilaufgabe zur gemeinsamen Verwaltung der Login-Session ist mit dieser Domain- und Datenbank-Zugriffsrechte-Organisation gelöst.

Individuelles, externes Sessions-Handling

Für die Zugriffssteuerung wurde eine Sessions-Überprüfung programmiert, welche zu Beginn jeder Webseite in den Subdomains integriert ist. Dieser Adapter überprüft, ob sich der Benutzer auf einer öffentlichen oder geschützten Seite befindet und ob er eingeloggt ist oder nicht. Je nachdem werden die für die Datenbank-Anwendung nötigen Sessions-Variablen initiert oder gelöscht und es findet allenfalls eine Weiterleitung auf eine Loginseite für passwortgeschützte Seiten auf der jeweiligen Subdomain statt. Diese Loginseite wurde in der dritten Teilaufgabe mit dem Login von Typo3 so verknüpft, dass bei erfolgreicher Anmeldung eine automatische Rückführung auf die aufrufende Subwebsite erfolgt. Dort wird im Kopfbereich der Status ausgewiesen und das Menü entsprechend den Benutzer-Rechten angepasst.

Nun können sich die zahlreichen, weltweit aktiven Mitglieder von WOCAT mit einem einzigen Schritt auf einer beliebigen WOCAT-Website einloggen und in allen Bereichen arbeiten. Und falls zukünftige Anpassungen in der Mitgliederstruktur erfolgen wie z.B. eine Verschärfung bei der Passwortsicherheit, so kann dies zentral gelöst werden, ohne in vier verschiedenen Programmierstrukturen individuell Anpassungen vornehmen zu müssen.