Die selbst gehostete Identity-as-a-Service-Lösung Keycloak sorgt dafür, dass die sensiblen Identitätsdaten der Benutzer in deren eigenen Händen bleiben und nicht an Drittanbieter abfließen.
In einer Zeit, in der Anwendungsarchitekturen schneller wechseln als die Jahreszeiten, bleibt eines konstant: die Notwendigkeit zu wissen, wer da eigentlich vor der digitalen Tür steht. Während wir unsere monolithischen Webanwendungen in Microservices zerlegt, unsere Server in Container gepackt und unsere Infrastruktur in die Cloud verlagert haben, ist die fundamentale Frage nach der Identität unserer Benutzer komplexer statt einfacher geworden.
Der moderne Entwickleralltag sieht heute häufig so aus: Da ist die React-basierte Single-Page-Application, die mit einer Handvoll REST-APIs kommuniziert. Diese APIs laufen als containerisierte Services in Kubernetes, interagieren mit einer MongoDB in der Cloud und müssen dabei noch mit dem Legacy-ERP-System im firmeninternen Rechenzentrum kommunizieren. Jede Komponente in der Kette stellt dieselbe Frage: “Wer bist du, und was darfst du hier?”
Die Herausforderung an sich gibt es längst, doch ihre Dimensionen haben sich verändert. Früher genügte ein Session-Cookie in der monolithischen Anwendung. Heute brauchen wir eine Lösung, die gleichzeitig eine Javascript-App im Browser, einen Node.js-Service in AWS, eine Python-API in Azure und eine Java-Anwendung im eigenen Datacenter mit vertrauenswürdigen Identitätsinformationen versorgen kann. Genau hier kommt Keycloak [1] ins Spiel.
Dahinter steckt eine von Red Hat entwickelte quelloffene Lösung für das Identity- und Access-Management (IAM). Seit April 2023 führt die Cloud Native Computing Foundation (CNCF [2]) sie als Incubating-Projekt. Anders als bei den zahlreichen Identity-as-a-Service-Angeboten, die den Markt bevölkern, handelt es sich bei Keycloak (Abbildung 1) um eine selbst gehostete Lösung. Folglich bleiben die Identitätsdaten der Benutzer in den eigenen Händen, statt durch die von Drittanbietern zu wandern.

Abbildung 1: Als selbst gehostete Lösung unterscheidet sich Keycloak von Produkten der zahlreichen Identity-as-a-Service-Anbieter auf dem Markt.
Das Herzstück von Keycloak bildet ein vollständig implementierter OAuth-2.0- und OpenID-Connect-Provider. Er basiert auf dem modernen Framework Quarkus und ist damit speziell für cloudnative Umgebungen optimiert. Aber Keycloak ist weit mehr als nur ein weiterer OAuth-Server. Tatsächlich verbirgt sich dahinter eine komplette Identity-Management-Plattform, die sich nahtlos zwischen die Anwendungen und ihre Benutzer schaltet und dabei die gesamte Komplexität der modernen Authentifizierung und Autorisierung abstrahiert.
Die Grundidee ist denkbar einfach: Statt dass jede Anwendung ihre eigene Benutzerverwaltung, Login-Masken und Passwort-Reset-Funktionen implementiert, übernimmt Keycloak die Aufgaben zentral. Die Anwendungen müssen nur noch verstehen, wie sie mit den von Keycloak ausgestellten Tokens arbeiten. Das ist deutlich einfacher, als es klingt.
Kern-Features
Das offensichtlichste Feature von Keycloak ist Single Sign-on (SSO). Einmal angemeldet, können Benutzer auf alle registrierten Anwendungen zugreifen, ohne sich erneut authentifizieren zu müssen. Dabei interpretiert Keycloak SSO im ursprünglichen und eigentlichen Sinne: Der Benutzer gibt seine Credentials nur an einer einzigen, vertrauenswürdigen Stelle ein, auf dem Keycloak-Server. Alle anderen Anwendungen erhalten lediglich die Bestätigung der erfolgreichen Authentifizierung in Form von standardisierten Tokens.
Das Pendant dazu ist Single Sign-out: Meldet sich ein Benutzer von einer Anwendung ab, kann Keycloak sämtliche andere Anwendungen per standardisiertem Logout-Token über dieses Ereignis informieren, sodass der Benutzer überall abgemeldet wird. Die Funktion gilt besonders in Umgebungen mit strengen Sicherheitsanforderungen als unverzichtbar.
Protokollunterstützung
Keycloak spricht fließend die Sprachen der modernen Webauthentifizierung (Abbildung 2): Es unterstützt OAuth 2.0 [3] und OpenID Connect [4] inklusive aller gängigen Grant Types [5]. Für Umgebungen, die noch auf SAML 2.0 [6] setzen, bietet Keycloak ebenfalls umfassende Kompatibilität. Diese Flexibilität bedeutet unter anderem, dass sowohl eine brandneue React-App als auch ein fünfzehn Jahre altes Java-EE-System mit derselben Keycloak-Instanz arbeiten können.

Abbildung 2: Keycloak bietet unter anderem vollumfänglichen Support für OAuth 2.0 und OpenID Connect.
Besonders hervorzuheben ist die Unterstützung für moderne Anwendungsarchitekturen. Serverseitige Web-Apps, native Mobile Apps und Single Page Applications nutzen den Authorization Code Flow mit PKCE, um Benutzer sicher zu authentifizieren. Anwendungen, auf die der Nutzer nur einen eingeschränkten oder keinen direkten Zugriff haben soll, wie die Streaming-App auf dem Smart-TV, verwenden den Device Authorization Grant. Backend-Services kommunizieren über den Client Credentials Flow miteinander.
Benutzer und Gruppen
Die in Keycloak integrierte Benutzerverwaltung fällt überraschend umfangreich aus. Benutzer können sich selbst registrieren, ihre Profile verwalten, Passwörter ändern und moderne Authentifizierungsmethoden einsetzen. Zu den letzteren zählen Zwei-Faktor-Authentifizierung mit TOTP (Time-based One-Time Password) sowie die zukunftsweisenden Passkeys (WebAuthn) für passwortlose Authentifizierung. Administratoren behalten über eine Weboberfläche (Abbildung 3) oder eine Admin-API vollständige Kontrolle über alle Aspekte der Benutzerverwaltung.

Abbildung 3: Über eine Weboberfläche verwalten Admins Gruppen und Benutzer. Alternativ steht eine API zur Verfügung.
Das Gruppen- und Rollensystem gestaltet sich flexibel: Rollen können global in einem Realm (Abbildung 4) gelten oder spezifisch für einzelne Anwendungen definiert werden. Gruppen ermöglichen, Benutzer hierarchisch zu organisieren und Rollen zu vererben. Diese Flexibilität spielt eine entscheidende Rolle, wenn Sie komplexe Organisationsstrukturen abbilden müssen.

Abbildung 4: Ein Realm in Keycloak entspricht einem isolierten Raum, in Sie dem Benutzer, Anwendungen, Rollen und Gruppen verwalten.
Anpassungsfähig
Eine besondere Stärke von Keycloak liegt in seiner Anpassbarkeit. Sie können das Look & Feel aller Benutzeroberflächen von der Login-Seite über die Registrierung bis hin zur Kontoverwaltung über Themes vollständig auf das Corporate Design eichen, von reinen CSS-Änderungen bis hin zum komplexen HTML-Baum.
Noch tiefgreifender sind die Service Provider Interfaces (SPIs), über die sich praktisch jeder Aspekt von Keycloak erweitern oder verändern lässt. Möchten Sie Benutzer aus einer Legacy-Datenbank authentifizieren? Kein Problem, das User Storage SPI macht es möglich. Soll bei fehlgeschlagenen Login-Versuchen eine E-Mail versendet werden? Das Event Listener SPI ist der richtige Ansatz. Muss bei der Authentifizierung ein bestimmtes Kriterium überprüft werden? Das Authentication SPI ist das passende Interface.
Mehr als 100 weitere SPIs stehen zur Verfügung, um die Lösung rundum auf die eigenen Bedürfnisse oder die eines Unternehmens zuzuschneiden. Ebendiese Erweiterbarkeit verleiht Keycloak den Status einer Plattform, hinter der sich mehr verbirgt als bloß ein fertiges Produkt.
Multi-Tenancy neu gedacht
Mit der Einführung des Organizations-Features hat Keycloak einen modernen Ansatz für Multi-Tenancy implementiert. Organizations ermöglichen es, innerhalb eines Realms unterschiedliche Mandanten zu verwalten, ohne separate Keycloak-Instanzen betreiben zu müssen. Jede Organization kann ihre eigenen Benutzer und Identity Provider besitzen, während sie trotzdem Teil des übergeordneten Realms bleiben.
Diese Funktion erweist sich als besonders wertvoll für SaaS-Anbieter, die ihren Kunden eine isolierte Benutzerverwaltung anbieten möchten, ohne die operative Komplexität mehrerer Keycloak-Instanzen zu akzeptieren. Ein Benutzer kann Mitglied in mehreren Organizations sein und je nach Kontext unterschiedliche Rollen bekleiden. Die Keycloak-Entwickler planen derzeit die Erweiterung des Organization-Features hinsichtlich Gruppen, Rollen und einer Selbstverwaltung.
Identity Provider Federation
In der Realität existieren Benutzeridentitäten selten isoliert oder starten auf der sprichwörtlich grünen Wiese. Unternehmen verfügen oft bereits über ein Active Directory oder LDAP-Verzeichnis. Entwicklerteams nutzen Github oder Gitlab. Endkunden erwarten ein Social Login mit Google oder Facebook. Keycloak meistert diese Herausforderung über User Federations und externe Identity Provider.
Die LDAP/Active-Directory-Integration zeigt sich dabei besonders ausgereift: Keycloak kann sowohl schreibend als auch lesend auf bestehende Verzeichnisse zugreifen und dabei Benutzer, Gruppen und Attribute synchronisieren. Passwörter werden dabei nie synchronisiert, sondern immer zum Zeitpunkt der Authentifizierung online gegen das Verzeichnis überprüft. Bei Bedarf lassen sich mehrere LDAP-Verzeichnisse gleichzeitig anbinden, was bei Unternehmensübernahmen oder komplexen Organisationsstrukturen hilfreich ist.
Social Identity Provider gibt es vorgefertigt: Google, Facebook, Github, Linkedin, Microsoft, Apple und viele andere konfigurieren Sie mit wenigen Klicks. Dabei tritt einmal mehr die Flexibilität von Keycloak zutage: Über generische OIDC- und SAML-Provider binden Sie praktisch beliebige externe Systeme an, zum Beispiel das unternehmensinterne Entra-ID in Azure.
Isolation und Sicherheit
Das Realm-Konzept ist fundamental für Keycloaks Architektur (Abbildung 5). Ein Realm entspricht einem abgeschlossenen und nach außen isolierten Identity Provider, in dem Benutzer, Rollen, Gruppen und Anwendungen (Clients) definiert sind. Verschiedene Realms sind vollständig voneinander isoliert, ein Benutzer aus Realm A kann nicht auf Anwendungen in Realm B zugreifen, es sei denn, er existiert dort ebenfalls.

Abbildung 5: Die Architektur von Keycloak besitzt eine eigene Terminologie und fällt umfangreich aus. Deswegen müssen Sie zunächst ein Verständnis für die Funktionsweise der Lösung aufbauen.
Diese Isolation ist nicht nur ein Sicherheits-Feature, sondern auch ein mächtiges Organisationswerkzeug. Verschiedene Kundenprojekte, Geschäftsbereiche oder voneinander getrennte Anwendungsbereiche mit getrennten Benutzerkreisen lassen sich als separate Realms führen. Jeder Realm kann dabei seine eigenen Konfigurationen, Themes und Identity Provider aufweisen.
Compliance und Datenschutz
In einer Zeit, in der Datenschutz und Compliance zunehmend an Bedeutung gewinnen, liefert Keycloak unterschiedliche Features zur DSGVO-konformen Verarbeitung von Benutzerdaten. Benutzer können ihre eigenen Daten einsehen, exportieren und löschen. Administratoren bekommen Werkzeuge zur Anonymisierung und zum sicheren Löschen von Benutzerdaten an die Hand.
Die Audit-Funktionalität protokolliert sämtliche sicherheitsrelevanten Ereignisse und gestattet so das Nachverfolgen von Authentifizierungs- und Autorisierungsereignissen. Die Protokolle lassen sich zur Compliance-Dokumentation oder zur Forensik bei Sicherheitsvorfällen heranziehen.
Container-First
Die Entwickler haben Keycloak von Grund auf für den Containerbetrieb konzipiert. Bei Docker Hub erhalten Sie das offizielle Docker-Image [7] unter keycloak/keycloak. Das Quarkus-Framework als technische Basis sorgt für schnelle Startzeiten und effizienten Ressourcenverbrauch – Eigenschaften, die man in Containerumgebungen besonders wertschätzt.
Die Konfiguration erfolgt vollständig über Umgebungsvariablen oder externe Konfigurationsdateien, was dem Twelve-Factor-App-Paradigma entspricht und die Integration in moderne CI/CD-Pipelines erleichtert. Secrets lassen sich über Kubernetes Secrets oder externe Secrets-Management-Systeme bereitstellen.
Auch in klassischen oder traditionellen Deployment-Umgebungen wie VMs oder Bare Metal betreiben Sie Keycloak problemlos. Alle für den Container geltenden Konfigurationsmöglichkeiten finden sich auch dort.
Volle Kubernetes-Integration
Für Kubernetes-Umgebungen stellt Keycloak einen offiziellen Operator zur Verfügung. Er vereinfacht das Installieren und Verwalten von Keycloak-Instanzen erheblich. Der Operator übernimmt dabei nicht nur die initiale Bereitstellung, sondern auch Aktualisierungen, Backups und die Skalierung.
Als Alternative zum Kubernetes-nativen Ansatz bietet der offizielle Terraform-Provider, der seit Ende 2024 offiziell Teil des Keycloak-Projekts ist, eine Infrastructure-as-Code-Lösung (IaC) für das Management von Keycloak-Konfigurationen. Dieser Provider erlaubt, Realms, Clients, Benutzer und alle anderen Keycloak-Ressourcen deklarativ über Terraform zu verwalten und in bestehende IaC-Workflows einzubinden.
Die Kubernetes-Integration geht allerdings über den Operator hinaus: Keycloak stellt Metriken für Prometheus bereit und kann seine Logs strukturiert ausgeben, was die Integration in Kubernetes-native Monitoring- und Logging-Lösungen wie Prometheus und Grafana erleichtert.
Skalierung und Hochverfügbarkeit
Keycloak ist für den Betrieb in hochverfügbaren und skalierbaren Umgebungen ausgelegt. Sie können mehrere Keycloak-Instanzen in einem Cluster betreiben, wobei Session-Daten zwischen den Instanzen repliziert werden. Ein Load Balancer verteilt Requests transparent zwischen den Instanzen, ohne dass Benutzer Ausfälle bemerken.
Die Datenbank-Layer unterstützen alle gängigen relationalen Datenbanken. Sie können beziehungsweise sollten sie ebenfalls geclustert betreiben. Für besonders anspruchsvolle Umgebungen lassen sich sogar geografisch verteilte Setups umsetzen, bei denen Keycloak-Cluster in unterschiedlichen Rechenzentren oder Cloud-Regionen laufen.
Moderne Anwendungsarchitekturen
Keycloak folgt konsequent einem API-First-Ansatz. Jede Funktion, die über die Weboberfläche erhältlich ist, steht auch über die Admin-REST-API zur Verfügung. Damit lassen sich Deployment- und Konfigurationsprozesse vollständig automatisieren. Das Einbinden in IaC-Workflows funktioniert ebenfalls.
Die Admin-REST-API fällt dabei so umfangreich aus, dass die mitgelieferte Admin-Konsole selbst nur ein Client dieser API ist. Entwickler können eigene administrative Oberflächen entwickeln oder Keycloak-Konfigurationen vollständig über Code verwalten.
Die Integration von Anwendungen erfolgt über die Standard-Bibliotheken und -Frameworks für OAuth 2 und OpenID Connect, die in den jeweiligen Technologieökosystemen und Software-Frameworks verfügbar sind. Java-Anwendungen nutzen beispielsweise Spring Security oder Quarkus-eigene OIDC-Extensions, während andere Plattformen ihre entsprechenden OAuth/OIDC-Bibliotheken verwenden. Diese standardkonforme Herangehensweise vermeidet einen Vendor-Lock-in und gestattet es, bei Bedarf auch andere Identity Provider einzusetzen.
Die richtige Wahl
Keycloak glänzt besonders in Umgebungen, in denen Kontrolle über die eigenen Daten wichtig ist. Unternehmen, die sensible Kundendaten verarbeiten oder strengen Compliance-Anforderungen unterliegen, profitieren davon, dass alle Identitätsdaten im eigenen Einflussbereich bleiben. Die Flexibilität von Keycloak macht es zur idealen Wahl für komplexe Unternehmensumgebungen mit heterogenen Systemlandschaften.
Als besonders wertvoll erweist sich Keycloak für Organisationen, die bereits Identity-Systeme betreiben und sie nicht ablösen, sondern integrieren möchten. Die umfangreichen Federation-Möglichkeiten erlauben, Keycloak als eine Art moderne Fassade vor Legacy-Systeme zu setzen, ohne sie ersetzen zu müssen. Entwicklerteams, die mehrere Anwendungen betreuen, sparen erheblichen Aufwand, da sie keine redundanten Authentifizierungsmechanismen mehr implementieren müssen. Die standardisierten APIs und Tokens von Keycloak reduzieren die Komplexität deutlich.
Bei aller Begeisterung für Keycloak darf ein ehrlicher Blick auf die damit verbundenen Herausforderungen nicht fehlen. Die größte Hürde besteht häufig in der initialen Komplexität der Konfiguration. Keycloak offeriert derartig viele Optionen und Einstellungsmöglichkeiten, dass Einsteiger sich schnell überfordert fühlen. Insbesondere für Teams, die bisher wenig Erfahrung mit modernen Identity-Management-Konzepten gesammelt haben, ist die Lernkurve steil.
Realms, Clients, Scopes, Mappers, Flows – die Terminologie zeigt sich umfangreich. Sie müssen sie verstanden haben, bevor produktive Konfigurationen entstehen können. Hier zahlt es sich aus, Zeit in die Einarbeitung zu investieren und möglicherweise externe Expertise hinzuzuziehen.
Ein weiterer Aspekt ist die Verantwortung, die mit dem Self-Hosting einhergeht. Während Managed Services die operative Last abnehmen, muss bei Keycloak das Betriebsteam alle Aktualisierungen und Backups, das Monitoring und die Sicherheit selbst gewährleisten. Das ist zwar nicht zwangsläufig ein Nachteil, erfordert aber entsprechende Ressourcen und Know-how im Team und Unternehmen.
Fazit: Die Zukunft ist offen
Keycloak hat sich in den letzten Jahren von einem JBoss-Projekt zu einer der führenden quelloffenen Identity-Management-Lösungen entwickelt. Die Aufnahme in die CNCF unterstreicht die Bedeutung und das Vertrauen der Community in das Projekt. Mit seiner Flexibilität, Erweiterbarkeit und dem konsequenten Cloud-native-Ansatz ist Keycloak gut positioniert für die Herausforderungen moderner Anwendungsarchitekturen.
Die Entscheidung für Keycloak kommt letztlich einer Entscheidung für Kontrolle und Flexibilität gleich. Organisationen, die bereit sind, die initiale Komplexität zu meistern und die operative Verantwortung zu übernehmen, erhalten dafür eine mächtige Plattform, die mit ihren Anforderungen wachsen kann.
In einer Zeit, in der Datenhoheit und Vendor Independence zu den kritischen Faktoren gehören, glänzt Keycloak als attraktive Alternative zu den großen Cloud-Anbietern. Die aktive Community, regelmäßige Updates und die professionelle Unterstützung durch Red Hat sorgen dabei für die nötige Vertrauensbasis für den Einsatz in produktiven Umgebungen.
Im zweiten Teil dieser Artikel-Serie konfigurieren wir einen Keycloak-Server mit den wichtigsten Einstellungen. Wir legen Benutzer samt deren Credentials an und beleuchten, wie Sie eine konkrete verteilte Anwendung mit Keycloak absichern und dabei die wichtigsten Integrationsschritte durchgehen. Bei aller Theorie zeigt sich die wahre Stärke einer Technologie erst in der praktischen Anwendung. (csi)
Der Autor
Der Freelancer Niko Köbler (https://www.n-k.de) ist seit über zehn Jahren als Mr. Keycloak bekannt und als IAM-Experte für Kunden aus unterschiedlichen Branchen europaweit tätig. Auf Youtube betreibt er seit Anfang 2021 einen Keycloak-Channel [8] und unterstützt die Community in verschiedenen Foren [9]. Er ist ein bekannter und gefragter Sprecher auf IT-Konferenzen, Co-Lead der JUG Darmstadt und schreibt als Autor Artikel für Fachzeitschriften und Magazine.
Infos
- Keycloak: https://www.keycloak.org
- CNCF: https://www.cncf.io
- OAuth: https://oauth.net/2/
- OpenID: https://openid.net/developers/how-connect-works/
- Grant Types: https://oauth.net/2/grant-types/
- SAML: https://auth0.com/de/intro-to-iam/what-is-saml
- Docker-Image: https://hub.docker.com/r/keycloak/keycloak
- Keycloak-Channel: https://www.youtube.com/@dasniko
- Keycloak-Forum: https://keycloak.discourse.group






