Keycloak - Identity-Provider und SSO für alle Dienste
Keycloak - Identity-Provider und SSO für alle Dienste
Keycloak ist ein leistungsfähiger Open-Source-Identity-Provider für Single Sign-On, OAuth2 und OpenID Connect.
Was ist Keycloak?
Keycloak ist eine vollständige Identity- und Access-Management-Lösung, die Authentifizierung und Autorisierung als zentralen Dienst bereitstellt. Statt dass jede Anwendung eine eigene Benutzerverwaltung implementiert, delegieren alle Dienste die Anmeldung an Keycloak. Unterstützt werden OAuth2, OpenID Connect und SAML 2.0. Keycloak bietet zudem Social Login, Zwei-Faktor-Authentifizierung, Benutzerverwaltung, Gruppen und feingranulare Rollen – alles konfigurierbar über eine Web-Admin-Konsole.
Voraussetzungen
- Docker 20.10+ / Docker Compose
- Mindestens 512 MB RAM (empfohlen: 1–2 GB)
- Externe Datenbank (PostgreSQL) für Produktivbetrieb
Compose-Beispiel
services:
keycloak:
image: quay.io/keycloak/keycloak:24.0
container_name: keycloak
restart: unless-stopped
ports:
- "8080:8080"
depends_on:
- keycloak-db
command: start-dev
environment:
- KC_DB=postgres
- KC_DB_URL=jdbc:postgresql://keycloak-db/keycloak
- KC_DB_USERNAME=keycloak
- KC_DB_PASSWORD=secret
- KEYCLOAK_ADMIN=admin
- KEYCLOAK_ADMIN_PASSWORD=changeme
keycloak-db:
image: postgres:15-alpine
container_name: keycloak-db
restart: unless-stopped
volumes:
- ./db:/var/lib/postgresql/data
environment:
- POSTGRES_DB=keycloak
- POSTGRES_USER=keycloak
- POSTGRES_PASSWORD=secret
Hinweise
start-devdeaktiviert TLS und ist nur für lokale Entwicklung geeignet – in Produktionstartmit gültigem Zertifikat verwenden.- Realms ermöglichen die Trennung verschiedener Anwendungen oder Mandanten innerhalb einer Keycloak-Instanz.
- Client-Scopes und Mapper erlauben es, benutzerdefinierte Claims in JWT-Tokens einzubetten.
- Keycloak importiert bestehende LDAP/Active-Directory-Verzeichnisse für nahtlose Migration.