kanidm
Kanidm ist eine moderne, sichere und vergleichsweise leichtgewichtige Identity‑Management-Lösung, entwickelt in Rust, mit Fokus auf klaren Standards, Self‑Healing‑Mechanismen und einfacher Administration. Die Plattform eignet sich für Homelabs, kleinere Unternehmen bis hin zu Enterprise‑Umgebungen. docker
Im Gegensatz zu vielen anderen IAM‑Systemen (z.B. Keycloak) bringt Kanidm eingebaute Funktionen wie OAuth2/OIDC, Unix‑Integration, Passkey‑Authentifizierung (WebAuthn) und ein Application Portal direkt mit.
Kanidm unterstützt moderne Sicherheitsfeatures:
- Passkeys / WebAuthn
- OIDC & OAuth2
- Application Portal
- Unix‑Integration
- Zwei‑Node‑Replikation
Die entsprechende Einrichtung erfolgt über CLI und Konfigurationsdateien - die vollständigen Referenzen findest du im Kanidm‑Book
Voraussetzungen
Kanidm wird offiziell als Container bevorzugt bereitgestellt. Die offiziellen Images findest du im Docker Hub:
- kanidm/server
- kanidm/radius
- kanidm/tools
Grundvoraussetzungen:
- Modernes CPU‑Feature‑Set x86_64_v2 oder ARM NEON
- Docker + Docker Compose
- TLS‑Zertifikate (chain.pem & key.pem) im Volume
- Etwas Speicherplatz (ca. 8 KB pro Eintrag) & RAM (ca. 64 KB pro Eintrag)
Installation mit Docker Compose
Im folgenden Beispiel richten wir Kanidm mit einem bind‑mount für die Zertifikate und einem persistenten Volume für die Daten ein.
/etc/kanidm/
├── chain.pem
├── key.pem
└── server.toml
Beispiel server.toml
Minimalbeispiel basierend auf offizieller Dokumentation:
version = "2"
bindaddress = "0.0.0.0:8443"
db_path = "/data/kanidm.db"
tls_chain = "/data/chain.pem"
tls_key = "/data/key.pem"
domain = "idm.example.com"
origin = "https://idm.example.com"
log_level = "info"version = "2"
bindaddress = "0.0.0.0:8443"
db_path = "/data/kanidm.db"
tls_chain = "/data/chain.pem"
tls_key = "/data/key.pem"
domain = "idm.example.com"
origin = "https://idm.example.com"
log_level = "info"
Hinweis: Domain, origin, tls_chain & tls_key müssen gesetzt sein, sonst startet Kanidm nicht.
Docker‑Compose Datei
Basierend auf offiziellen Maintainer-Angaben:
services:
kanidmd:
container_name: kanidmd
image: kanidm/server:latest
restart: always
volumes:
- type: bind
source: /etc/kanidm/
target: /data/
- kanidm_data:/var/lib/kanidm/
ports:
- "443:8443"
volumes:
kanidm_data:
Starten des Containers
docker compose up -d
docker logs -f kanidmd
Wenn TLS und Config korrekt sind, sollte der Server erfolgreich starten
Ersteinrichtung über CLI
Für die Administration wird das CLI‑Tool benötigt (kanidm, Teil des Docker‑Images oder per Paket installierbar).
docker run --rm -it \
--network host \
kanidm/tools:latest \
kanidm login --user admin --password
Du kannst anschließend Benutzer, Gruppen und Anwendungen verwalten.
WebAuthn & Funktionen
Kanidm unterstützt moderne Sicherheitsfeatures:
Passkeys / WebAuthn OIDC & OAuth2 Application Portal Unix‑Integration Zwei‑Node‑Replikation
Die entsprechende Einrichtung erfolgt über CLI und Konfigurationsdateien – die vollständigen Referenzen findest du im Kanidm‑Book
Zertifikate erneuern
Kanidm lädt TLS‑Zertifikate bei SIGHUP neu:
docker kill -s HUP kanidmd
Fazit
Kanidm ist eine moderne, sichere und erstaunlich schlanke Identity-Management-Lösung, die durch ihre Container‑Bereitstellung besonders leicht zu installieren ist. Die strikten, aber übersichtlichen Konfigurationen machen es ideal für homelabs genauso wie größere Umgebungen.