SSO-Anbindung mittels Keycloak für TYPO3 und Magento
Die AAP Lehrerwelt GmbH, der Betreiber einer Plattform für Unterrichtsmaterialien für Lehrer, möchte ihren Kunden den möglichst einfachen, nahtlosen Zugang zu den verschiedenen Online-Angeboten ermöglichen. Netresearch übernahm hier als TYPO3-Agentur den Auftrag, eine Single-Sign-On-Lösung (SSO) zu konzipieren und für verschiedene Kundensysteme wie TYPO3 und Magento zu implementieren.
Warum eine Single Sign-On-Lösung für Lehrerwelt?
Bei einem SSO-Service meldet sich der User einmalig an, die Authentifizierung des Users ist also nach kurzer einmaliger Anmeldung erledigt. Danach hat er Zugriff auf unterschiedliche Applikationen, Services und Dienste. Das steigert die Benutzerfreundlichkeit der jeweiligen Portale und Services - im Falle der Lehrerwelt: eine Downloadplattform, der digitale Schreibtisch sowie Shops für die Bestellung von physischen Unterrichtsmaterialien.
Umsetzung mit der Community Extension “OpenID Connect Authentication”
Für die Integration in das TYPO3-CMS unseres Kunden wurde die TYPO3-Extension “OpenID Connect Authentication” genutzt, die als Basis für die Funktionen Login und Authentifizierung gegen einen OpenID-Server dient. Zur exakten Identifizierung des jeweiligen Frontend-Users wurde dessen User-Profil um die jeweilige ID des OpenID-Servers erweitert.
Im laufenden Betrieb der Plattform ist es wichtig, unterscheiden zu können, ob es sich um neue User oder bereits authentifizierte und damit bekannte User handelt. Damit für die verschiedenen User-Gruppen jeweils unterschiedliche Landingpages ausgespielt werden können, ist zunächst die Zuordung bestimmter User zu Gruppen erforderlich. Dies wird erreicht durch die Kombination des SSO-Services mit einer passenden Konfiguration der Custom-Extension "Frontend-User". Hier lassen sich die User nach Authentifizierung jeweils automatisiert einer bestimmten Gruppe zuordnen. Weitere User-Gruppen, die ggf. im TYPO3 genutzt werden und nicht mit der Authentifizierung in Verbindung stehen, bleiben von dieser Zuordnung unberührt.
Nutzung der Keycloak-API
Nutzerdaten wie Name oder E-Mail-Adresse, die von den Usern der Lehrerwelt-Services geändert werden können, sollten zentral im Keycloak in Echtzeit synchron gehalten werden. Mit einer von Netresearch entwickelten TYPO3-Extension wird deshalb die Verbindung zur Keycloak-API geschaffen. Dazu wird der Keycloak-API-Client von Mohammad Waleed verwendet. Diese Lösung bietet auch Raum für zukünftige Erweiterungen, wenn weitere Nutzerdaten zentral im Keycloak vorgehalten werden sollen.
Gute Dienste leistete die Keycloak-API auch bei der initialen Befüllung des Systems vor dem Livegang. Hier war der Transfer von mehreren 100.000 Userdaten jeweils mit unterschiedlicher Datenstruktur aus Magento und TYPO3 erforderlich. Dazu wurde ein Python-Script genutzt, das Keycloak mit den Dumps der beiden Nutzertabellen befüllen konnte.
Fazit der SSO-Integration mit Keycloak
Würden wir noch einmal TYPO3 mit Keycloak integrieren? Und konnten wir die Problemstellung des Kunden lösen? Ja, das war eine gute Erfahrung, auch wenn es inzwischen durchaus Alternativen gibt. Neben vielen Vorteilen bringt Keycloak auch gewisse Anforderungen mit, da es in Java geschrieben ist. Die Template Engine und die verwendete Template Sprache FreeMaker bieten einige Herausforderungen, da Tests und Fehlerbehebungen aus Entwicklersicht vergleichsweise schwierig waren. In diesem Projekt mit Keycloak konnten wir unser Expertenwissen aber deutlich ausbauen. Beim Kunden Lehrerwelt konnte mit der Keycloak-SSO-Lösung der moderne Industriestandard in diesem Bereich umgesetzt werden. Mit diesem Schritt ist die AAP Lehrerwelt GmbH zugleich hervorragend aufgestellt, um zukünftig weitere Systeme anbinden zu können.
Sie möchten mehr zum Thema Single-Sign-On wissen? Dann lernen Sie uns kennen und buchen noch heute einen Gesprächstermin bei unserem TYPO3-Experten.