Sicherheit⭐ Featuredguide

Authentik einrichten – Open-Source SSO und Identity Provider 2025

Single Sign-On mit OIDC, SAML und LDAP – self-hosted als Okta/Azure AD Alternative

S
SeeColors IT
11. Juni 20264 Min. Lesezeit317 Aufrufe

Was ist Authentik?

Authentik (ausgesprochen wie „authentic") ist ein Open-Source Identity Provider (IdP) der Single Sign-On (SSO), Multi-Faktor-Authentifizierung und User-Provisioning für selbst gehostete Infrastrukturen bereitstellt.

Als Alternative zu kommerziellen Lösungen wie Okta, Auth0 oder Azure AD B2C können Sie mit Authentik alle Ihre Apps – Nextcloud, Grafana, GitLab, Portainer, Proxmox, Vaultwarden und mehr – hinter einem zentralen Login zusammenführen.

Unterstützte Protokolle

Protokoll Verwendung
OIDC/OAuth2 Moderne Web-Apps (Grafana, Gitea, Proxmox)
SAML 2.0 Enterprise-Apps, Confluence, Jira
LDAP Legacy-Apps, Nextcloud, Photoprism
RADIUS Netzwerkgeräte, VPN
SCIM Automatisches User-Provisioning
Proxy Forward-Auth für Nginx/Traefik

Voraussetzungen

  • Docker und Docker Compose
  • Domain mit DNS-Eintrag (für SSL)
  • Mindestens 2 GB RAM, 2 vCPU

Installation mit Docker Compose

Erstellen Sie /opt/authentik/docker-compose.yml:

version: '3.4'
services:
  postgresql:
    image: docker.io/library/postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_PASSWORD: ${PG_PASS:?error}
      POSTGRES_USER: authentik
      POSTGRES_DB: authentik
    volumes:
      - database:/var/lib/postgresql/data

  redis:
    image: docker.io/library/redis:alpine
    restart: unless-stopped
    command: --save 60 1 --loglevel warning
    volumes:
      - redis:/data

  server:
    image: ghcr.io/goauthentik/server:latest
    restart: unless-stopped
    command: server
    environment:
      AUTHENTIK_REDIS__HOST: redis
      AUTHENTIK_POSTGRESQL__HOST: postgresql
      AUTHENTIK_POSTGRESQL__USER: authentik
      AUTHENTIK_POSTGRESQL__NAME: authentik
      AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
      AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY}
      AUTHENTIK_ERROR_REPORTING__ENABLED: false
    ports:
      - "0.0.0.0:9000:9000"
      - "0.0.0.0:9443:9443"
    depends_on:
      - postgresql
      - redis

  worker:
    image: ghcr.io/goauthentik/server:latest
    restart: unless-stopped
    command: worker
    environment:
      AUTHENTIK_REDIS__HOST: redis
      AUTHENTIK_POSTGRESQL__HOST: postgresql
      AUTHENTIK_POSTGRESQL__USER: authentik
      AUTHENTIK_POSTGRESQL__NAME: authentik
      AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
      AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY}
    depends_on:
      - postgresql
      - redis
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - media:/media
      - certs:/certs
      - templates:/templates

volumes:
  database:
  redis:
  media:
  certs:
  templates:

Umgebungsvariablen in .env:

# .env Datei erstellen
cat > /opt/authentik/.env << 'EOF'
PG_PASS=einSicheresPasswort123!
AUTHENTIK_SECRET_KEY=$(openssl rand 60 | base64 -w 0)
EOF

Starten:

cd /opt/authentik
docker compose up -d

Admin-Interface: https://<SERVER-IP>:9443/if/flow/initial-setup/

Setzen Sie E-Mail und Passwort für den Administrator.

Ersten OIDC-Provider einrichten (Beispiel: Grafana)

In Authentik

  1. Applications → Providers → Create → OAuth2/OpenID Provider

    • Name: Grafana
    • Authorization flow: default-authorization-explicit-consent
    • Client type: Confidential
    • Client ID: automatisch generiert (notieren!)
    • Client Secret: automatisch generiert (notieren!)
    • Redirect URIs: https://grafana.ihredomain.de/login/generic_oauth
  2. Applications → Create

    • Name: Grafana
    • Slug: grafana
    • Provider: den eben erstellten auswählen
    • Launch URL: https://grafana.ihredomain.de

In Grafana (grafana.ini)

[auth.generic_oauth]
enabled = true
name = Authentik
allow_sign_up = true
client_id = <CLIENT_ID>
client_secret = <CLIENT_SECRET>
scopes = openid email profile
auth_url = https://auth.ihredomain.de/application/o/grafana/authorize/
token_url = https://auth.ihredomain.de/application/o/grafana/token/
api_url = https://auth.ihredomain.de/application/o/userinfo/
role_attribute_path = contains(groups[*], 'Grafana Admins') && 'Admin' || 'Viewer'

Grafana-Neustart → Login-Seite zeigt „Mit Authentik anmelden" Button.

Multi-Faktor-Authentifizierung (MFA)

Authentik → Flows & Stages → Create Stage → Authenticator Validation Stage:

  • Name: MFA Validation
  • Device classes: TOTP, Static, WebAuthn
  • Not configured action: Force configure (Benutzer muss MFA einrichten)

Den Stage in den Default-Authentication-Flow einbinden:

Flows → default-authentication-flow → Edit → Stage bindings → Add stage → MFA Validation

Alle Benutzer werden beim nächsten Login zur MFA-Einrichtung aufgefordert.

LDAP-Outpost (für Legacy-Apps)

Apps die kein OIDC sprechen (z. B. ältere Nextcloud-Versionen, Vaultwarden) können sich per LDAP gegen Authentik authentifizieren:

  1. Outposts → Create → LDAP
  2. Integrate als LDAP-Server: Port 389 (LDAP) oder 636 (LDAPS)
  3. In der Ziel-App LDAP konfigurieren:
    • LDAP Host: <AUTHENTIK_SERVER>
    • Bind DN: cn=ldapservice,ou=serviceaccounts,dc=ldap,dc=goauthentik,dc=io
    • Base DN: dc=ldap,dc=goauthentik,dc=io

Benutzer und Gruppen

Authentik → Directory → Users → Create:

  • Attribute: Vorname, Nachname, E-Mail, Username
  • Gruppen für Zugriffssteuerung (z. B. „Admins", „Grafana-Users")

Automatische Synchronisierung via SCIM wenn die Ziel-App SCIM unterstützt.

Branding anpassen

Authentik → System → Brands:

  • Logo hochladen
  • Primärfarbe setzen
  • Login-Seite kommt mit Ihrem Corporate Design

FAQ

Wie skaliert Authentik mit vielen Benutzern?
Authentik ist für tausende Benutzer ausgelegt. Worker-Prozesse können horizontal skaliert werden. Für sehr große Deployments empfiehlt sich eine externe PostgreSQL-Instanz.

Was ist der Unterschied zu Keycloak?
Keycloak ist mächtiger und etablierter im Enterprise-Bereich aber komplexer zu administrieren. Authentik ist moderner, einfacher bedienbar und besonders für Self-hosted-Umgebungen optimiert.

Kann Authentik Active Directory ersetzen?
Für kleinere Umgebungen ja. Authentik bietet LDAP, Gruppen und User Management. Für Exchange/Windows-Domänen-Funktionen ist AD jedoch weiterhin nötig.

Fazit

Authentik ist 2025 die beste Open-Source-Wahl für Single Sign-On in selbst gehosteten Umgebungen. Ein zentraler Login für alle Ihre Services verbessert gleichzeitig die Sicherheit (MFA überall) und die Benutzerfreundlichkeit.

Wir implementieren Identity-Management-Lösungen für KMU in Heidelberg, Mannheim und der Rhein-Neckar-Region. Jetzt Sicherheitsberatung anfragen.

Artikel teilen

War dieser Artikel hilfreich?

Dein Feedback hilft uns, bessere Inhalte zu erstellen.

Kommentar hinterlassen

Verwandte Artikel