Keycloak – mehr Zeit für eigene Projekte
Wie die Open-Source-Software beim Arbeitsalltag hilft
Wem kommt das bekannt vor: Wiederkehrende Kunden-Anfragen für ein vergessenes Passwort zum Einloggen in das Content Management System? Neue Systeme, die Kund:innen integriert haben möchten, gleichzeitig aber Mehraufwand in der Verwaltung bedeuten? Dazu noch die firmeninternen Anforderungen zu einem plattformübergreifenden Login für alle genutzten Dienste?
Keycloak schafft für all diese Anwendungsfälle Abhilfe. Die Software greift nicht nur beim eigenen Arbeitsalltag unter die Arme, sondern hilft Kunden zugleich.
Warum nutzen wir Keycloak?
Mehr Usability für den User – weniger Aufwand für Entwickler
Keycloak ist eine Open-Source-Lösung für die Authentifizierung und Automatisierung von Nutzerkonten. Das wesentliche Feature ist das Single Sign-On. Das Verfahren erleichtert den plattformübergreifenden Anmeldeprozess für Kund:innen, Administratoren und eigene Mitarbeiter gleichermaßen.
Was ist das angenehme am Single Sign-On für Kund:innen und Mitarbeiter:innen?
In Keycloak lassen sich beliebig viele verschiedene Anwendungen integrieren. Im Prinzip funktioniert Keycloak ähnlich dem Google Workspace (ehemals Google Suite). Einmal eingeloggt, sind alle verknüpften Dienste nutzbar.
Konkret bedeutet Single Sign-On: Nutzer:innen müssen sich nur einmal mit einem in Keycloak integrierten Account anmelden und können anschließend auf alle Anwendungen zugreifen, die mit Keycloak verknüpft sind.
- Das kann ein Website- oder CMS-Zugang wie TYPO3 sein.
- Oder ein Zeiterfassungsprogramm wie Toggl.
- Das kann eine Arbeitsverwaltungsplattform wie Trello sein.
- Oder sogar der hausinterne Server.
Die Liste ließe sich noch länger weiterführen. Der Punkt ist aber (hoffentlich) klar geworden. Übrigens greift die Funktion auch beim Ausloggen: Mittels Single Sign-Out melden sich User einmalig für alle Anwendungen ab.
Welche Vorteile hat Keycloak für Administratoren?
Im Alltag hilfreich
Greifen wir zunächst nochmal den Arbeitsalltag auf. Eine Kunden-Anfrage für ein vergessenes Passwort wird seltener, wenn der Website-Login per in Keycloak verknüpften Google-Account erfolgen kann. Beziehungsweise wird die Anfrage sogar obsolet, da die Zugangsdaten für ein Google-Konto eines Kunden wohl nur in den seltensten Fällen in den Händen des Administrators liegen.
Aber auch für eigenen Arbeitsablauf gilt: Wir müssen uns nicht für jede Anwendung neu einloggen, sondern können direkt auf alle Dienste zugreifen und diese einfach verwalten.
Zudem ermöglicht Keycloak das zentrale Steuern und Vergeben individueller Nutzungsrechte für Nutzer:innen. Die Verwaltung wird nicht zum ausufernden Zeitfresser. Vielmehr lassen sich Rechte und Rollen für die Authentifizierung und Autorisierung zentral regeln. So werden Entwickler wieder etwas mehr Entwickler und weniger Administratoren.
Kurzum: Es bleibt mehr Zeit, sich mit dem eigenen Produkt auseinanderzusetzen – in unserem Fall toujou mit Elementen und Features voranzubringen.
Mehr Zeit für das Konzeptionelle
Wechseln wir nun vom Arbeitsalltag in das Konzeptionelle:
Die Software basiert auf dem Open ID Connect und SAML Protokoll. Keycloak ist kein proprietärer Dienst und ermöglicht somit allen den Zugang zum Quellcode. Jeder kann also profitieren, aber auch seinen Teil zur Optimierung beitragen. Ganz im Sinne von TYPO3 also: Sharing is caring.
A propos proprietär: Mit Keycloak nutzt man seine eigene Plattform und macht sich von anderen Diensten wie z.B. Google unabhängig(er) – auch was mögliche Downtimes bei anderen Diensten betrifft.
Freilich gibt es – zu Ende gedacht – auch bei Keycloak keine Garantien. Aber das Risiko durch die Abhängigkeit von einem Dienst lässt sich durchaus reduzieren.
Im Marketing- und Vertriebssprech wäre an dieser Stelle zusammengefasst wohl von einer klassischen win-win Situation die Rede.
Keycloak – Funktionsweise, Einstellungen und Verfahren
Keycloak Funktionsweise – knapp erläutert
Die Anwendungen oder Applikationen werden in Keycloak als Client bezeichnet. Mittels Client Scope teilen Sie dem jeweiligen User für den Zugriff auf Clients dabei die gewünschten Rollen zu, also die Zugriffsberechtigungen. Der User muss natürlich zuvor registriert sein.
Für die Authentifizierung des Users besucht dieser den Client, also die Applikation wie beispielsweise den Website-Login. Der Client schickt den User zur Authentifizierung an Keycloak. Dieser authentifiziert und transferiert den User zusammen mit einem Access Token zur Applikation.
Was lässt sich in Keycloak konkret einstellen?
Als Administrator in Keycloak können Sie:
- Anwendungen und Dienste erstellen und verwalten
- Benutzer samt deren Berechtigungen verwalten
- Rechte mittels Autorisierungsrichtlinien definieren
- Funktionen (de-)aktivieren
- Fremde Identitätsprovider (wie Facebook, Github, etc.) konfigurieren
- Sitzungen überwachen
Access Token vs. Identity Token – So sichert Keycloak das Authentifizieren
Ist ein User bei Keycloak authentifiziert, erhält er für jede Anwendung/Applikation zwei Tokens – den Access Token und den Identity Token. Beide werden in Form eines JSON Web Token (JWT) erstellt.
Der Identity Token hilft, wie der Name bereits verrät, anderen Anwendungen, Informationen wie Name oder E-Mail dem User zuzuordnen. Der Access Token listet die Rechte auf, über die der User in der Applikation verfügt.
Über Scopes lässt sich einstellen welche Informationen in den jeweiligen Tokens enthalten sind. Scopes können auch so konfiguriert werden, dass User für die Übermittlung der in den Scopes gruppierten Informationen um Einverständnis gebeten werden kann (Consent). So erhalten die Applikationen nur die Informationen über den Nutzer, die sie brauchen.
Weiterführende Links:
https://github.com/keycloak/keycloak
https://www.keycloak.org/docs/latest/server_admin/index.html#keycloak-features-and-concepts
NEWS VON DFAU
In regelmäßig unregelmäßigen Abständen blicken wir in unseren News zurück, voraus und über den Tellerrand hinweg.