21.10.2024

Wie Keycloak die Authentifizierung und Autorisierung vereinfacht: Ein Blick auf die wichtigsten Funktionen.

Keycloak für Entwickler: So gelingt die Integration

In der heutigen digitalen Welt ist eine sichere Identitäts- und Zugriffsverwaltung (IAM) essenziell. Doch die Implementierung kann kompliziert sein – Keycloak macht es einfach! In diesem Artikel lernst du, wie du Keycloak mit SSO, OAuth2 & OpenID Connect in dein Projekt integrierst – egal ob Django, Kubernetes oder Node.js.

Inhaltsverzeichnis

Was ist Keycloak?

Keycloak ist eine Open-Source IAM-Lösung, die Single Sign-On (SSO), Benutzerverwaltung und Multi-Faktor-Authentifizierung (MFA) ermöglicht.

Vorteile für Entwickler:

  • Einfache Integration mit OAuth2, OpenID Connect & SAML
  • Höchste Sicherheit mit MFA & rollenbasierter Zugriffskontrolle (RBAC)
  • Skalierbar – für kleine Teams & große Unternehmen
Jetzt Keycloak mit Blueshoe in dein Projekt einbinden

Keycloak Integration: So bindest du Keycloak ein

Schritt 1: Keycloak-Server einrichten

  • Lade Keycloak als Docker-Container oder installiere es manuell.
  • Erstelle eine Realm für dein Projekt.
  • Lege Benutzer und Rollen im Keycloak Admin-Panel an.

Schritt 2: Keycloak mit deiner Anwendung verbinden

  • Django: Nutze pycloak für eine einfache OAuth2-Anbindung.
  • Spring Boot: Verwende den Keycloak-Adapter für Spring Security.
  • Node.js: Integriere Keycloak mit passport-keycloak für Authentifizierung.

Schritt 3: SSO & Token-Authentifizierung nutzen

  • Implementiere Single Sign-On (SSO) mit OpenID Connect.
  • Nutze Access Tokens für API-Sicherheit.
  • Setze Multi-Faktor-Authentifizierung (MFA) für höhere Sicherheit ein.

Best Practices für eine sichere Keycloak-Implementierung

  • SSL/TLS aktivieren: Alle Verbindungen zu Keycloak müssen verschlüsselt sein.
  • Rollenbasierten Zugriff nutzen: RBAC (Role-Based Access Control) verhindert unbefugten Zugriff.
  • Token-Lebensdauer begrenzen: Verhindert Missbrauch abgelaufener Authentifizierungsdaten.
  • Regelmäßige Updates: Halte Keycloak auf dem neuesten Stand für maximale Sicherheit.

Tipp: Mit unserem RAPID-Framework setzen wir Keycloak 35% schneller um

Praxisbeispiel: Keycloak in Aktion

Integration in bestehende Systeme

Die Integration von Keycloak in bestehende Systeme ist unkompliziert, da es flexible API-Schnittstellen bietet und sich gut in Frameworks wie Spring Boot, Django, Node.js und viele andere Technologien integrieren lässt. Egal, ob du eine Cloud-basierte Infrastruktur oder On-Premise-Systeme betreibst, Keycloak passt sich an die Anforderungen deines Unternehmens an. Dank seiner Open-Source-Natur ist es zudem vollständig anpassbar. Zum Beispiel haben wir bei Blueshoe ein Cookie-Cutter Template für die einfache Anpassung des Keycloak Themes erstellt.

Praxisbeispiel: FondsFinanz Makler Bildungsplattform

Ein konkretes Beispiel für eine erfolgreiche Implementierung von Keycloak ist die Backoffice-Welt der FondsFinanz Makler Bildungsplattform, eine Django-basierte Kubernetes-Anwendung mit verschiedenen Services. Hier verwaltet eine zentrale Keycloak-Instanz die Authentifizierung für alle Dienste und sorgt so für eine einheitliche und sichere Benutzerverwaltung. Dieses Setup ermöglicht den Entwicklern, sich auf die Geschäftslogik zu konzentrieren, während Keycloak sich um die Sicherheit kümmert.

Hierbei spielt auch pycloak eine große Rolle. Durch pycloak konnten wir Keycloak mittels des oauth2-proxy Projekts nahtlos in die Django-Anwendung integrieren.

pycloak-flow

Die obige Abbildung zeigt den Flow, wie pycloak die Authentifizierung, mittels des oauth2-proxys, in der Django-Anwendung umsetzt. Die Client-Andwendung navigiert zuerst zur gewünschten Resource und wird vom oauth2-proxy abgefangen. Dieser leitet (falls die Client-Anwendung nicht bereits authentifiziert ist) den Benutzer zur Keycloak-Login-Seite weiter. Hier muss sich der Benutzer authentifizieren und kann anschließend mit dem ausgegeben Access-Token die gewünschte Anwendung aufrufen.

Praxisbeispiel: LUMA Delikatessen

Ein weiteres Beispiel ist die LUMA Delikatessen-Website, die auf Nuxt.js und Django basiert. Hier wird Keycloak ebenfalls als zentrale Authentifizierungslösung genutzt, um die Sicherheit und Benutzerfreundlichkeit zu gewährleisten. So haben wir zum Beispiel mittels unserem keycloak-theme-template die Registrierungsseite und die standardmäßig verwendeten Keycloak Felder angepasst. Unter anderem wurde die Frage nach dem Geburtsdatum hinzugefügt, um etwaige Rabattaktionen zu ermöglichen. Das ganze sieht dann so aus:

LUMA Delikatessen

Praxisbeispiel: LMU Munich Media Monitoring

Keycloak bietet auch eine API an, die wir für das Munich Media Monitoring der LMU verwenden, um Nutzer-Accounts nach einer gewissen Zeit zum Neu-Verifizieren ihrer Email-Adresse aufzurufen. Mit der User-Profile Funktion von Keycloak haben wir zusätzliche Felder zu den Nutzer-Accounts hinzugefügt, um zu markieren wann ein Nutzer die Email-Adresse neu verifizieren muss. Ein Kubernetes Cronjob kommuniziert mit der Keycloak API, um genau diese Nutzer zu ermitteln und mit einem POST über die Keycloak API die Email-Verifizierung zurückzusetzen. Verwendet einer dieser Nutzer danach das Munich Media Monitoring, kommt automatisch die Aufforderung von Keycloak zur Verifizierung der Email-Adresse.

Warum Blueshoe als Partner für deine Keycloak-Integration?

Wir sind Experten für Open-Source IAM-Lösungen und helfen Unternehmen seit über 10 Jahren bei der sicheren Keycloak-Implementierung. Zudem bieten wir mit pycloak eine maßgeschneiderte Lösung für Python-basierte Anwendungen. Pycloak ist ein Package, das es Entwicklern ermöglicht, Keycloak nahtlos in Python-Projekte zu integrieren. Durch diese Entwicklung ist es Blueshoe gelungen, Keycloak noch zugänglicher und anpassbarer für Entwickler zu machen.

Unsere Vorteile:

Blueshoe expert Michael SchilonkaMichael Schilonka LinkedIn

Sichere dein IAM-Projekt mit Keycloak

Jetzt Kontakt aufnehmen

Häufige Fragen

1. Wie kann ich Keycloak in meine bestehende Anwendung integrieren?

Keycloak bietet verschiedene Möglichkeiten zur Integration:

  • Web-Anwendungen: Nutze die Keycloak JavaScript-Adapter oder OAuth2-Flow für sichere Anmeldungen.
  • Backend-APIs: Implementiere OpenID Connect oder OAuth2 zur Token-Validierung.
  • Microservices/Kubernetes: Verwende oauth2-proxy oder Keycloak als Identity-Provider für dein Cluster.
  • Tipp: Die Keycloak REST-API ermöglicht eine feingranulare Benutzerverwaltung.

2. Welche Authentifizierungs-Protokolle unterstützt Keycloak?

Keycloak unterstützt alle gängigen Protokolle für sichere Authentifizierung:

  • OAuth2 (für API-Authentifizierung)
  • OpenID Connect (für Webanwendungen & SSO)
  • SAML (für ältere Unternehmenssysteme)
  • LDAP-Integration (für bestehende Nutzerverzeichnisse)
  • Tipp: Wähle das passende Protokoll je nach Anwendung – OpenID Connect ist meist die beste Wahl für Web & Mobile.

3. Wie setze ich rollenbasierte Zugriffskontrolle (RBAC) mit Keycloak um?

Keycloak bietet ein flexibles Rollen- und Berechtigungssystem:

  • Definiere Rollen & Berechtigungen in der Keycloak-Konsole.
  • Weise Rollen Nutzern oder Gruppen zu (z. B. Admin, User, Editor).
  • Validiere Rollen im Code: Dein Backend kann Keycloak-Token auslesen & Berechtigungen prüfen.
  • Tipp: Nutze Keycloak’s "Authorization Services", um komplexe Zugriffskontrollen zu verwalten.

4. Wie kann ich Keycloak lokal für Entwicklung & Tests starten?

Keycloak kann lokal per Docker oder Standalone-Modus gestartet werden:

docker run -p 8080:8080 --name keycloak -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak start-dev
  • Vorteile: Schnelles Setup für lokale Entwicklung & Tests
  • Tipp: Falls du Keycloak mit PostgreSQL oder Kubernetes nutzt, konfiguriere die Datenbank entsprechend mit Umgebungsvariablen.

5. Wie setze ich Single Sign-On (SSO) mit Keycloak um?

Keycloak ermöglicht SSO mit OpenID Connect oder SAML:

  • Richte Keycloak als Identity-Provider ein.
  • Verbinde deine Anwendungen mit Keycloak über OpenID Connect.
  • Nutze einen zentralen Login für mehrere Apps – Benutzer müssen sich nur einmal anmelden.
  • Tipp: Falls du bestehende Nutzerkonten migrieren musst, kannst du LDAP oder eine Custom-Authentifizierung nutzen.

Hast du noch Fragen oder eine Meinung? Mit deinem GitHub Account kannst Du es uns wissen lassen...


Was unsere Kunden über uns sagen

Ofa Bamberg GmbHRainer Kliewe
Ludwig-Maximilians-Universität MünchenProf. Dr. Mario Haim
Deutsches MuseumGeorg Hohmann
Fonds Finanz Maklerservice GmbHNorbert Porazik
Technische Universität HamburgSören Schütt-Sayed
  • Ofa Bamberg GmbH
    Ofa Bamberg GmbH
    B2B Online-Shop | B2C Website | Hosting | Betreuung | Security
    Rainer Kliewe
    © Ofa Bamberg GmbH
    Blueshoe betreut uns und unsere Webapplikationen seit vielen Jahren. Vom Online-Shop bis hin zu großen Teilen unseres Web-Umfelds hat sich das Unternehmen stets kompetent, verlässlich und vorausschauend gezeigt. Wir sind sehr zufrieden mit Blueshoe als Partner.
    Rainer KlieweGeschäftsführer
  • Ludwig-Maximilians-Universität München
    Ludwig-Maximilians-Universität München
    Plattformentwicklung | Hosting | Betreuung | APIs | Website
    Prof. Dr. Mario Haim
    Blueshoe hat unsere Forschungsdatenplattform Munich Media Monitoring (M3) entwickelt und uns hervorragend dabei beraten. Das Team hat unsere Anforderungen genau verstanden und sich aktiv in die Ausgestaltung der Software und der Betriebsumgebung eingebracht. Wir sind froh, dass auch Wartung und weiterführender Support in Blueshoes Händen liegen.
    Prof. Dr. Mario HaimLehrstuhlinhaber, Institut für Kommunikationswissenschaft und Medienforschung
  • Deutsches Museum
    Deutsches Museum
    Digitalisierung | Beratung | Datenbank-Optimierung | GraphQL | CMS
    Georg Hohmann
    Foto: Anne Göttlicher
    Im Rahmen eines komplexen Digitalisierungsprojekts für unsere Exponate-Datenbank war Blueshoe ein äußerst verlässlicher Partner. Sie haben uns nicht nur während des gesamten Projekts hervorragend beraten, sondern unsere Anforderungen perfekt umgesetzt. Dank ihrer Arbeit ist unsere Datenbank nun ein bedeutender Mehrwert für die weltweite wissenschaftliche Forschung.
    Georg HohmannLeiter Deutsches Museum Digital
  • Fonds Finanz Maklerservice GmbH
    Fonds Finanz Maklerservice GmbH
    Plattformentwicklung | Prozess-Systeme | Hosting | Betreuung | Zertifikate | Website
    Norbert Porazik
    © Fonds Finanz Maklerservice GmbH
    Blueshoe ist unsere verlängerte Werkbank für Entwicklung, Wartung und Support unserer Weiterbildungs- und Zertifizierungsplattformen. Das Team hat sich gründlich in unsere Abläufe eingearbeitet, und wir freuen uns, Blueshoe als zuverlässigen Partner an unserer Seite zu haben.
    Norbert PorazikGründer und Geschäftsführer
  • Technische Universität Hamburg
    Technische Universität Hamburg
    Plattformentwicklung | Beratung | Prozess-Systeme | Hosting | Website
    Sören Schütt-Sayed
    Seit 2019 unterstützt uns die Blueshoe GmbH tatkräftig bei der Entwicklung und Weiterentwicklung des "Digital Learning Lab" und der "Digital Learning Tools". Dank ihrer Beratung konnten wir von Anfang an auf eine zukunftssichere, moderne technische Struktur setzen. Die Zusammenarbeit ist reibungslos, und wir fühlen uns rundum gut betreut. Und davon profitieren dann auch die Lehrkräfte in Hamburg.
    Sören Schütt-SayedOberingenieur