Keycloak IAM & SSO Masterclass ⭐️⭐️⭐️⭐️⭐️
5-Sterne Masterclass zu allen Keycloak-Themen wie OAuth-/OIDC- und Keycloak-Grundlagen, Server-Deployment & -Konfigruation, Clustering, Caching, High-Availability, Performance, Metriken, Admin-CLI, Realm-Konfiguration, Mandantenfähigkeit, Organisationen, Benutzerverwaltung, User-Federation, Identity Providers, Themeing, Authenticationflows, Customizing, etc.
In diesem Training starten wir mit dem Deployment und der Konfiguration eines KEYCLOAK-Servers from scratch, beispielhaft in einer containerisierten (Docker) Umgebung. Für KEYCLOAK selbst ist es egal, ob der Server in einer containerisierten Umgebung (z.B. Kubernetes, Docker Deamon, Podman, etc.) oder mittels einem konservativen Deployment (z.B. entpackt im Dateisystem) betrieben wird, die Konfigurations-Optionen, die uns hierfür zur Verfügung stehen, sind identisch.
Ein Authentifizierungssystem ist per Design ein sog. Single Point of Failure, also muss dieses System in einer produktiven Umgebung zwingend als hochverfügbarer Cluster ausgelegt werden. Wir diskutieren die Möglichkeiten, die uns KEYCLOAK hierfür anbietet und konfigurieren unsere Umgebung mit einer der Optionen, inkl. eines entsprechenden Load-Balancers und der sinnvollen Konfiguration eines solchen.
Damit wir den Server passend (vor-)konfigurieren können, sehen wir uns die Möglichkeiten des Exports und Imports von Realms an und wie wir Realm-Konfigurationen über die KEYCLOAK Admin-CLI durchführen können.
Um jederzeit über die Performance unserer KEYCLOAK-Umgebung informiert zu sein, machen wir uns die System- wie auch Event-Metriken zu nutze und führen einfache Last- und Performance-Tests durch.
Haben wir den Server aufgesetzt und deployt, schauen wir uns die Grundlagen der OAuth 2, OIDC und JWT Spezifikationen und lernen diese näher kennen, so dass wir ein gemeinsames Verständnis der hierbei verwendeten Begriffe bekommen. Anhand des zuvor konfigurierten KEYCLOAK-Servers machen wir erste Schritte mit Tokens, Claims und Authentifizierungen und schauen uns die gelernte Theorie in der Praxis an. Gleichzeitig diskutieren wir auch die Best-Practices und Deprecations, die sich im Laufe der Zeit in diesen Spezifikationen ergeben haben.
Danach behandeln wir ausführlich die Konfiguration von Realms und Clients und auf welche Besonderheiten hier zu achten ist. Über das Themeing können wir das KEYCLOAK-Login-UI und die von KEYCLOAK versendeten E-mails an die Unternehmens- oder Projekt-Design-Vorgaben anpassen.
Wir lernen das KEYCLOAK-eigene Management für Organisations, User, Groups und Roles kennen. Organisationen sind eine Mandantenfähigkeit in KEYCLOAK. Wir werden Benutzer einer oder mehreren Organisationen zuordnen und gezielt für Organisationen einladen. Zudem können wir Benutzer über das sog. User Profile mit verwalteten Attributen konfigurieren. Diese User Profile Attribute weisen jede Menge Abhängigkeiten für Bearbeitung, verpflichtende Angabe und Eingabevalidierung auf. Außer der KEYCLOK-internen Benutzerverwaltung lernen wir, dass wir auch andere, ggf. bereits bestehende Benutzerdatenquellen (z.B. LDAP, aber auch proprietäre Quellen) mit KEYCLOAK verbinden können, so dass wir diese Daten weiterverwenden können.
Für das Identity-Brokering kann KEYCLOAK mit anderen, externen Identity Providern (z.B. Social Provider, Entra ID, ADFS, Bund.ID, etc.) zusammenarbeiten. Wir konfigurieren an einem Beispiel ein solches Szenario und schauen uns auch an, wie die Identity Provider perfekt mit den Organisationen zusammenspielen, so dass Benutzern die beste User Experience bei der Authentifizierung geboten wird.
Die Anmelde-Prozesse (Authentication-Flows) stellen ein mächtiges Werkzeug in KEYCLOAK dar. Wir lernen, wie wir sichere und komplexe Authentifizierungsflows entwerfen und konfigurieren. Mittels Required Actions können wir Benutzer auffordern, bestimmte Aktionen durchzuführen oder Credentials zu konfigurieren.
Während des gesamten Trainings besprechen wir immer wieder wichtige Einstellungen und Konfigurationen, die für einen zuverlässigen und sicheren Betrieb von KEYCLOAK Umgebungen notwendig und sinnvoll sind!
Agenda
Tag 1 - Deployment, Operations, Observability, etc.
Server-Setup & -Konfiguration
- KEYCLOAK Server Konfiguration und Deployment (inkl. Datenbank)
- Versionen & Upgrades
- Backup & Recovery
Clustering und verteiltes Caching
- Konfiguration des KEYCLOAK-Servers für den Cluster-Betrieb
- Diskussion der verschiedenen Cluster Discovery-Protokolle
- Anpassung / Tuning der (verteilten) Cache-Konfiguration
Import/Export, Realm-Konfiguration
- Realm Export & Import
- Import von vorkonfigurierten Realms
- Admin-CLI
Performance & Metriken
- Last-/Performancetests
- Systemmetriken
- Event-Metriken
Q&A
- Diskussion verschiedener Fragen und Themen
Tag 2 - Grundlagen, Realms & Clients, etc.
Grundlagen & Spezifikationen
- Grundlagen Single-Sign-On (SSO)
- Basis-KnowHow über die Spezifikationen OAuth2, OpenID Connect (OIDC) und JSON-Web-Token (JWT)
Realms & Clients
- Prinzip und Konfiguration der KEYCLOAK Realms
- Erste Schritte mit Tokens, Claims und Client Scopes
- Client-Konfigurationen (confidential/public) in KEYCLOAK am Beispiel einer verteilten Anwendung
- Themeing der KEYCLOAK-Formulare/-User-Interfaces
Tag 3 - User Management, Mandanten, Authentifizierungsflows & Required Actions
Benutzerverwaltung und -Quellen
- Organisationen, Benutzer, Gruppen und Rollen in KEYCLOAK
- Anlegen von Organisationen für eine Mandantenfähigkeit
- Zuordnen und Einladen von Benutzern zu Organisationen
- User Profile mit verwalteten Attributen, Berechtigungen, Pflichtfeldern, Validatoren
- Klärung der Unterschiede zwischen User Federation / User Storage und Externe Identity Provider
- Konfiguration eines LDAPs als User Federation
- Verwenden von eigenen Benutzer-Datenquellen
- Konfiguration eines externen Identity Providers (Identity Brokering)
- Zusammenspiel von Organisationen und externen Identity Providern
Authentifizierungsflows und Required Actions
- Design und Konfiguration von verschiedenen Authentifizierungsflows
- Erweiterung der Authentifizierungsoptionen mittels Custom Extensions
- Verwendung von Required Actions
- Konfiguration von weiteren Authentifizierungs Policies
Dein Nutzen
- Lerne eine KEYCLOAK-Umgebung sicher, stabil und ausfallsicher aufzusetzen und zu betreiben.
- Lerne ein KEYCLOAK-Server und -Cluster richtig zu konfigurieren.
- Lerne die Performance von KEYCLOAK zu testen und mittels Metriken zu messen.
- Lerne den sicheren Umgang mit Authentifizierung und SSO und den damit verbundenen Spezifikationen.
- Lerne die Optionen kennen, die ein KEYCLOAK-basiertes SSO und Identity Management Dir bietet.
- Lerne, wie Du Organisationen für eine Mandantenfähigkeit einsetzen kannst.
- Lerne, wie Du Benutzer komfortabel und umfangreich über Profile konfigurieren kannst.
- Lerne, wie Du bestehende Benutzerquellen (weiter-)verwenden kannst.
- Lerne, wie sich Benutzer und Clients authentifizieren können.
- Werde sicher im Betrieb Deiner KEYCLOAK-Umgebung und im Umgang mit Authentifizierung und OIDC.
Zielgruppe
Der Workshop richtet sich an alle Personen aus Entwicklung, Betrieb und DevOps, die eine Single-Sign-On (SSO) oder Identity-Managementlösung (IAM) in ihrem Unternehmen oder Projekt mit KEYCLOAK aufbauen, betreiben, integrieren und etablieren möchten.
Lernziele
- Deployment und hochverfügbarer, ausfallsicherer Cluster-Betrieb eines KEYCLOAK-Systems
- Import/Export von Realm-Daten
- Nutzung der Admin-CLI
- Testen und Überwachung von System- und Event-Metriken
- OAuth 2, OIDC & JWT Grundlagen & Best-Practices hinsichtlich Grant-Types und Token-Propagation
- KEYCLOAK-Konfigurationen Realm, Organisations, Clients, Users, Groups, Roles
- Themeing der KEYCLOAK UIs
- Konfiguration der Organisationen und User Profilen
- Verwendung von User-Federation und Identity Providern
- Design von Authentifizierungs-Flows und Verwendung von Required Actions
- Customizing / Anpassung einer KEYCLOAK-Umgebung an eigene Anforderungen
Technische Anforderungen
Als "Betriebsumgebung" verwenden wir eine lokale Docker-Compose Umgebung, um den operativen Overhead so gering wie möglich zu halten. Die erforderlichen YAML-Definitionen und Konfigurationsdateien, sowie KEYCLOAK-Erweiterungen für die Trainingsumgebung werden Dir vorab als GitHub-Repository oder Download zur Verfügung gestellt.
- Notebook/Laptop
- Texteditor (VS Code, Notepad++, etc.)
- Docker und Docker Compose V2 installiert und lauffähig (ggf. lokale Admin-Rechte auf dem Rechner erteilen)
(ggf. können Lizenzkosten für die Nutzung von Docker Desktop anfallen, bitte informieren! Docker Desktop ist je nach Plattform nicht unbedingt notwendig für den Betrieb von Docker. Support für Docker kann nicht im Rahmen des Trainings und der Vorbereitung dessen übernommen werden! U.U. funktioniert auch Podman, hierfür kann aber keinerlei Support bereitgestellt werden!) - Internetzugriff (ggf. Proxy-/Firewall-/VPN-Konfigurationen etc. überprüfen)
- Browser
Dauer
Öffentliche Termine
- 25.03.2025: 🇩🇪 Socreatory, Stuttgart
- 07.04.2025: 🇬🇧 Socreatory, Online
- 10.06.2025: 🇩🇪 Socreatory, Online
- gerne auch auf Deine Anfrage!