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-dev deaktiviert TLS und ist nur für lokale Entwicklung geeignet – in Produktion start mit 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.