Authentik einrichten: ein Login für alle eigenen Dienste
Single Sign-on für Selfhosting: Authentik mit Docker installieren, absichern und Immich per OpenID Connect anbinden, damit ein Konto für alles reicht.
Von Nathan Base
Mit jedem Dienst, den Du selbst hostest, kommt ein weiteres Konto dazu. Immich hat eigene Benutzer, Paperless auch, Grafana, Nextcloud und Proxmox ebenso. Willst Du Deiner Familie Zugang geben, legst Du jede Person in jedem Dienst einzeln an. Ändert jemand sein Passwort, gilt das nur für einen Dienst. Und eine Zwei-Faktor-Anmeldung musst Du überall getrennt einrichten, sofern der Dienst sie überhaupt kann.
Ein Identity Provider löst das. Er verwaltet alle Benutzer an einer Stelle, und die Dienste fragen bei ihm nach, wer sich gerade anmeldet. Das Verfahren heißt Single Sign-on: Du meldest Dich einmal an, mit Passwort und zweitem Faktor, und bist danach in allen angebundenen Diensten drin.
Authentik ist der verbreitetste Identity Provider im Selfhosting. Diese Anleitung installiert ihn mit Docker, sichert das Admin-Konto ab und bindet Immich als erstes Beispiel per OpenID Connect an. Stand ist Authentik 2026.8. Grundlage sind die offizielle Installationsanleitung von Authentik und die Integrationsseite für Immich.
Lohnt sich das für Dich?
Ehrlich gesagt: Für einen einzelnen Dienst und einen einzigen Benutzer nicht. Authentik ist ein eigenes System mit Datenbank und Wartungsaufwand. Es lohnt sich ab etwa drei Diensten oder sobald mehrere Personen Zugang bekommen. Dann sparst Du Dir doppelte Konten, kannst jemandem den Zugang mit einem Klick überall entziehen und hast eine Zwei-Faktor-Anmeldung auch für Dienste, die selbst keine anbieten.
Ein wichtiger Punkt vorab: Authentik wird zum zentralen Schlüssel. Fällt er aus, kommst Du in die angebundenen Dienste nur noch über deren lokale Anmeldung. Lass diese deshalb anfangs überall eingeschaltet.
Was Du brauchst
- Einen Linux-Server mit Docker und dem Compose-Plugin. Authentik selbst verlangt mindestens 2 CPU-Kerne und 2 GB RAM. Laufen auf demselben Server weitere Dienste, plane mehr ein. Ein Droplet bei DigitalOcean mit 2 vCPU und 4 GB ist ein guter Startpunkt. Wenn Du noch kein Konto hast, bekommst Du über diesen Link zu DigitalOcean (Affiliate Link) Startguthaben zum Ausprobieren.
- Eine Subdomain wie
auth.example.com, deren DNS-Eintrag auf den Server zeigt. - Einen Dienst, der OpenID Connect unterstützt. In dieser Anleitung ist das Immich. Wie Du Immich installierst, zeigt die Anleitung Immich installieren: iCloud-Fotos selbst hosten.
Authentik installieren
Lege einen Ordner an, wechsle hinein und lade die offizielle Compose-Datei herunter:
mkdir -p ~/authentik
cd ~/authentik
curl -O https://docs.goauthentik.io/compose.ymlErzeuge dann ein Passwort für die Datenbank und einen geheimen Schlüssel für Authentik. Beide landen in der Datei .env, die Docker Compose automatisch liest:
echo "PG_PASS=$(openssl rand -base64 36 | tr -d '\n')" >> .env
echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60 | tr -d '\n')" >> .envDer geheime Schlüssel signiert unter anderem die Anmelde-Token. Ändere ihn nach der Installation nicht mehr, sonst sind alle Sitzungen ungültig. Starte Authentik:
docker compose pull
docker compose up -dAuthentik lauscht danach auf Port 9000 für HTTP und 9443 für HTTPS. Mit docker compose ps prüfst Du, ob alle Container laufen. Beim ersten Start dauert es ein bis zwei Minuten, bis der Server bereit ist.
HTTPS mit Caddy
Für die Anmeldung brauchst Du zwingend HTTPS, denn OpenID Connect funktioniert mit den meisten Diensten nur über verschlüsselte Verbindungen. Am einfachsten geht das mit Caddy, der das Zertifikat selbst besorgt. Installiere ihn direkt auf dem Server:
sudo apt install caddyÖffne die Konfiguration mit sudo nano /etc/caddy/Caddyfile, ersetze den Inhalt durch diese drei Zeilen und passe die Domain an:
auth.example.com {
reverse_proxy localhost:9000
}Lade die Konfiguration neu:
sudo systemctl reload caddyLäuft auf Deinem Server bereits Coolify oder ein anderer Reverse Proxy, trägst Du die Domain stattdessen dort ein und leitest sie auf Port 9000 weiter.
Die Ersteinrichtung
Öffne im Browser https://auth.example.com/if/flow/initial-setup/. Der Schrägstrich am Ende gehört dazu, ohne ihn erscheint eine Fehlerseite. Du legst hier E-Mail-Adresse und Passwort für den Standard-Administrator akadmin an.
Danach sicherst Du das Konto ab. Klicke oben rechts auf das Benutzersymbol, öffne Settings und dann MFA Devices. Richte dort einen Authenticator mit Einmalcodes ein, oder noch besser einen Sicherheitsschlüssel oder Passkey über WebAuthn. Ab jetzt fragt Authentik bei jeder Anmeldung nach dem zweiten Faktor. Diese Absicherung gilt automatisch für alle Dienste, die Du später anbindest.
Für den Alltag legst Du unter Directory > Users im Admin-Bereich einen eigenen Benutzer für Dich und je einen für Deine Familienmitglieder an. Wer Admin-Rechte bekommen soll, kommt zusätzlich in die Gruppe authentik Admins.
Immich anbinden
Jeder Dienst bekommt in Authentik eine Application mit einem Provider. Die Application ist das, was Benutzer sehen, der Provider regelt das technische Protokoll.
- Öffne im Admin-Bereich Applications > Applications und klicke auf New Application. Es öffnet sich ein Assistent.
- Gib als Namen
Immichein. Authentik schlägt als Slugimmichvor. Merk Dir den Wert, er kommt gleich in die Adresse. - Wähle als Provider-Typ OAuth2/OpenID Connect.
- Notiere im nächsten Schritt Client ID und Client Secret.
- Trage unter Redirect URIs drei Einträge ein, jeweils vom Typ Strict und Authorization, und ersetze
immich.example.comdurch die Adresse Deines Immich:
app.immich:///oauth-callback
https://immich.example.com/auth/login
https://immich.example.com/user-settings- Wähle unter Signing Key einen der vorhandenen Schlüssel und schließe den Assistenten mit Submit ab.
Die erste Adresse ist für die Immich-App auf dem Handy, die zweite für die Anmeldung im Browser und die dritte dafür, dass bestehende Benutzer ihr Konto in den Einstellungen verknüpfen können.
Wechsle jetzt zu Immich und melde Dich als Administrator an. Öffne Administration > Settings > OAuth Authentication, schalte OAuth ein und trage ein:
- Issuer URL:
https://auth.example.com/application/o/immich/ - Client ID und Client Secret aus Authentik.
Der letzte Teil der Issuer URL ist der Slug aus Schritt 2, und der Schrägstrich am Ende gehört dazu. Speichere die Einstellungen.
Prüfen, ob es funktioniert
Melde Dich in Immich ab. Auf der Anmeldeseite erscheint jetzt ein zusätzlicher Knopf für die Anmeldung per OAuth. Ein Klick leitet Dich zu Authentik weiter, dort meldest Du Dich mit Passwort und zweitem Faktor an und landest danach wieder in Immich.
Bestehende Immich-Benutzer verknüpfen ihr Konto einmalig: In Immich unter Account Settings > OAuth gibt es einen Knopf zum Verknüpfen. Danach führt die Anmeldung über Authentik direkt in ihr bisheriges Konto mit allen Fotos.
Erst wenn das für alle Benutzer klappt, kannst Du in Immich überlegen, die Anmeldung per Passwort abzuschalten. Viele lassen sie als Notzugang dauerhaft an.
Weitere Dienste anbinden
Nach demselben Muster bindest Du alle Dienste an, die OpenID Connect sprechen, darunter Paperless-ngx, Nextcloud, Grafana, Portainer und sogar Proxmox. Für viele davon hat Authentik eigene Schritt-für-Schritt-Seiten in der Integrationsübersicht. Der Ablauf ist immer gleich: Application und Provider anlegen, Redirect URIs des Dienstes eintragen, Issuer URL, Client ID und Client Secret im Dienst hinterlegen.
Für Dienste ganz ohne eigene Anmeldung, etwa einfache Weboberflächen, kann Authentik als Türsteher vor dem Reverse Proxy arbeiten. Das nennt sich Forward Auth und ist ein eigenes Thema mit etwas mehr Konfiguration.
Häufige Fehlermeldungen
Authentik meldet redirect_uri stimmt nicht überein. Die Adresse, die der Dienst schickt, steht nicht exakt so in den Redirect URIs. Achte auf https, die genaue Subdomain und Schrägstriche am Ende.
Immich zeigt einen Fehler zur Issuer URL. Öffne https://auth.example.com/application/o/immich/.well-known/openid-configuration im Browser. Erscheint dort kein JSON, stimmt der Slug nicht, oder die Application hat keinen Provider.
Die Anmeldung klappt, aber Immich legt ein neues, leeres Konto an. Der Benutzer hat sein bestehendes Konto nicht verknüpft. Lösche das neue Konto in Immich und verknüpfe das alte wie oben beschrieben.
Updates und Sicherung
Authentik veröffentlicht regelmäßig neue Versionen, auch mit Sicherheitskorrekturen. Lies vor jedem Update die Release Notes, lade dann die aktuelle compose.yml herunter und starte neu:
cd ~/authentik
curl -O https://docs.goauthentik.io/compose.yml
docker compose pull
docker compose up -dSichere außerdem die Datei .env und die Datenbank. Ohne den geheimen Schlüssel aus der .env lässt sich eine wiederhergestellte Datenbank nicht mehr nutzen.
Fazit
Authentik ist kein Projekt für einen Nachmittag, aber nach der ersten Stunde steht das Fundament, und jeder weitere Dienst kostet nur noch ein paar Minuten. Der Gewinn ist eine einzige, gut gesicherte Anmeldung für alles, was Du selbst betreibst. Wenn Du ohnehin dabei bist, Deine Zugänge aufzuräumen, passt dazu der Umzug in einen eigenen Passwort-Tresor, wie ihn die Anleitung Von Enpass zu Vaultwarden: Umzug mit Bitwarden-Apps beschreibt.
Weiterlesen.
-
Raspberry Pi & LinuxImmich installieren: iCloud-Fotos selbst hosten
Immich mit Docker auf Raspberry Pi 5 oder Mini-PC installieren, die Mediathek aus Apple Fotos importieren und das iPhone automatisch sichern.
Nathan Base -
Raspberry Pi & LinuxPaperless-ngx: Papierpost scannen und automatisch ablegen
Paperless-ngx mit Docker installieren, Briefe per iPhone scannen, deutsche Texterkennung einstellen und Rechnungen automatisch sortieren lassen.
Nathan Base -
Web & CodeVon Enpass zu Vaultwarden: Umzug mit Bitwarden-Apps
Enpass zu Vaultwarden umziehen, auch mit langen Notizen und vielen Altlasten: Export, Import, Grenzen, Server bei DigitalOcean mit Coolify und Backups.
Nathan Base -
Web & Codesops und age: .env-Dateien verschlüsselt in Git
Passwörter und API-Schlüssel aus .env-Dateien mit sops und age verschlüsselt ins Git-Repository legen und auf dem Server direkt mit Docker Compose nutzen.
Nathan Base -
Web & CodePush-Benachrichtigungen selbst hosten mit ntfy
ntfy mit Docker und Caddy selbst hosten, absichern und Meldungen von Skripten, Uptime Kuma und Home Assistant aufs iPhone und Android-Handy schicken.
Nathan Base -
Web & CodeVaultwarden auf einem Droplet: eigener Passwortmanager
Eigener Passwortmanager mit Vaultwarden: Bitwarden-kompatiblen Server mit Docker Compose, Caddy und HTTPS auf einem Droplet einrichten.
Nathan Base