In Zikula lassen sich mit Hilfe unterschiedlicher Authentifizierungsmethoden Nutzer auf verschiedenen Quellen einbinden und mischen. So kann man sich beispielsweise mit dem OAuth-Modul via Facebook, LinkedIn, GitHub oder Google anmelden. Auch LDAP ist eine gängige Methode, externe Anmeldungen zuzulassen.
Ab und an ist jedoch genau das Gegenteil gewünscht: Benutzer aus Zikula sollen sich in einem anderen System anmelden können. Dieser Aufgabe haben wir uns kürzlich für das bekannte Wiki-System DokuWiki angenommen. Dieses bietet die Möglichkeit, verschiedene Plugins zur Authentifizierung einzusetzen. Oftmals ist es hier sogar ohne Programmierung möglich, das Plugin authPDO direkt zu verwenden: hier werden in der Konfiguration verschiedene SQL-Anweisungen hinterlegt, mit denen sich DokuWiki die benötigten Daten aus dem Fremdsystem holt.
Aus einer Reihe von Gründen hat das jedoch für unsere Zwecke nicht ausgereicht:
- Die Methode, welche die
PasswordApi
desZAuth
-Moduls in Zikula zum Hashen der Kennwörter einsetzt, lässt sich nicht einfach via SQL nachbilden. Hintergrund sind hier beispielsweise spezielle Eigenheiten in Bezug auf das Salz. - Wir wollten eine Einstellung haben, mit der sich die verfügbaren Benutzergruppen einschränken lassen, so dass im Wiki nur ganz bestimmte und explizit gewünschte Gruppen auftauchen und nur die Mitglieder dieser Gruppen das Wiki überhaupt verwenden dürfen.
- Es sollte die Möglichkeit bestehen, ein Single-Sign-On (SSO) zu nutzen, sofern Zikula und Wiki auf der selben Domain laufen.
Wir haben daher ein authzikula
-Plugin implementiert, das auf authPDO
aufsetzt und dessen Funktionalität an den gewünschten Stellen erweitert. Im Screenshot ist zu sehen, dass sich diese Integration relativ unkompliziert einrichten lässt. Aktuell befindet sich die Lösung in der Testphase. Eine Veröffentlichung ist indes derzeit noch nicht geplant. Falls jemand Interesse an der Integration hat, stehen wir im Zikula-Slack aber natürlich gerne zur Verfügung.