Zum Inhalt springen
SONOYA.com
Web & Code

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

Schlüssel-Symbol auf dunkelgrünem Verlauf für Authentik als zentrales Login, über das sich alle selbst gehosteten Dienste anmelden

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:

Code
mkdir -p ~/authentik
cd ~/authentik
curl -O https://docs.goauthentik.io/compose.yml

Erzeuge 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:

Code
echo "PG_PASS=$(openssl rand -base64 36 | tr -d '\n')" >> .env
echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60 | tr -d '\n')" >> .env

Der geheime Schlüssel signiert unter anderem die Anmelde-Token. Ändere ihn nach der Installation nicht mehr, sonst sind alle Sitzungen ungültig. Starte Authentik:

Code
docker compose pull
docker compose up -d

Authentik 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:

Code
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:

Code
auth.example.com {
    reverse_proxy localhost:9000
}

Lade die Konfiguration neu:

Code
sudo systemctl reload caddy

Lä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.

  1. Öffne im Admin-Bereich Applications > Applications und klicke auf New Application. Es öffnet sich ein Assistent.
  2. Gib als Namen Immich ein. Authentik schlägt als Slug immich vor. Merk Dir den Wert, er kommt gleich in die Adresse.
  3. Wähle als Provider-Typ OAuth2/OpenID Connect.
  4. Notiere im nächsten Schritt Client ID und Client Secret.
  5. Trage unter Redirect URIs drei Einträge ein, jeweils vom Typ Strict und Authorization, und ersetze immich.example.com durch die Adresse Deines Immich:
Code
app.immich:///oauth-callback
https://immich.example.com/auth/login
https://immich.example.com/user-settings
  1. 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:

Code
cd ~/authentik
curl -O https://docs.goauthentik.io/compose.yml
docker compose pull
docker compose up -d

Sichere 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.