Authentifizierung einfach und sicher gemacht mit Keycloak
Online-Workshop am 18. Mai, ca. 9:00–16:00 Uhr
Keycloak hat sich mittlerweile als eines der meist genutzten Authentifzierungs- sowie Identity- und Access-Management-Systeme (IAM) in Unternehmen etabliert. Ganz gleich ob für klassische Enterprise-Anwendungen, moderne Single-Page-Apps oder Microservice-Architekturen, unterstützt Keycloak doch beide gängigen Protokolle SAML und OIDC (OpenID-Connect).
In diesem Workshop schauen wir uns an, wie Keycloak redundant in einem Cluster betrieben werden kann, und binden externe, ggf. bereits im Unternehmen vorhandene Identity Provider (z.B. Azure Active Directory oder Social Provider) ein. Weiterhin integrieren wir eine eigene 2-Faktor-Authentifizierung und sichern eine Spring-Boot-basierte Anwendung, einen Quarkus-Service und eine Single-Page-Applikation auf Basis von React ab, um dort mit authentifizierten Zugriffen arbeiten zu können.
Dieser Workshop behandelt (auch) die neuen Besonderheiten der Quarkus-basierten Keycloak(X)-Architektur.
Vorkenntnisse
Der Workshop richtet sich an alle Personen aus Entwicklung und Betrieb, die eine Single-Sign-On- oder Identity-Managementlösung in ihrem Unternehmen oder Projekt aufbauen und integrieren möchten. Idealerweise haben die Teilnehmer schon leichte bis mittlere Vorkenntnisse im Thema Authentifizierung und möchten diese speziell für Keycloak vertiefen.
Als "Betriebsumgebung" verwenden wir eine lokale Docker-Compose-Installation, um den operativen Overhead so gering wie möglich zu halten. Die Beispiele für zu implementierenden Interfaces (z.B. 2FA) und die abzusichernden Anwendungen sind in Java (Spring Boot, Quarkus/Microprofile) und JavaScript (React) implementiert
Lernziele
- Wie wird Keycloak im Container und Cluster betrieben und konfiguriert?
- Wie werden externe Identity Provider eingebunden?
- Wie kann der Authentifizierungs-Flow an eigene Bedürfnisse angepasst werden?
- Wie wird eine sichere Authentifizierung mit Keycloak in Java- und JavaScript-basierte Anwendungen integriert?