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.

Zuletzt geändert: 28 January 2026