← Alle Vorlagen · Passwörter und Anmeldung
Keycloak mit einem Klick deployen
Open-Source-Identitäts- und Zugriffsmanagement: Single Sign-on für deine Apps mit OpenID Connect und SAML
Eine selbst gehostete Alternative zu Auth0 und Okta.
Was ist Keycloak?
Keycloak ist ein Server für Identitäts- und Zugriffsmanagement: Deine Apps überlassen ihm die Anmeldung, und wer sich einmal angemeldet hat, ist bei allen angemeldet. Keycloak spricht OpenID Connect, OAuth 2.0 und SAML 2.0, sodass sich die meisten Apps und Frameworks mit ihren Standardbibliotheken anbinden lassen. Es meldet Personen mit Passwort, Passkey oder einem Konto bei einem Dienst wie Google oder GitHub an, ergänzt Zwei-Faktor-Authentifizierung mit Einmalcodes, synchronisiert Benutzer aus LDAP und Active Directory und lässt alle ihr Profil, ihr Passwort und ihre Sitzungen in seiner Account-Konsole verwalten.
Keycloak ist ein Inkubationsprojekt der Cloud Native Computing Foundation, das Unternehmen wie Homelabs nutzen, um eine einzige Anmeldung vor viele Apps zu setzen. Diese Vorlage betreibt es im Produktionsmodus mit PostgreSQL hinter dem Proxy und legt den Administrator des Master-Realms aus den Feldern an, bevor Keycloak irgendwem antwortet. Der Haken: Keycloak ist mächtig und hat viele Einstellungen, ein erster Client verlangt also etwas Lektüre, und es läuft auf Java und braucht damit mehr RAM als die meisten Anmeldeserver.
Keycloak-Hosting auf Pethost
- Du meldest dich bei Pethost an, mit Passkey, GitHub oder Google. Noch keine Maschine? Du wählst einen Tarif, und der Link wartet, bis sie bereit ist.
- „Neues Projekt“ öffnet sich bei Keycloak. Du füllst aus, was die App braucht, und klickst auf „Projekt erstellen“: Benutzername, Admin-Passwort.
- In ein, zwei Minuten läuft Keycloak unter eigener Adresse mit HTTPS. Die Secrets werden zufällig erzeugt, und die Daten sind im nächtlichen Backup.
- Es ist ein Projekt wie jedes andere: Du oder dein Agent könnt es ändern, zurückrollen oder wiederherstellen.
Fragen zu Keycloak
Ist Keycloak kostenlos?
Ja. Keycloak ist Open Source unter der Apache-2.0-Lizenz, ohne kostenpflichtige Edition und ohne Limit für Benutzer oder Apps. Red Hat verkauft Support für einen eigenen Build davon, den Red Hat build of Keycloak.
Keycloak oder Auth0: Was soll ich nehmen?
Beide melden Benutzer über OpenID Connect und SAML an, mit Social Login und Zwei-Faktor-Authentifizierung. Auth0 ist ein Cloud-Dienst, dessen Preis sich nach den monatlich aktiven Benutzern richtet, Keycloak dagegen betreibst du selbst, kostenlos für beliebig viele Benutzer, um den Preis, dich darum zu kümmern.
Kann Keycloak Benutzer mit Google oder GitHub anmelden?
Ja. Unter „Identitätsanbieter“ in einem Realm kommen Google, GitHub, Facebook, Microsoft und andere oder jeder Anbieter für OpenID Connect oder SAML 2.0 als Buttons auf seine Anmeldeseite, ohne dass sich an deinen Apps etwas ändert.
Unterstützt Keycloak Zwei-Faktor-Authentifizierung und Passkeys?
Ja. Keycloak nimmt Einmalcodes aus Apps wie Google Authenticator oder FreeOTP an, dazu Wiederherstellungscodes und Passkeys, und ein Realm kann sie für alle verlangen oder die Benutzer sie in der Account-Konsole selbst einschalten lassen.
Warum nennt mich Keycloak einen temporären Admin?
Keycloak markiert den Administrator, den es beim ersten Start anlegt, als temporär und verlangt einen dauerhaften: Leg im Master-Realm einen Benutzer an, gib ihm unter „Rollenzuordnung“ die Rolle admin, melde dich als dieser Benutzer an und lösch den temporären Admin.
Wie viel RAM und Speicherplatz braucht Keycloak?
Keycloak läuft auf Java: im Ruhezustand etwa 550 MB RAM mit Postgres, mehr bei vielen Benutzern und Sitzungen; seine Datenbank bleibt klein. Auf Pethost reicht dafür der Tarif Starter, mit Platz für weitere Apps daneben.
Keycloak: die Docker-Compose-Datei
Die Vorlage ist diese compose.yaml und die Variablen, die beim Erstellen in die .env des Projekts geschrieben werden. Pethost führt die Datei so aus, wie sie geschrieben ist.
Container: keycloak (quay.io/keycloak/keycloak:26.8), postgres (postgres:18-alpine).
Volumes, im nächtlichen Backup: db.
services:
keycloak:
image: quay.io/keycloak/keycloak:26.8
restart: unless-stopped
command: start
environment:
KC_DB: postgres
KC_DB_URL: jdbc:postgresql://postgres:5432/keycloak
KC_DB_USERNAME: keycloak
KC_DB_PASSWORD: ${POSTGRES_PASSWORD}
KC_HOSTNAME: ${URL}
# The proxy serves HTTPS and passes requests on over HTTP, saying in X-Forwarded-* who sent
# them and how.
KC_HTTP_ENABLED: "true"
KC_PROXY_HEADERS: xforwarded
KC_HEALTH_ENABLED: "true"
# The administrator of the master realm is made from these at the first start, before
# Keycloak answers anyone; Keycloak calls it temporary until a permanent one replaces it.
KC_BOOTSTRAP_ADMIN_USERNAME: ${ADMIN_USERNAME}
KC_BOOTSTRAP_ADMIN_PASSWORD: ${ADMIN_PASSWORD}
depends_on:
postgres:
condition: service_healthy
# The port listens before Keycloak is ready: the deploy waits for its readiness, which its
# management port answers. The image has no curl: bash asks it.
healthcheck:
test: ["CMD-SHELL", "exec 3<>/dev/tcp/127.0.0.1/9000 && printf 'GET /health/ready HTTP/1.1\\r\\nHost: localhost\\r\\nConnection: close\\r\\n\\r\\n' >&3 && grep -q '\"UP\"' <&3"]
interval: 5s
timeout: 5s
retries: 5
start_period: 180s
postgres:
image: postgres:18-alpine
restart: unless-stopped
environment:
POSTGRES_DB: keycloak
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- db:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U keycloak -d keycloak"]
interval: 5s
timeout: 5s
retries: 10
start_period: 30s
volumes:
db:
Mehr in Passwörter und Anmeldung
- VaultwardenEin Passwortmanager-Server für die Bitwarden-Apps
- AuthorizerAnmeldung für deine eigenen Apps, mit OAuth 2 und OpenID Connect
- Password PusherPasswörter und Geheimnisse per Link teilen, der abläuft
- authentikEin Identity Provider für Single Sign-on bei deinen Apps: OpenID Connect, SAML, LDAP, MFA und Passkeys
- FusionAuthIdentitäts- und Zugriffsmanagement für Kunden: Anmeldung, Registrierung, Single Sign-on und MFA für deine Apps