Zitadel vs. Keycloak: Identity Provider für Self-Hoster im Vergleich 2026
Single Sign-On (SSO) und zentrales Identity Management sind keine Enterprise-Themen mehr. Wer mehrere Self-Hosted-Dienste betreibt – von Gitea über Grafana bis Nextcloud – braucht einen zuverlässigen Identity Provider (IdP). Die beiden populärsten Open-Source-Optionen 2026: Keycloak und Zitadel. Dieser Vergleich hilft bei der Wahl.
Was macht ein Identity Provider?
Ein Identity Provider verwaltet Benutzeridentitäten zentral und ermöglicht:
- SSO (Single Sign-On): Einmal anmelden, überall authentifiziert
- OAuth 2.0 / OIDC: Standard-Protokolle für moderne App-Integration
- SAML 2.0: Enterprise-Integration (Active Directory, Legacy-Apps)
- MFA/2FA: Zentral erzwungene Mehr-Faktor-Authentifizierung
- RBAC: Rollen und Berechtigungen über alle Dienste hinweg
- Social Login: Anmeldung über GitHub, Google, Microsoft
Keycloak: Der bewährte Enterprise-Standard
Keycloak wurde 2013 von Red Hat entwickelt und ist heute das am weitesten verbreitete Open-Source-IAM-System. Es ist in Java geschrieben und nutzt JBoss/Quarkus als Application Server.
Architektur und Deployment
# Keycloak mit Docker Compose
services:
keycloak:
image: quay.io/keycloak/keycloak:24.0
command: start
environment:
KC_DB: postgres
KC_DB_URL: jdbc:postgresql://postgres/keycloak
KC_DB_USERNAME: keycloak
KC_DB_PASSWORD: secret
KC_HOSTNAME: auth.example.com
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin
ports:
- "8080:8080"
Keycloak-Features
Protokoll-Support:
- OAuth 2.0 (Device Flow, PKCE, Client Credentials)
- OpenID Connect 1.0 (vollständig)
- SAML 2.0 (SP und IdP)
- LDAP/Active Directory Federation
Administration:
- Web-Admin-Console (vollständig)
- REST Admin API
- Terraform Provider (community-maintained)
- Realm-basierte Mandantentrennung (Multitenancy)
Authentifizierungsflows:
- Konfigurierbarer Authentication-Flow-Builder
- Conditional MFA (je nach IP, Gerät, Risikolevel)
- Social-Broker für 20+ Provider
- User-Federation (LDAP, Kerberos)
Erweiterbarkeit:
- Service Provider Interfaces (SPI)
- Custom Authentication Provider in Java
- Themes für Login-Seiten (FreeMarker)
Keycloak-Ressourcenbedarf
In produktiven Setups:
- RAM: 512 MB (Minimum), 2 GB (Empfohlen für mehrere Realms)
- CPU: 2 vCPUs
- Startup-Zeit: 30-60 Sekunden (Quarkus seit v17: deutlich schneller als JBoss)
- Datenbank: PostgreSQL (empfohlen), MySQL, MariaDB, Oracle
Zitadel: Cloud-native Identity Management
Zitadel ist 2020 in der Schweiz entstanden und von Grund auf als Cloud-native IdP konzipiert. Es ist in Go geschrieben, nutzt CockroachDB oder PostgreSQL und folgt einem Event-Sourcing-Ansatz.
Architektur und Deployment
# Zitadel mit Docker Compose (mit eingebetteter CockroachDB)
services:
zitadel:
image: ghcr.io/zitadel/zitadel:latest
command: start-from-init --masterkey "MasterkeyNeedsToHave32Characters"
environment:
ZITADEL_DATABASE_COCKROACH_HOST: crdb
ZITADEL_EXTERNALSECURE: "false"
ZITADEL_EXTERNALPORT: 8080
ports:
- "8080:8080"
depends_on:
- crdb
crdb:
image: cockroachdb/cockroach:latest
command: start-single-node --insecure
Zitadel-Features
Protokoll-Support:
- OAuth 2.0 (alle Flows)
- OpenID Connect 1.0
- SAML 2.0
- passkey/WebAuthn nativ
- Passkeys ohne Passwort
Besonderheiten:
- Organizations + Instances: Echtes Multi-Tenancy-Modell auf mehreren Ebenen
- Actions (Serverless-Funktionen): JavaScript-Code, der bei Auth-Events ausgeführt wird
- Self-Service-Portale: Endnutzer können Passwort, MFA, Sessions selbst verwalten
- Machine Users: Service-Accounts für CI/CD-Pipelines nativ unterstützt
- Audit Log: Event-Sourcing macht jeden State-Change nachvollziehbar
- Console (Admin-UI): Modern, React-basiert, deutlich intuitiver als Keycloak
Zitadel Actions (Erweiterung):
// Bei jedem Login ausgeführt
function setCustomClaim(ctx, api) {
if (ctx.v1.user.grants != undefined) {
let grants = {};
ctx.v1.user.grants.grants.forEach(claim => {
grants[claim.projectId] = claim.roles;
});
api.v1.claims.setClaim('urn:zitadel:iam:org:project:grants', grants);
}
}
Zitadel-Ressourcenbedarf
- RAM: 256 MB (Minimum), 1 GB (Empfohlen)
- CPU: 1-2 vCPUs
- Startup-Zeit: 5-10 Sekunden
- Datenbank: PostgreSQL ab v2.40 (bevorzugt), CockroachDB
Direkter Vergleich: Zitadel vs. Keycloak
| Kriterium | Zitadel | Keycloak |
|---|---|---|
| Sprache | Go | Java (Quarkus) |
| Startup-Zeit | ~5 Sek. | 30-60 Sek. |
| RAM-Bedarf | 256 MB Min. | 512 MB Min. |
| Datenbank | PostgreSQL / CockroachDB | PostgreSQL, MySQL, etc. |
| Multi-Tenancy | Nativ (Organizations + Instances) | Realms (flach) |
| WebAuthn/Passkeys | Nativ, erstklassig | Ja, seit v23 |
| Admin-UI | Modern, intuitiv | Komplex, gewöhnungsbedürftig |
| SAML 2.0 | Ja | Ja (umfangreicher) |
| LDAP-Integration | Begrenzt | Exzellent |
| Custom Auth-Flows | Actions (JavaScript) | SPI (Java) |
| Terraform-Provider | Offiziell supported | Community |
| Erweiterbarkeit | Mittel | Sehr hoch (SPI) |
| Community | Wachsend | Sehr groß/reif |
| Dokumentation | Gut | Sehr umfangreich |
| Lizenz | Apache 2.0 | Apache 2.0 |
| Kommerzieller Support | Zitadel Cloud / Enterprise | Red Hat (RHSSO) |
Protokoll-Unterstützung im Detail
| Protokoll/Feature | Zitadel | Keycloak |
|---|---|---|
| OAuth 2.0 Authorization Code + PKCE | ✅ | ✅ |
| OAuth 2.0 Device Flow | ✅ | ✅ |
| OAuth 2.0 Client Credentials | ✅ | ✅ |
| OIDC Discovery | ✅ | ✅ |
| SAML 2.0 | ✅ | ✅ (umfassender) |
| Kerberos / SPNEGO | ❌ | ✅ |
| LDAP User Federation | ❌ | ✅ |
| WebAuthn / Passkeys | ✅ (erstklassig) | ✅ (seit v23) |
| Social Login | ✅ (wichtigste Provider) | ✅ (20+ Provider) |
Self-Hosting-Szenarien
Szenario 1: Home Lab mit 10-20 Diensten
Empfehlung: Zitadel
- Schnellere Startup-Zeit = kein langer Neustart nach Server-Reboot
- Weniger RAM = mehr Ressourcen für andere Dienste
- Einfachere Konfiguration via UI
- Keine LDAP-Integration nötig
# Zitadel in 5 Minuten mit Helm
helm repo add zitadel https://charts.zitadel.com
helm install zitadel zitadel/zitadel \
--set env.ZITADEL_EXTERNALDOMAIN="auth.home.example.com" \
--set env.ZITADEL_EXTERNALPORT="443" \
--set env.ZITADEL_EXTERNALSECURE="true"
Szenario 2: Unternehmens-IT mit Active Directory
Empfehlung: Keycloak
- LDAP/AD-Federation ist Keycloak-Kernkompetenz
- SAML 2.0 für Legacy-Apps vollständig unterstützt
- Red Hat Support verfügbar (RHSSO = Enterprise-Keycloak)
- Große Community für spezifische Probleme
Szenario 3: Multi-Tenant SaaS-Produkt
Empfehlung: Zitadel
- Organizations + Instances ermöglichen echte Mandantentrennung
- Machine-Users für API-Keys nativ
- Actions für Customization ohne Java-Kenntnisse
- Schnellerer Onboarding neuer Tenants
Migration zwischen beiden
Eine direkte Migration von Keycloak zu Zitadel (oder umgekehrt) ist aufwändig, da die Datenmodelle unterschiedlich sind. Praktikabel:
- Neues IdP aufsetzen parallel zum alten
- Neue Dienste auf neuen IdP konfigurieren
- Benutzer importieren (Passwort-Reset erforderlich, da Hashes nicht portierbar)
- Alte Dienste migrieren schrittweise
- Alten IdP abschalten
Keycloak vs. Zitadel vs. Authelia vs. Authentik
Vollständiger Vergleich des Self-Hosted-IdP-Ecosystems:
| Tool | Stärke | Schwäche |
|---|---|---|
| Keycloak | Enterprise-Features, LDAP, SAML | Komplex, Java, langsamer Start |
| Zitadel | Cloud-native, Multi-Tenancy, Passkeys | Keine LDAP-Federation |
| Authelia | Ultra-simpel, 2FA-Proxy | Kein vollständiger OIDC-Provider |
| Authentik | Gut für Self-Hosting, Python/Go | Weniger Enterprise-Features |
Fazit: Wann welcher IdP?
Wähle Zitadel wenn:
- Dein Setup cloud-native und Container-first ist
- Ressourceneffizienz wichtig ist
- Du Passkeys / WebAuthn-first priorisierst
- Multi-Tenancy oder Organizations gebraucht werden
- Du kein Active Directory / LDAP hast
Wähle Keycloak wenn:
- Active Directory oder LDAP integriert werden muss
- SAML 2.0 für Legacy-Anwendungen benötigt wird
- Du Red Hat Enterprise Support brauchst
- Dein Team Java-Expertise hat für SPI-Erweiterungen
- Maximale Protocol-Kompatibilität gefragt ist
Für neue Self-Hosting-Projekte 2026 ohne LDAP/AD ist Zitadel die modernere und ressourceneffizientere Wahl. Für Enterprise-Umgebungen mit bestehender Active-Directory-Infrastruktur bleibt Keycloak unschlagbar.
Weiterführende Artikel
- Keycloak vs. Authentik – Identity Provider für Self-Hosting im direkten Vergleich
- Authelia vs. Authentik – SSO und 2FA selbst hosten – leichtgewichtig vs. vollständig