Stell dir vor, du müsstest dich nur noch einmal anmelden, um Zugriff auf all deine Dienste zu erhalten – vom Wiki bis zur Cloud. Und das komplett selbst gehostet. Willkommen bei Authentik, dem modernen Open-Source-Tool für Single Sign-On (SSO) und Identity Management!
Für eine detaillierte Anleitung und Erklärung aller Konfigurationsmöglichkeiten empfehle ich das unten verlinkte YouTube-Video. In diesem Video wird ausführlich auf jede einzelne Einstellung eingegangen, sodass du eine umfassende Anleitung zur genauen Einrichtung erhältst. Eventuellen Code aus dem Video findest du in diesem Beitrag, so dass du ihn direkt nutzen kannst ohne abtippen zu müssen.
Dieser Blogbeitrag inklusive Video ist Teil einer Serie in der wir unseren eigenen Homeserver erstellen und einrichten. Wir fangen bei den Basics wie ein Ubuntu VM Installation mit Docker an und machen dann weiter mit der Konfiguration einer eigenen Domain, Sicherheitsvorkehrungen und vor allem jede Menge coole und nützliche selbstgehostete Dienste. Egal ob Medienserver wie Plex oder Jellyfin oder Dokumentenmanagement wie Paperless-NGX. Wir bauen gemeinsam das Setup auf, das ihr sehen möchtet. Selbst Themen wie Single-Sign-On (SSO) gehen wir zusammen an.
Was ist Single Sign-On (SSO) und Identity Management?
Bevor wir in die Welt von Authentik eintauchen, ist es wichtig zu verstehen, was Single Sign-On (SSO) und Identity Management überhaupt sind.
Single Sign-On (SSO)
SSO erlaubt es dir, dich einmalig anzumelden und dann auf mehrere verbundene Dienste zuzugreifen, ohne dich erneut authentifizieren zu müssen. Egal ob Nextcloud, Gitea oder Grafana: Ein Login – alles offen.
Vorteile von SSO:
- Benutzerfreundlich: Weniger Logins, weniger Frust.
- Sicherheit: Weniger Passwörter heißt weniger Angriffsfläche.
- Verwaltung: Zentralisierte Kontrolle über den Zugriff.
Identity Management
Beim Identity Management geht es um die Verwaltung von Benutzeridentitäten, ihren Berechtigungen und den Zugriff auf Systeme. Moderne Systeme erlauben dir die Verwaltung von:
- Externe Identitätsprovider (z. B. Google, Azure AD)
- Benutzerkonten
- Rollen & Gruppen
- Authentifizierungsmethoden (Passwort, 2FA, Zertifikate)
Was ist Authentik?
Authentik ist ein modernes, quelloffenes Identity-Management- und Authentifizierungssystem, das sich auf Selfhosting spezialisiert. Es verbindet zentrale Authentifizierungsdienste mit ausgeklügelten Zugriffsrichtlinien, Benutzerverwaltung und Protokollkompatibilität. Authentik spricht Protokolle wie OAuth2, OpenID Connect, SAML 2.0 und LDAP – was es zur idealen SSO- und IAM-Lösung für nahezu jede Infrastruktur macht.
Es wurde in Python entwickelt, nutzt Django als Framework und bietet eine moderne, nutzerfreundliche Weboberfläche für Admins und Benutzer. Dabei richtet sich Authentik sowohl an Einsteiger im Selfhosting als auch an professionelle Administratoren mit komplexen Anforderungen.
Begriffe erklärt
- TOTP (Time-based One-Time Password): Ein Einmalcode, der auf Zeitbasis generiert wird (z. B. Google Authenticator).
- WebAuthn: Moderne, passwortlose Authentifizierung mittels Hardware-Token (z. B. YubiKey) oder biometrischer Geräte.
- Reverse Proxy Outposts: Vorgefertigte Integrationen, die als Reverse Proxy agieren und Authentik vorschalten – etwa für Dienste, die keine nativen Authentifizierungsprotokolle unterstützen.
- Externe IdPs (Identity Provider): Systeme wie Google, Microsoft oder GitHub, über die Benutzer sich alternativ bei Authentik anmelden können – hilfreich bei föderierten Identitäten oder Hybrid-Setups.
Zentrale Funktionen im Überblick
- OpenID Connect & OAuth2 Provider: Für moderne Web-Apps und APIs
- SAML 2.0: Kompatibilität mit Enterprise-Diensten
- LDAP Proxy: Legacy-Unterstützung für ältere Dienste
- MFA-Unterstützung: TOTP, WebAuthn, FIDO2, Backup-Codes
- Reverse Proxy Outposts: Einbindung ohne Code-Integration
- Granulare Zugriffsrichtlinien: Zeitabhängig, IP-basiert, rollenbasiert
- Externe IdPs einbinden: Google, Azure, GitHub, SAML etc.
- Benutzer-Flow-System: Registrierungs-, Login- und Genehmigungsprozesse individuell anpassbar
- Audit Logging & Analytics: Transparenz für Admins
- API & Webhook-Support: Automatisierung und DevOps-Freundlichkeit



Aufbau und Architektur von Authentik
Authentik ermöglicht es dir, den gesamten Loginprozess detailliert zu steuern – und das auf visuelle Weise über eine klare Weboberfläche.
Komponenten von Authentik:
- Core: Der zentrale Dienst, der Logik, Benutzermanagement, Authentifizierung und Richtlinien orchestriert.
- Flows: Benutzerinteraktionen wie Login, Registrierung, Passwort-Reset oder Genehmigungsprozesse. Jeder Flow ist modular anpassbar.
- Applications: Abstraktionen für die zu schützenden Dienste. Hier wird festgelegt, wie und über welches Protokoll sich ein Dienst authentifizieren soll.
- Providers: Technische Schnittstellen für OAuth2, OpenID Connect, SAML oder LDAP – sie verbinden Authentik mit den Anwendungen.
- Policies: Regelsysteme, mit denen du definieren kannst, wer Zugriff bekommt – abhängig von Zeit, IP-Adresse, Benutzerattributen oder Gruppenzugehörigkeit.
- Outposts: Authentiks eigene Reverse-Proxy-Komponenten auf Basis von Nginx oder Traefik, die sich direkt vor Dienste schalten lassen und die Authentifizierung über Authentik abwickeln.
Wie funktioniert Authentik in der Praxis?
- Du meldest dich über Authentik an.
- Authentik überprüft Identität, MFA, Richtlinien.
- Nach erfolgreicher Authentifizierung wirst du zu deinem Dienst weitergeleitet.
- Authentik gibt ein Token oder SAML-Assertion an die App weiter.
Security Features im Detail
Multi-Faktor-Authentifizierung (MFA)
Authentik bietet MFA mit:
- TOTP (Time-based One-Time Password): Ein zeitbasierter Code, z. B. über Google Authenticator.
- WebAuthn/FIDO2: Hardware-Authentifizierung per YubiKey, Fingerabdrucksensor oder biometrischen Methoden.
- Backup-Codes: Einmal-Codes zur Notfall-Anmeldung.
Policy Engine
Die Policies sind das Herzstück von Authentiks Sicherheitsmodell. Du kannst:
- Fein granular Zugriffsrechte definieren.
- Zugriff abhängig machen von Zeit, IP, Geostandort oder Benutzerrolle.
- Dynamisch entscheiden lassen, ob ein Flow fortgeführt oder abgebrochen wird.
Protokollkompatibilität
Authentik unterstützt sichere Standards wie:
- OAuth2 & OpenID Connect: Für moderne Webanwendungen und APIs.
- SAML 2.0: Für Legacy-Anwendungen und Enterprise-Software.
- LDAP Proxy: Zur Integration älterer Dienste.
Auditing und Transparenz
Jede Aktion, jeder Login, jede Policy-Entscheidung wird protokolliert. Du erhältst:
- Nachvollziehbare Logs
- Einblick in fehlgeschlagene Loginversuche
- Diagnosehilfen bei Integrationsproblemen
Sichere Speicherung
- Passwörter werden mit sicheren Algorithmen wie PBKDF2 + SHA256 gespeichert.
- Secrets und Tokens sind verschlüsselt im Backend abgelegt.
Integrationen & Kompatibilität
Das Beste an Authentik: Du kannst nahezu jede Anwendung einbinden, die eines der gängigen Authentifizierungsprotokolle unterstützt – und das sind heutzutage fast alle webbasierten Tools.
Dank der Unterstützung von OAuth2, OpenID Connect, SAML 2.0 und LDAP ist Authentik kompatibel mit:
- klassischen Webdiensten wie Nextcloud, GitLab, Gitea, Grafana, Mattermost
- Unternehmenssoftware wie Jira, Confluence, Rocket.Chat, Zammad
- Dashboard- und Admin-Tools wie Portainer, Kubernetes Dashboards
- internen Eigenentwicklungen, APIs oder Admin-Interfaces
Egal ob moderne API-Authentifizierung via OAuth2 oder Legacy-Login via SAML oder LDAP – Authentik passt sich an.
Ein Admin kann also eine durchgehende Single-Sign-On-Lösung bauen, bei der Benutzer nur einmal ihr Passwort eingeben und danach über alle Systeme hinweg autorisiert sind – ohne Passwortchaos oder Doppellogin.
Du kannst sogar externe Identitätsprovider wie Google oder Azure AD integrieren – perfekt, wenn du hybrides Identity Management mit Selfhosting kombinieren willst.
Praxisbeispiele für Authentik im Einsatz
Beispiel 1: Homelab mit mehreren Diensten
Du betreibst ein Homelab mit Nextcloud, Gitea, Grafana und Portainer? Statt überall ein separates Passwort zu verwalten, richtest du Authentik als zentralen Identity Provider ein. Alle Dienste werden via OAuth2 oder SAML mit Authentik verbunden. Ergebnis: Ein Login – alle Dienste verfügbar. Und das auch für alle anderen Nutzer. Das gilt natürlich gerade für Dienste, die du frei im Internet verfügbar machst.
Beispiel 2: Kleine Agentur mit internem Wiki und Kundenzugang
In deiner Agentur nutzen interne Mitarbeiter ein Wiki (z. B. Wiki.js oder Outline) und Kunden greifen auf ein Support-Portal zu. Mit Authentik richtest du zwei verschiedene Benutzergruppen ein. Deine Policies erlauben Kunden nur Zugriff auf das Support-Portal, während Mitarbeiter Vollzugriff haben – gesteuert über Rollen und Gruppen.
Beispiel 3: Legacy-Software per LDAP
Ein altes ERP-System unterstützt nur LDAP zur Authentifizierung. Anstatt einen eigenen LDAP-Server zu pflegen, nutzt du Authentiks LDAP-Proxy. So bleiben alle Identitäten zentral verwaltet und synchron.
Beispiel 4: Externer Login via Google
Du willst es Benutzern einfach machen, sich mit bestehenden Google-Konten anzumelden? In Authentik konfigurierst du Google als externen IdP. Nutzer melden sich mit ihrem Google-Account an, erhalten jedoch Rollen und Rechte, die zentral über Authentik gesteuert werden. Du kennst diese Variante sicherlich von vielen Anbietern bei denen du dich mit Google, Microsoft, Apple oder sonst etwas anmelden kannst. Es ist dasselbe Prinzip und für Nutzer einfach sehr angenehm und einfach.
Vergleich: Authentik vs. Keycloak vs. Authelia vs. Entra ID
Feature | Authentik | Keycloak | Authelia | Entra ID (Azure AD) |
---|---|---|---|---|
Self-hosted | Ja | Ja | Ja | Nein |
Open Source | Ja | Ja | Ja | Nein |
OAuth2 / OpenID Connect | Ja | Ja | Nein | Ja |
SAML | Ja | Ja | Eingeschränkt | Ja |
LDAP-Unterstützung | Ja (Proxy) | Ja | Nein | Eingeschränkt |
MFA (TOTP, WebAuthn, etc.) | Ja | Ja | Ja | Ja |
Benutzer-Management UI | Modern & intuitiv | Funktional | Minimalistisch | Sehr modern |
Rollen & Gruppen (RBAC) | Ja | Ja | Eingeschränkt | Ja |
Flow-basierte Prozesse | Ja | Teilweise | Nein | Ja |
Policy Engine | Stark & flexibel | Stark | Mittel | Stark |
DevOps/API Integration | Sehr gut (Webhooks, API) | Gut | Eingeschränkt | Ja |
Skalierbarkeit | Hoch | Hoch | Mittel | Sehr hoch |
Komplexität | Mittel | Hoch | Niedrig | Hoch |
Hosting-Optionen | Docker, K8s, Bare Metal | Docker, K8s, Bare Metal | Docker | Cloud only |
Fazit: Authentik ist ein guter Kompromiss zwischen Funktionalität, Usability und Selfhosting-Freundlichkeit.
Vorteile von Authentik auf einen Blick
- ✅ Open Source & kostenlos
- ✅ Einfaches Selfhosting mit Docker
- ✅ DSGVO-konform, da keine Cloud notwendig
- ✅ Moderne UI & schnelle Weiterentwicklung
- ✅ Flexibel erweiterbar
- ✅ Integration mit fast allen modernen Webdiensten
Für wen eignet sich Authentik?
- Homelab-Enthusiasten
- Selbsthoster mit mehreren Webanwendungen
- Kleine bis mittlere Unternehmen, die Datenschutz ernst nehmen
- Entwickler, die sichere Login-Systeme bauen wollen
Installation von Authentik via Docker
Dazu erstellst du auf deinem Server ganz einfach eine YAML-Datei mit folgendem Inhalt (natürlich machst du Anpassungen für sensitive Daten wie Passwörter, oder Mail-Dienste):
services:
authentik:
image: beryju/authentik:2025.6.4
container_name: authentik
command: server
restart: unless-stopped
networks:
- sascha
ports:
- 9002:9000
- 9444:9443
environment:
TZ: Europe/Berlin
AUTHENTIK_REDIS__HOST: redis
AUTHENTIK_POSTGRESQL__HOST: authentik-db
AUTHENTIK_POSTGRESQL__USER: authentik
AUTHENTIK_POSTGRESQL__NAME: authentik
AUTHENTIK_POSTGRESQL__PASSWORD: superSafePassword
AUTHENTIK_ERROR_REPORTING__ENABLED: true
AUTHENTIK_SECRET_KEY: superSecretKey
AUTHENTIK_REDIS__PASSWORD:
AUTHENTIK_REDIS__DB: 1
AUTHENTIK_EMAIL__HOST: mail.host.net
AUTHENTIK_EMAIL__PORT: 587
AUTHENTIK_EMAIL__USERNAME: [email protected]
AUTHENTIK_EMAIL__PASSWORD: mailPassword
AUTHENTIK_EMAIL__USE_TLS: true
AUTHENTIK_EMAIL__USE_SSL: false
AUTHENTIK_EMAIL__TIMEOUT: 10
AUTHENTIK_EMAIL__FROM: [email protected]
volumes:
- /mnt/cache/appdata/security/authentik/templates:/templates:rw
- /mnt/cache/appdata/security/authentik/media:/media:rw
authentik-worker:
image: beryju/authentik:2025.6.4
container_name: authentik-worker
command: worker
user: root # needed for Docker Socket to work
restart: unless-stopped
networks:
- sascha
environment:
TZ: Europe/Berlin
AUTHENTIK_REDIS__HOST: redis
AUTHENTIK_POSTGRESQL__HOST: authentik-db
AUTHENTIK_POSTGRESQL__USER: authentik
AUTHENTIK_POSTGRESQL__NAME: authentik
AUTHENTIK_POSTGRESQL__PASSWORD: superSafePassword
AUTHENTIK_SECRET_KEY: superSecretKey
AUTHENTIK_REDIS__PASSWORD:
AUTHENTIK_REDIS__DB: 1
volumes:
- /mnt/cache/appdata/security/authentik/backups:/backups:rw
- /mnt/cache/appdata/security/authentik/media:/media:rw
- /mnt/cache/appdata/security/authentik/certs:/certs:rw
- /mnt/cache/appdata/security/authentik/templates:/templates:rw
authentik-db:
image: postgres:latest
container_name: authentik-db
restart: unless-stopped
networks:
- sascha
ports:
- 5436:5432
environment:
TZ: Europe/Berlin
POSTGRES_PASSWORD: superSafePassword
POSTGRES_USER: authentik
POSTGRES_DB: authentik
volumes:
- /mnt/cache/appdata/security/authentik-db:/var/lib/postgresql/data:rw
healthcheck:
test: ["CMD-SHELL", "pg_isready -U authentik -d authentik"]
interval: 10s
timeout: 5s
retries: 3
networks:
sascha:
external: true
Du kannst die Services dann ganz einfach mit folgendem Befehl starten (der Name muss natürlich angepasst werden):
docker compose -f "docker-compose-authentik.yml" up -d
Erklärung der Docker Compose
In einem typischen Setup mit Docker Compose besteht Authentik aus mehreren Services:
Der Container authentik
ist der Hauptserver. Er verwendet das offizielle Docker-Image beryju/authentik
in einer bestimmten Version und wird mit dem Kommando server
gestartet. Der Container ist Teil eines benannten Netzwerks und lauscht auf den Ports 9000 (HTTP) und 9443 (HTTPS), die lokal auf 9002 bzw. 9444 gemappt werden. Um sicherzustellen, dass der Dienst nach einem Absturz neu startet, ist restart: unless-stopped
aktiviert.
Die Umgebungsvariablen konfigurieren Zeitzone, die Verbindung zur PostgreSQL-Datenbank (AUTHENTIK_POSTGRESQL__HOST
, USER
, PASSWORD
), die Redis-Instanz für Caching sowie Sicherheitseinstellungen wie einen geheimen Schlüssel (AUTHENTIK_SECRET_KEY
). Zusätzlich sind Mailserver-Einstellungen hinterlegt, die Authentik ermöglichen, E-Mails für Passwort-Resets oder Benachrichtigungen zu verschicken.
Die Volumes binden lokale Verzeichnisse ins System ein – unter anderem für Templates und hochgeladene Medien.
Der zweite Container authentik-worker
führt Hintergrundaufgaben aus, etwa das Verarbeiten von E-Mails, Webhooks oder Aufgaben aus Flows. Auch hier wird die gleiche Image-Version verwendet, aber mit dem Startkommando worker
. Der Container benötigt Zugriff auf dieselbe Datenbank und Redis-Instanz wie der Hauptserver. Außerdem mountet er zusätzliche Volumes, z. B. für Backups und Zertifikate.
Der Container authentik-db
stellt die PostgreSQL-Datenbank bereit. Er basiert auf dem offiziellen postgres
-Image, speichert Daten im lokalen Volume, nutzt ein Gesundheitscheck-Command (pg_isready
) zur Überwachung und ist über den Port 5436 extern erreichbar. Auch hier wird sichergestellt, dass der Container bei einem Fehler automatisch neustartet.
Alle drei Dienste befinden sich im Netzwerk sascha
, das als extern deklariert ist – möglicherweise ein benutzerdefiniertes, bestehendes Netzwerk für eine größere Infrastruktur. Das kann natürlich beliebig geändert werden und wird hier nur so für mein Beispiel genannt.
Bonus: Einbindung in NGINX Proxy Manager

Umsetzung im YouTube-Video
Fazit: Deine Identitätszentrale in deiner Hand
Mit Authentik bekommst du eine leistungsfähige, moderne und selbst gehostete Lösung für zentrale Authentifizierung und Benutzerverwaltung. Ob du nur Nextcloud sichern oder ein komplettes Unternehmensnetzwerk kontrollieren willst – Authentik bietet dir alle Werkzeuge, um das sicher, effizient und transparent zu tun.
Wenn du genug hast von unsicheren Passwörtern, inkonsistenter Benutzerverwaltung und Abhängigkeit von Cloud-Diensten, dann ist jetzt der perfekte Zeitpunkt, auf Authentik zu setzen.
0 Kommentare