Blog

Eine Kurzanleitung zur Verwendung von Keycloak für das Identitäts- und Zugriffsmanagement

CoMakeIT

Aktualisiert Oktober 21, 2025
9 Minuten

In diesem Blog werden wir Ihnen zeigen, wie Sie Keycloak für das Identitäts- und Zugriffsmanagement nutzen können. Aber zunächst finden Sie hier einige häufig gestellte Fragen zu Keycloak.

Was ist Keycloak?

Keycloak ist ein Open-Source-Tool für das Identitäts- und Zugriffsmanagement mit Funktionen wie Single-Sign-On (SSO), Identity Brokering und Social Login, User Federation, Client Adapters, einer Admin Console und einer Account Management Console. Es vereinfacht das Hinzufügen von Authentifizierung zu Anwendungen und die Sicherung von Diensten mit minimalem Aufwand und unterstreicht damit die Bedeutung von Access Management Add Authentication und sicheren Diensten. Keycloak spielt eine entscheidende Rolle bei der Authentifizierung von Benutzern über verschiedene Anwendungen hinweg und sorgt so für eine nahtlose und sichere Benutzererfahrung.

Ist Keycloak kostenlos?

Ja, Keycloak ist kostenlos. Da der Keycloak-Server Open-Source ist und unter der Apache-Lizenz 2.0 steht, zeichnet er sich durch seine umfangreichen Fähigkeiten bei der Konfiguration und Verwaltung von Identitäts- und Zugriffsmanagement-Lösungen aus.

IAM (Identity Access Management)

IAM oder IdM (Identity Management) ist ein Framework, das zur Authentifizierung der Benutzeridentität und -privilegien verwendet wird. Es prüft, ob die Benutzer Zugang zu den erforderlichen Dateien, Netzwerken und anderen Ressourcen haben, die der Benutzer angefordert hat. Es prüft auch, wie und von wem die Informationen durch die Verwaltung der beschreibenden Informationen der Benutzer abgerufen und geändert werden können. IAM-Systeme stellen den Administratoren Tools und einige Technologien zur Verfügung, um die Rolle eines Benutzers zu ändern, die Benutzeraktivitäten zu verfolgen usw.

 

https://www.youtube.com/watch?v=GHy2KFjlhpg

Das Identitätsmanagement hat vier grundlegende Funktionen:

  1. Die reine Identitätsfunktion: Ohne Berücksichtigung von Zugriffsrechten oder Berechtigungen für die Erstellung, Verwaltung und Löschung von Identitäten.
  2. Die Funktion für den Benutzerzugang (Anmeldung): Um sich zum Beispiel bei einem oder mehreren Diensten anzumelden (eine traditionelle Ansicht), verwendet der Kunde eine Smartcard und die damit verbundenen Daten.
  3. Die Servicefunktion: Für Benutzer und ihre Geräte liefert ein System personalisierte, rollenbasierte, Online-, On-Demand-, Multimedia(inhalte)- und präsenzbasierte Dienste.
  4. Identitätsverbund: Die Authentifizierung eines Benutzers, ohne sein Passwort zu kennen, kann von einem System mit föderierter Identität vorgenommen werden.

Single Sign-On und Benutzerverwaltung

Single Sign-On (SSO) ist eine Eigenschaft der Zugangskontrolle für mehrere zusammenhängende und unabhängige Softwaresysteme, bei der sich ein Benutzer mit einer einzigen ID und einem einzigen Passwort anmeldet, um Zugang zu einem oder mehreren verbundenen Systemen zu erhalten, ohne verschiedene Benutzernamen oder Passwörter zu verwenden. SSO wird in der Regel über Lightweight Directory Access Protocol (LDAP) und gespeicherte LDAP-Datenbanken auf (Verzeichnis-)Servern realisiert. SSO kann über IP-Netzwerke unter Verwendung von Cookies erreicht werden, aber nur, wenn die Sites eine gemeinsame DNS-Mutterdomäne haben.

Zu den gemeinsam genutzten Authentifizierungssystemen gehören OAuth, OpenID, OpenID Connect und Facebook Connect. Bei allen Authentifizierungsverfahren, die wir verwenden, muss der Benutzer seine Anmeldedaten jedes Mal eingeben, wenn er auf eine Website oder Anwendung zugreift. Mit SSO brauchen wir uns jedoch nicht zu verwirren, denn hier genügt eine einzige Anmeldung, um sich bei verschiedenen Anwendungen anzumelden. Mit SSO können Benutzer ihre Anmeldedaten einmal eingeben, aber immer dann, wenn sie sich anmelden.

Vorteile der Verwendung von SSO

  1. Verringern Sie das Risiko des Zugriffs auf Websites von Drittanbietern.
  2. Verringern Sie die Schwachstellen von Passwörtern, die sich aus den verschiedenen Kombinationen von Benutzernamen und Passwort ergeben.
  3. Reduzieren Sie den Zeitaufwand für die erneute Eingabe von Passwörtern für dieselbe Identität.
  4. Weniger Anrufe beim IT-Helpdesk wegen Passwörtern, daher werden auch die IT-Kosten gesenkt.

Keycloak-Autorisierung

Keycloak Authorization Services ist ein zentrales Feature, das fein abgestufte Autorisierungsrichtlinien ermöglicht und damit die Open-Source-Lösung für Identitäts- und Zugriffsmanagement von Keycloak erweitert. Dieser Service erleichtert die Implementierung detaillierter Zugriffskontrollmechanismen, einschließlich attributbasierter Zugriffskontrolle (ABAC) und rollenbasierter Zugriffskontrolle (RBAC), um Berechtigungen und Autorisierung für Anwendungen und Dienste umfassend zu verwalten. Benutzer können sich mit Keycloak statt mit einzelnen Anwendungen authentifizieren, so dass die Anwendungen keine Anmeldeformulare mehr bearbeiten, Benutzer authentifizieren und Benutzerinformationen speichern müssen.

Einmal bei Keycloak eingeloggt, müssen sich Benutzer nicht erneut anmelden, um auf verschiedene Anwendungen zuzugreifen, und der gleiche Komfort gilt für die Abmeldung. Keycloak bietet alles, was ein ausgeklügeltes Tool zur Benutzerverwaltung braucht - ohne dass Sie sich bei jeder Anmeldung und in jedem System erneut anmelden müssen - sowie Systemsicherheit, soziale Logins, Unterstützung für mobile Apps und Integration in andere Lösungen. Darüber hinaus gewährt Keycloak den Zugriff auf Ressourcen auf der Grundlage der Standardkonfiguration, der Richtlinie und der Berechtigungen, wodurch der Autorisierungsprozess über verschiedene Anwendungen hinweg rationalisiert wird. Keycloak verfügt auch über Implementierungen für LDAP und Active Directory.

Passwort-Richtlinien

Jedem neu erstellten Bereich sind keine Passwortrichtlinien zugeordnet, während Benutzer so kurze, lange, komplexe oder unsichere Passwörter erstellen können, wie sie wollen. Einfache Einstellungen sind gut für die Entwicklung oder das Erlernen von Keycloak, aber in Produktionsumgebungen inakzeptabel.

OTP zur Authentifizierung von Benutzern

Keycloak verfügt über eine Reihe von Richtlinien, die Sie für Ihren FreeOTP oder Google Authenticator One-Time Password Generator einrichten können. Es gibt zwei Arten:

  1. TOTP(Zeitbasiertes OTP)
  2. HOTP(Zählerbasiertes OTP)

Kundenzertifikat

  • Ein Client-Authentifizierungszertifikat ist ein Zertifikat, das zur Authentifizierung von Clients während eines SSL-Handshakes verwendet wird, also von Benutzern, die auf einen Server zugreifen, indem sie das Client-Authentifizierungszertifikat austauschen. Ein Client-Zertifikat enthält in der Regel relevante Informationen wie eine digitale Signatur, ein Ablaufdatum, den Namen des Kunden, den Namen der Zertifizierungsstelle (CA), den Widerrufsstatus, die SSL/TLS-Versionsnummer, die Seriennummer und möglicherweise weitere Informationen, die alle nach dem X.509-Standard aufgebaut sind.
  • Sehr populäre Webbrowser wie Firefox, Chrome, Safari und Internet Explorer können Client-Zertifikate problemlos unterstützen. Um eine Anwendung mit Keycloak zu integrieren, müssen Sie die Keycloak-Einstellungen für neue Clients konfigurieren, d.h. die Client-Authentifizierung umschalten. Dadurch werden die Client-Authentifizierung und -Autorisierung aktiviert oder deaktiviert, der Authentifizierungsfluss definiert und die Anmeldepfade festgelegt.
  • Wenn eine Anwendung mit Client-Zertifikat-Authentifizierung aktiviert ist, können nur Benutzer, die versuchen, eine Verbindung von Clients aus herzustellen, die mit den richtigen Client-Zertifikaten geladen sind, erfolgreich sein. Selbst wenn ein legitimer Benutzer versucht, sich mit dem richtigen Benutzernamen und Kennwort zu verbinden, wird diesem Benutzer kein Zugriff gewährt, wenn er sich nicht in einer Client-Anwendung befindet, die mit dem richtigen Client-Zertifikat geladen ist.
  • Wenn der Benutzer die Verbindung über einen Webbrowser herstellt, wird die Anmeldeseite (auf der er seinen Benutzernamen und sein Kennwort eingeben muss) möglicherweise gar nicht geladen, wie in der folgenden Abbildung zu sehen ist.
  • Ein Serverzertifikat wird zu Beginn einer Sitzung vom Server an den Client gesendet und wird vom Client zur Authentifizierung des Servers verwendet. Ein Client-Zertifikat hingegen wird zu Beginn einer Sitzung vom Client an den Server gesendet und wird vom Server zur Authentifizierung des Clients verwendet.

Keycloak Admin-Konsole Arbeitsweise

Auf einem kompletten, mit keycloak gesicherten System: Ein Benutzer klickt von einer öffentlichen Seite aus, um zu einem geschützten Bereich innerhalb der Anwendung zu navigieren. Der Link zu diesem geschützten Bereich befindet sich in den Anwendungseinstellungen in der Verwaltungskonsole von keycloak.

  • Der Benutzer wird tatsächlich auf die Keycloak-Authentifizierungsseite weitergeleitet. Nachdem er seinen Benutzernamen und sein Passwort eingegeben hat, leitet keycloak den Benutzer mit einem Code, der nur für eine sehr kurze Zeitspanne gültig ist, wieder zur Anwendung zurück.
  • Die Anwendung übermittelt diesen Code zusammen mit der Anwendungs-ID und dem Anwendungsgeheimnis an keycloak. keycloak antwortet dann mit dem Access-Token, dem ID-Token und einem Refresh-Token. Ihre Anwendung benötigt nur eines dieser Token, um zu sehen, welche Ansprüche der Benutzer hat, und je nach den Ansprüchen wird dem Benutzer der Zugriff auf die angeforderte(n) geschützte(n) URL(s) gewährt oder verweigert.
Keycloak Arbeitsverfahren

Keycloak mit OpenID Connect (OIDC)

OIDC ist ein Authentifizierungsprotokoll, das eine Erweiterung von OAuth 2.0 ist. OAuth 3.0 ist nur ein Rahmen für die Erstellung von Autorisierungsprotokollen, aber OIDC ist ein vollwertiges Authentifizierungs- und Autorisierungsprotokoll. OIDC-Authentifizierungsablauf bei Integration mit keycloak:

  • Der Browser besucht die Anwendung. Die Anwendung stellt fest, dass der Benutzer nicht eingeloggt ist und leitet den Browser zur Authentifizierung an keycloak weiter. Die Anwendung übergibt eine Rückruf-URL (eine Umleitungs-URL) als Abfrageparameter in dieser Browserumleitung, die keycloak verwenden wird, wenn die Authentifizierung abgeschlossen ist.
  • Keycloak authentifiziert den Benutzer und erstellt einen einmaligen, sehr kurzlebigen, temporären Code. Keycloak leitet die Anwendung über die zuvor angegebene Rückruf-URL zurück und fügt zusätzlich den temporären Code als Abfrageparameter in die Rückruf-URL ein.

Die Anwendung extrahiert den temporären Code und führt im Hintergrund einen REST-Aufruf an keycloak aus, um den Code gegen ein Identitäts-, Zugriffs- und Aktualisierungs-Token auszutauschen. Sobald dieser temporäre Code verwendet wurde, um die Token zu erhalten, kann er nie wieder verwendet werden. Dies verhindert potenzielle Replay-Angriffe.

Keycloak mit OpenID Connect

Anforderungen Die Tools, die wir benötigen, sind unten aufgeführt: Betriebssysteme: Windows, Docker Tools: Maven Single-Sign-On: Keycloak Entwicklungsumgebungen: Eclipse Programmiersprache: Java

https://www.youtube.com/watch?v=sTaHHtSkF0A

Integration mehrerer Anwendungen mit keycloak

  1. Fügen Sie die Datei docker-compose.yml hinzu und speichern Sie sie in einem Ordner.
docker-compose.yml

Fügen Sie die Abhängigkeiten von keycloak und spring-boot hinzu.

spring-boot-Abhängigkeiten

CreateSecurityConfig.java zu Ihrem Projekt hinzufügen.

SecurityConfig.java

Erstellen Sie die Datei applications.properties.

applications.properties Datei

Öffnen Sie die Eingabeaufforderung und führen Sie docker-compose up aus, um keycloak zu starten.

docker-compose hoch

Öffnen Sie den Browser und geben Sie die Keycloak-URL ein. Klicken Sie auf Verwaltungskonsole.

Tastaturkürzel url

Der Standard-Benutzername und das Standard-Passwort sind 'admin' , 'admin'.

Benutzernamen und Passwort

Klicken Sie auf Realm hinzufügen. Geben Sie dem Realm einen Namen.

Reich hinzufügen

Fügen Sie einen Kunden hinzu.

Fügen Sie einen Kunden hinzu.

Geben Sie den URL-Pfad Ihrer Anwendung in einer gültigen Redirect-URL an.

URL-Pfad Ihrer Anwendung

Rolle hinzufügen.

Rolle hinzufügen.

Benutzer hinzufügen.

Benutzer hinzufügen.

Gehen Sie zur Registerkarte Anmeldeinformationen und setzen Sie das Passwort zurück, indem Sie ein neues Passwort eingeben.

Registerkarte Anmeldeinformationen und Passwort zurücksetzen

Gehen Sie zur Registerkarte Rollenzuweisungen und fügen Sie dem Benutzer eine Rolle hinzu.

Registerkarte Rollenzuweisungen

eine weitere Anwendung erstellenErstellen Sie auf ähnliche Weise eine weitere Anwendung und fügen Sie alle erforderlichen Dateien hinzu. In keycloak verwenden wir denselben Realm, müssen aber einen neuen Client, eine neue Rolle und einen neuen Benutzer hinzufügen.

Führen Sie nun zwei Anwendungen aus

zwei Anwendungen

Öffnen Sie den Browser und geben Sie die URL der ersten Anwendung ein.

erste Anwendung

Wenn ich auf die Schaltfläche Produkte klicke, werde ich zu keycloak weitergeleitet. Geben Sie Ihren Benutzernamen und Ihr Passwort ein.

zu Keycloak umleiten

Jetzt werden Sie zur Anwendung weitergeleitet.

zur Anwendung weitergeleitet

Öffnen Sie nun eine weitere Registerkarte und geben Sie die URL einer anderen Anwendung ein. Sie werden zu der Anwendung weitergeleitet, ohne den Keycloak-Anmeldebildschirm aufzurufen.

zur Anwendung weitergeleitet

OTP-MarkeWir werden eine Authentifizierungsmethode hinzufügen, nämlich OTP. Gehen Sie zu authentication-flows-direct grant und markieren Sie bei OTP die Option required.

authentifizierung-flows-direkt gewähren

Markieren Sie im Browser-Fluss die Option OTP als erforderlich.

OTP markieren

In der OTP-Richtlinie können Sie die Hash-Algorithmen, den Zeitraum usw. sehen.

Hash-Algorithmen

Sie müssen die FreeOTP-Anwendung oder die Google Authenticator-Anwendung auf Ihrem Handy installieren.

Führen Sie nun keycloak erneut aus, öffnen Sie den Browser und geben Sie eine URL ein. Nach der Keycloak-Anmeldeseite werden Sie zu diesem Bildschirm weitergeleitet

FreeOTP-Anwendung

Scannen Sie nun den Barcode mit der Anwendung, die Sie auf Ihrem Handy installiert haben, und geben Sie das OTP ein.

Sie werden dann zu Ihrer Anwendung weitergeleitet.

 

 

Verfasst von

CoMakeIT

coMakeIT, a software product engineering company. We accelerate product innovation, modernize aging applications, and productize best practices into new software IP.

Contact

Let’s discuss how we can support your journey.