IAM

Was ist Keycloak und was hat es drauf?

Passkeys, Passwort, Authentifizierung

Die Verwaltung von Benutzeridentitäten und Zugriffsrechten gehört zu den kritischsten Aufgaben in modernen IT-Infrastrukturen. Mit Keycloak steht Entwicklern und Administratoren eine ausgereifte Open-Source-Plattform zur Verfügung, die Enterprise-Features bietet, ohne dabei die Komplexität kommerzieller Alternativen mitzubringen.

Die Zeiten, in denen jede Anwendung ihre eigene Benutzerverwaltung implementierte, sind längst vorbei. Keycloak, ein Projekt unter dem Dach der Cloud Native Computing Foundation (CNCF) und zuvor von Red Hat entwickelt, hat sich im IAM-Umfeld als eine der führenden Open-Source-Lösungen etabliert.

Anzeige

Was ist Keycloak?

Keycloak ist ein Identity Provider (IdP) und IAM-System, das Single Sign-On (SSO), Social Login, Multi-Faktor-Authentifizierung und fein granulare Autorisierung für moderne Anwendungen bereitstellt. Die Java-basierte Plattform implementiert gängige Standards wie OAuth 2.0, OpenID Connect (OIDC) und SAML 2.0 und ermöglicht es Entwicklern, Authentifizierung und Autorisierung aus ihren Anwendungen auszulagern.

Der entscheidende Vorteil liegt in der Entkopplung: Statt in jeder Applikation eigene Login-Mechanismen zu implementieren, delegieren Anwendungen diese Aufgabe an die Lösung. Das reduziert nicht nur den Entwicklungsaufwand erheblich, sondern verbessert auch die Sicherheit, da bewährte und kontinuierlich gewartete Implementierungen zum Einsatz kommen.

Keycloak Single Sign on
Bildquelle: Cloud Native Computing Foundation

Einsetzen der Kernfunktionen

Im Zentrum der Funktionalität steht Single Sign-On, wodurch sich Benutzer einmal authentifizieren und anschließend auf alle angebundenen Anwendungen zugreifen können. Dieses Konzept funktioniert gleichermaßen für Web-Anwendungen, mobile Apps und APIs.

Anzeige

Gerade in heterogenen IT-Landschaften spielt es seine Stärken aus. Die Plattform kann als Brücke zwischen unterschiedlichen Protokollen fungieren, etwa indem sie SAML-basierte Legacy-Systeme mit modernen OIDC-Flows verbindet. Diese Flexibilität ist insbesondere für Organisationen mit gewachsenen Systemlandschaften entscheidend.

Darüber hinaus unterstützt die Software die Integration bestehender Identitätsquellen. Benutzer lassen sich aus LDAP-Verzeichnissen oder Active Directory einbinden, und über Identity Brokering können externe Identity Provider wie Google, GitHub oder Azure AD angebunden werden. So entsteht ein föderiertes Identity-Management über Organisationsgrenzen hinweg.

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.

Aufbauen auf solider Architektur

Technologisch basiert Keycloak auf bewährten Java-Komponenten. Bis einschließlich Version 16 nutzte die Plattform den Application Server WildFly. Mit Version 17 erfolgte der Wechsel zu Quarkus, einer für Cloud-native Szenarien optimierten Laufzeitumgebung. Dieser Schritt brachte deutlich kürzere Startzeiten, geringeren Speicherverbrauch und eine bessere Eignung für Container-Umgebungen.

Quarkus ermöglicht zudem optional die Erstellung von GraalVM Native Images, die in bestimmten Szenarien weitere Vorteile bei Startzeit und Ressourcennutzung bieten können. Gerade in Kubernetes-Umgebungen profitieren Deployments von schneller skalierenden Pods und effizienterer Ressourcenauslastung.

Keycloak speichert Konfigurationen und Benutzerdaten standardmäßig in relationalen Datenbanken. Unterstützt werden unter anderem PostgreSQL, MySQL, MariaDB, Oracle und Microsoft SQL Server. Für Hochverfügbarkeit lässt sich Keycloak horizontal skalieren, wobei mehrere Instanzen über Infinispan-basierte Caches koordiniert werden.

Organisieren mit Realms, Clients und Rollen

Das zentrale Organisationskonzept in Keycloak sind sogenannte Realms. Ein Realm bildet einen logisch isolierten Verwaltungsbereich mit eigenen Benutzern, Clients, Rollen und Sicherheitseinstellungen. Damit lassen sich Mandanten, Geschäftsbereiche oder unterschiedliche Umgebungen klar voneinander trennen.

Anwendungen werden innerhalb eines Realms als Clients registriert. Dabei unterscheidet Keycloak zwischen confidential Clients, die vertrauliche Zugangsdaten sicher speichern können, und public Clients wie Single-Page-Applications. Für beide Typen existieren unterschiedliche Sicherheitsmechanismen und Konfigurationsoptionen.

Das Rollenmodell ist zweistufig aufgebaut: Realm-Rollen gelten global innerhalb eines Realms, während Client-Rollen an einzelne Anwendungen gebunden sind. Diese Struktur erlaubt flexible Autorisierungskonzepte, von einfachen rollenbasierten Modellen bis hin zu fein abgestuften Berechtigungen auf Anwendungsebene.

Absichern durch Authentifizierungsflows

Keycloak bietet ein mächtiges Flow-System zur Konfiguration von Authentifizierungsprozessen. Administratoren können festlegen, welche Schritte ein Benutzer durchlaufen muss, um sich anzumelden. Das reicht von einfachen Username-Password-Kombinationen über Multi-Faktor-Authentifizierung mit Time-based One-Time Passwords (TOTP) bis zu WebAuthn-basierten Hardware-Keys.

Die Plattform unterstützt moderne Sicherheitsstandards out-of-the-box. Password Policies lassen sich detailliert konfigurieren, Brute-Force-Protection schützt vor Angriffen, und Session-Management ermöglicht die zentrale Verwaltung aktiver Benutzersitzungen. Administratoren können verdächtige Sessions remote beenden oder Benutzer zur erneuten Authentifizierung zwingen.

Besonders relevant für DSGVO-Compliance ist die eingebaute Consent-Verwaltung. Keycloak kann Benutzer explizit um Zustimmung bitten, bevor Daten an Drittanwendungen weitergegeben werden. Diese Consents werden protokolliert und können vom Benutzer jederzeit eingesehen und widerrufen werden.

Customizing und Theming

Die Standardoberfläche von Keycloak ist funktional, entspricht aber nicht immer den Corporate-Design-Vorgaben von Unternehmen. Das Theming-System erlaubt umfassende Anpassungen der Login-Seiten, Account-Verwaltung und Admin-Konsole. Themes basieren auf FreeMarker-Templates und können CSS, JavaScript und eigene Ressourcen einbinden.

Für fortgeschrittene Anpassungen bietet Keycloak ein Service Provider Interface (SPI). Über SPIs lassen sich eigene Authenticators, Password Policies, Event Listeners und Protocol Mapper implementieren. Das ermöglicht die Integration proprietärer Authentifizierungsmechanismen oder die Anbindung spezialisierter Audit-Systeme.

Ein praktisches Beispiel wäre ein Custom Authenticator für biometrische Authentifizierung oder die Integration eines unternehmenseigenen Berechtigungssystems. Die SPI-Architektur ist Plugin-basiert, sodass Erweiterungen als JAR-Dateien bereitgestellt und ohne Modifikation des Keycloak-Cores deployed werden können.

Betrieb und Deployment

Für den produktiven Betrieb stehen verschiedene Deployment-Optionen zur Verfügung. Die klassische Variante ist die Installation auf einem Application Server oder als Standalone-Prozess. Moderne Deployments nutzen jedoch zunehmend Container-Technologien. Red Hat bietet offizielle Container-Images, die für den Einsatz in Docker, Podman oder Kubernetes optimiert sind.

Im Kubernetes-Umfeld hat sich der Keycloak Operator etabliert. Dieser Operator automatisiert Deployment, Updates und Backups von Keycloak-Instanzen und implementiert Best Practices für Cloud-native Betriebsführung. Die Operator-Pattern-basierte Verwaltung reduziert den operativen Aufwand erheblich und ermöglicht deklaratives Management über Custom Resources.

Monitoring und Logging sind essentiell für den stabilen Betrieb. Keycloak exportiert Metriken im Prometheus-Format und unterstützt strukturiertes Logging. Events wie fehlgeschlagene Login-Versuche, Admin-Aktionen oder Token-Ausstellungen können in externe SIEM-Systeme weitergeleitet werden. Für Troubleshooting bietet die Admin-Konsole detaillierte Session-Informationen und Token-Inhalte zur Inspektion.

Integration in moderne Entwicklungs-Workflows

Keycloak lässt sich in moderne Entwicklungsumgebungen über standardkonforme OAuth2- und OIDC-Flows integrieren. Während früher dedizierte Client-Adapter verbreitet waren, empfiehlt sich heute zunehmend die Nutzung nativer OIDC-Bibliotheken der jeweiligen Plattformen.

In Microservice-Architekturen übernimmt Keycloak typischerweise die Rolle des zentralen Identity Providers. Services validieren JWT-Tokens lokal anhand der über den JWKS-Endpoint bereitgestellten öffentlichen Schlüssel, ohne den Identity Provider bei jeder Anfrage kontaktieren zu müssen.

API Gateways wie Kong, Ambassador oder Spring Cloud Gateway lassen sich in diese Architektur integrieren und übernehmen Authentifizierung und Autorisierung an zentraler Stelle.

Skalieren für hohe Lasten

Die Performance von Keycloak hängt stark von der Konfiguration und dem Deployment ab. In typischen Szenarien kann eine einzelne Instanz mehrere tausend Authentifizierungen pro Sekunde verarbeiten. Für höhere Lasten ist horizontale Skalierung der empfohlene Ansatz.

In einem Cluster-Setup kommunizieren Keycloak-Instanzen über Infinispan-Caches. Sessions, Token-Metadaten und andere temporäre Daten werden repliziert, sodass jede Instanz Anfragen bearbeiten kann. Load Balancer verteilen eingehenden Traffic auf die verfügbaren Instanzen, wobei Session-Stickiness nicht zwingend erforderlich ist.

Caching spielt eine zentrale Rolle für die Performance. Keycloak cached Benutzerinformationen, Realm-Konfigurationen und Autorisierungsentscheidungen aggressiv. Administratoren können Cache-Policies feinjustieren, um ein optimales Gleichgewicht zwischen Aktualität und Performance zu finden. Für LDAP-Backends ist Caching besonders wichtig, da externe Verzeichnisdienste oft Performance-Bottlenecks darstellen.

Vergleich mit Alternativen

Im Open-Source-Bereich konkurriert Keycloak hauptsächlich mit Lösungen wie Ory, Authentik und FusionAuth. Keycloak punktet mit seiner Reife, umfangreichen Feature-Set und der großen Community. Die Admin-Konsole ist ausgereift, und die Dokumentation ist vergleichsweise vollständig.

Kommerzielle Alternativen wie Okta, Auth0 oder Azure AD B2C bieten ähnliche Funktionalität als Managed Service. Der Hauptvorteil dieser Lösungen liegt in der reduzierten Betriebslast, während Keycloak vollständige Kontrolle und Unabhängigkeit von Cloud-Providern bietet. Für Organisationen mit strengen Datenschutzanforderungen oder Air-Gapped-Umgebungen ist Self-Hosting oft die einzige Option.

Ory verfolgt einen moderneren, Cloud-native-Ansatz mit schlanker Architektur und bietet interessante Features wie programmierbare Flows über Webhooks. Keycloak ist jedoch etablierter und bietet mehr Out-of-the-box-Funktionalität für klassische Enterprise-Szenarien. Die Wahl hängt stark vom spezifischen Anwendungsfall und der bestehenden Infrastruktur ab.

Fazit

Keycloak hat sich als robuste, feature-reiche Open-Source-Lösung für Identity und Access Management etabliert. Die Plattform eignet sich sowohl für kleine Projekte als auch für Enterprise-Deployments mit Millionen von Benutzern. Die Implementierung gängiger Standards, umfassende Erweiterbarkeit und aktive Community machen Keycloak zu einer attraktiven Alternative zu kommerziellen Produkten.

Der Betrieb erfordert allerdings entsprechendes Know-how. Administratoren müssen sich mit Konzepten wie OAuth2, OIDC und SAML auseinandersetzen und die Architektur verstehen. Für Organisationen, die diese Investition tätigen, bietet Keycloak jedoch eine zukunftssichere Grundlage für moderne Authentifizierungs- und Autorisierungsszenarien.

Wer Open Source bevorzugt, Wert auf Datensouveränität legt oder spezifische Compliance-Anforderungen erfüllen muss, findet in Keycloak eine ausgereifte Plattform, die Enterprise-Features ohne Vendor-Lock-in bereitstellt. Die kontinuierliche Weiterentwicklung und das Backing durch etablierte Organisationen wie Red Hat und die CNCF versprechen langfristige Stabilität und Support.

Lars

Becker

Redakteur

IT Verlag GmbH

Anzeige

Weitere Artikel

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.