Single-Sign-On mit Keycloak

Ein Multitalent, das mehr kann als sicher authentifizieren.

Gesagt, getan

Jürgen Egeling
ist bereit immer wieder alles Bestehende zu hinterfragen.
Lesedauer: ca. 2 Minuten

Jede Applikation hat ihr eigenes Login. Zwar kann man sich immer mit demselben Usernamen und Passwort einloggen, aber wehe wenn man mal das Passwort ändern möchte. Dann heißt es Fingerakrobatik bei allen Logins.
Schick wäre doch ein zentrales System, an dem sich alle Benutzer anmelden können, und was auch in den modernen verteiten Architekturen funktioniert, da man damit Services "sicher" machen kann.
In eigenen Software Produkten sieht man sich anderen Herausforderungen gestellt: Wie kann man die Nutzer sicher authentifizieren, und wie man denen, die es wünschen, eine Authentifizierung mit Social Media Diensten (Facebook, google, github, twitter) anbieten?

Keycloak als Multitalent 

Keycloak kann das alles, und läßt sich auch noch an die ggf. schon im Hause vorhandenen User Directories wie LDAP oder Active Directory anbinden. Da Keycloak auch das Kerberos Protokoll unterstützt ist es auch möglich solche Dienste mit einzubinden, die Kerberos als Protokoll zur Verfügung stellen. Und das alles wohlgemerkt parallel zu den oben genannten Diensten.

Zentrale Authentifizierung

Keycloak kann also für so ziemlich alle im Unternehmen vorhandenen Dienste die Authentifizierung zur Verfügung stellen. Doch was passiert, wenn dieser zentrale Authentifizierungsdienst ausfällt? Nun, dann kann sich niemand mehr einloggen, das sollte also tunlichst nicht passieren. Doch keine Angst, der Keycloak Server kann als HA (high availability) Dienst ausgelegt und konfiguriert werden. Durch die vorhandenen Replikations und Failover Dienste kann Keycloak entsprechend ausfallsicher konfiguriert werden. Grenzen technischer Natur sind hier keine gesetzt.

Keycloak spricht mehrere Sprachen

Sowohl für alle gängigen Programmiersprachen gibt es Plugins oder es existieren Code Schnipsel, die bei der Entwicklung den Einstieg leicht machen, also auch die verschiedenen Austauschformate bei der Authentifizierung, die Keycloak bietet machen dieses Tool zur ersten Wahl bei einer zentralen Benutzerverwaltung. Keycloak kann mit Ihrer bestehenden Authentifizierungswelt z.B. LDAP "sprechen"; und dann zu den Internetapplikationen die dort benötigten Authentifizierungen wie z.B. SAML, OpenID Connect oder Oauth 2.0 senden. Und das ganze auch noch für jede einzelne Webapplikation unabhängig von einander.

Da Keycloak als Identity und Authorisierungsbroker eingesetzt wird, kann man nun seine eigenen Services als eigenständige verteilte Dienste aufbauen, bei denen der Benutzer trotzdem überall dasselbe Login und dasselbe Passwort verwenden kann. Für den Benutzer Ihrer Dienste stellt das eine nicht zu unterschätzende Vereinfachung dar, und für alle Appikationsverantwortlichen im Unternehmen können die dezentral aufgesetzten Dienste hinzufügent, oder aber auch wieder außer Betrieb nehmen. Das ganze natürlich auch DSGVO konform, da außer dem Logging zwischen diesen Diensten keine weiteren Daten geteilt werden müssen. Jede Applikation kann Ihre eigenen Daten halten, und so kann auch sichergestellt werden, dass die Entwicklungsteams der Applikationen nur die Daten erhalten, die diese auch bearbeiten sehen müssen.

Wenn Sie das Thema Usermanagement näher interessiert, dann kontaktieren Sie uns gerne.

Teilen:

Weitere Beiträge

I will convert coffee into code
Alexander Reichel, Entwicklung bei punkt.de
Arbeiten bei punkt.de