Haben Sie Fragen? Senden Sie uns doch eine Nachricht

OneSystems GmbH

OneSystems GmbH

System Management aus der Schweiz

+41 44 586 40 18
Email: info@onesystems.ch

OneSystems GmbH
Grindlenstrasse 9, 9630 Wattwil, Schweiz

Open in Google Maps
  • Home
  • Beratung & Betrieb
  • Dienstleistungen
    • Web Hosting
    • E-Mail Hosting
    • Ihre eigene Daten Cloud
  • Blog
  • Kontakt
    • Remote Support
  • Home
  • Blog
  • Docker
  • Einen eigenen Identitätsanbieter betreiben (Teil 2)
12. Februar 2026

Einen eigenen Identitätsanbieter betreiben (Teil 2)

Einen eigenen Identitätsanbieter betreiben (Teil 2)

by Michael Kleger / Dienstag, 15 August 2023 / Published in Docker, Identitätsanbieter

Da ich mich wie bereits im ersten Artikel beschrieben habe für authentik entschieden habe, kommt hier die Anleitung wie das System installiert wird.

Wichtig, hierbei handelt es sich um eine Basis Installation und Konfiguration!

 

Was wird alles benötigt?

Voraussetzung

  • Docker Server mit installiertem Docker-Compose
  • Einen Reverse Proxy oder Load Balancer
  • Eigene öffentliche Domäne mit zugang zum DNS
  • Eine Firewall oder wenn nicht anders vorhanden einen Router der die Infos mit NAT an den Reverse Proxy weitergibt
  • Öffentliches TLS Zertifikat (z.B. Let’s Encrypt)

 

Container bereitstellen

Authentik

Das Bereitstellen ist auf der offiziellen Dokumentation gut beschreiben und bedarf eigentlich keiner separaten Anleitung:

https://goauthentik.io/docs/installation/docker-compose

 

Als alternative kann auch unsere Docker-Compose Konfiguration verwendet werden:

---
version: "3.4"

services:
  postgresql:
    image: docker.io/library/postgres:12-alpine
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
      start_period: 20s
      interval: 30s
      retries: 5
      timeout: 5s
    volumes:
      - /docker/authentik/database:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: <authentik-db-pwd>
      POSTGRES_USER: <authentik-user>
      POSTGRES_DB: <authentik-db>

  redis:
    image: docker.io/library/redis:alpine
    command: --save 60 1 --loglevel warning
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
      start_period: 20s
      interval: 30s
      retries: 5
      timeout: 3s
    volumes:
      - /docker/authentik/redis:/data

  server:
    image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2023.6.1}
    restart: unless-stopped
    command: server
    environment:
      AUTHENTIK_REDIS__HOST: redis
      AUTHENTIK_POSTGRESQL__HOST: postgresql
      AUTHENTIK_POSTGRESQL__USER: <authentik-user>
      AUTHENTIK_POSTGRESQL__NAME: <authentik-db>
      AUTHENTIK_POSTGRESQL__PASSWORD: <authentik-db-pwd>
      AUTHENTIK_SECRET_KEY: <authentik-secret>
      AUTHENTIK_EMAIL__HOST: mail.onesystems.ch
      AUTHENTIK_EMAIL__PORT: 25
      AUTHENTIK_EMAIL__TIMEOUT: 10
      AUTHENTIK_EMAIL__FROM: authentik@onesystems.ch
    volumes:
      - /docker/authentik/media:/media
      - /docker/authentik/templates:/templates
      - /docker/authentik/geoip:/geoip
    ports:
      - "2030:9000"
      - "2031:9443"
    depends_on:
      - postgresql
      - redis

  worker:
    image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2023.6.1}
    restart: unless-stopped
    command: worker
    environment:
      AUTHENTIK_REDIS__HOST: redis
      AUTHENTIK_POSTGRESQL__HOST: postgresql
      AUTHENTIK_POSTGRESQL__USER: <authentik-user>
      AUTHENTIK_POSTGRESQL__NAME: <authentik-db>
      AUTHENTIK_POSTGRESQL__PASSWORD: <authentik-db-pwd>
      AUTHENTIK_SECRET_KEY: <authentik-secret>
      AUTHENTIK_EMAIL__HOST: <email-server>
      AUTHENTIK_EMAIL__PORT: 25
      AUTHENTIK_EMAIL__TIMEOUT: 10
      AUTHENTIK_EMAIL__FROM: <from-mail>
    user: root
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /docker/authentik/media:/media
      - /docker/authentik/certs:/certs
      - /docker/authentik/templates:/templates
      - /docker/authentik/geoip:/geoip

    depends_on:
      - postgresql
      - redis

  geoipupdate:
    image: ghcr.io/maxmind/geoipupdate:latest
    restart: unless-stopped
    volumes:
      - /docker/authentik/geoip:/usr/share/GeoIP
    environment:
      - GEOIPUPDATE_ACCOUNT_ID=<maxmind-user>
      - GEOIPUPDATE_LICENSE_KEY=<maxmind-api-key>
      - GEOIPUPDATE_EDITION_IDS=GeoLite2-ASN GeoLite2-City GeoLite2-Country
      - GEOIPUPDATE_FREQUENCY=8

Damit der Composer die Conatainer auch einrichten und starten kann müssen noch folgende Ordner angelegt werden auf dem Docker Host:

  • /docker/authentik/database
  • /docker/authentik/redis
  • /docker/authentik/media
  • /docker/authentik/templates
  • /docker/authentik/certs
  • /docker/authentik/geoip

 

Reverse Proxy (NPM)

Damit ein Zertifikat und der IDP direkt und ohne zusätzlichen Port erreichbar ist greife ich auf den Nginx Proxy Manger (NPM) zurück, es können natürlich auch Caddy, HAProxy oder Traefik dafür verwendet werden.

https://nginxproxymanager.com/setup/#using-mysql-mariadb-database

 

Anmelden

Am NPM kann man sich mit den folgenden Daten Anmelden:

Url: http://dockerhost:81

Benutzer: admin@example.com

Passwort: changeme

 

Zertifikat hinzufügen

Nach dem Anmelden und dem zurücksetzen der Standard Anmeldedaten sollte entweder das Offizielle Zertifikat oder ein Let’s Encrypt Konto erstellt werden. «SSL Certificates -> Add SSL Certificate» öffnen und hinzufügen.

 

Proxy Host hinzufügen

Über «Hosts -> Proxy Hosts» kann nun der erste Eintrag für authentik erstellt werden.

Sobald alles vorbereitet ist, muss nur noch der öffentliche DNS und die Firewall konfiguriert werden damit der Dienst von Extern erreichbar wird.

 

Basis Konfiguration

Anmelden

Am System kann man sich, sofern alles funktioniert hat beim Erstellen der Container mit der im NPM hinterlegten Domäne Anmelden+.

  • Benutzer: https://id.domain.ch/if/user
  • Administration: https://id.domain.ch/if/admin

 

Tenants

Für den wiedererkennungswert sollte unter «System -> Tenants» einen neuen Eintrag erstellt werden mit den Angaben unter der der Dienst von extern erreichbar ist. Als Idee wäre hier z.B. id.domain.ch oder auth.domain.ch zu verwenden.

Weiter kann nun auch der Name, Logo und Favicon angepasst werden damit auf den ersten blick klar ist wem der Dienst gehört.

 

Benutzerverwaltung

Diejenigen die bereits ein Microsoft Active Directory oder LDAP-Dienst betreiben können nun die bestehenden Benutzer und Gruppen mit dem authentik System Synchronisieren, alternativ kann auch darauf verzichtet werden und die Benutzer von Hand im System angelegt werden.

Die Synchronisation kann unter «Directory -> Federation & Social login» eingerichtet werden, dabei kann auf eine grössere auswahl an Providern zurückgegriffen werden.

  • Apple
  • Azure AD
  • Discord
  • Facebook
  • GitHub
  • Googel
  • LDAP
  • Mailcow
  • Okta
  • OpenID
  • Patreon
  • Plex
  • Reddit
  • SAMML
  • Twitch
  • Twitter

 

  • Tweet
Tagged under: Identitätsanbieter, Identity provider, IDP, LDAP, SAML, SSO

About Michael Kleger

What you can read next

Docker Desktop unter Ubuntu installieren
Mailrelay + SMTP OAuth Relay: SMTP ohne Passwort, bereit für Microsoft 365
Ein schlanker SMTP-Relay-Container für moderne Infrastrukturen

Schreibe einen Kommentar Antwort abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden.

Letzten Beiträge

  • Mailrelay + SMTP OAuth Relay: SMTP ohne Passwort, bereit für Microsoft 365

    Dieser Beitrag ist Teil 2 der Mailrelay-Serie u...
  • Ein schlanker SMTP-Relay-Container für moderne Infrastrukturen

    Warum ein eigenes Mailrelay? In vielen Infrastr...
  • Der GNOME-Login ist weg – so bringst du ihn zurück

    Nach einem Update oder Neustart kann es passier...
  • Wie die Remmina Verbindungen in Tabs statt in neuen Fenstern öffnen

    Wer regelmässig mit Remmina arbeitet, kennt das...
  • Dateien mit Sonderzeichen sicher löschen

    Beim Arbeiten auf Linux-Servern kann es vorkomm...

Neueste Kommentare

  • Ein schlanker SMTP-Relay-Container für moderne Infrastrukturen - OneSystems GmbH bei Mailrelay + SMTP OAuth Relay: SMTP ohne Passwort, bereit für Microsoft 365
  • Mailrelay + SMTP OAuth Relay: SMTP ohne Passwort, bereit für Microsoft 365 - OneSystems GmbH bei Ein schlanker SMTP-Relay-Container für moderne Infrastrukturen
  • Michael Kleger bei Festplatte einer Virtuellen Maschine verkleinern
  • Harald Strauch bei Festplatte einer Virtuellen Maschine verkleinern
  • Michael Kleger bei Mac OS X 10.11El Capitan‎: ISO für Installation erstellen

Categories

  • b1gMail
  • CentOS
  • Debian
  • Docker
  • Identitätsanbieter
  • Linux
  • Mac OSX
  • Microsoft Exchange
  • Microsoft Outlook
  • Migration
  • Mint
  • Monitoring
  • Neuigkeiten
  • Nextcloud
  • PowerShell
  • Python
  • Raspberry Pi
  • Sicherheit
  • Tipps und Tricks
  • Ubuntu
  • VMware
  • Webseiten
  • Webserver
  • Windows
  • Windows zu Linux

Die OneSystems GmbH mit Sitz in Wattwil ist ein unabhängiger IT-Dienstleister für die Planung, Umsetzung und den Betrieb moderner IT-Infrastrukturen, Weblösungen und individueller Software. Wir begleiten Unternehmen ganzheitlich von der Konzeption bis zum laufenden Betrieb und übernehmen dabei sowohl technische Verantwortung als auch den langfristigen Support.

Unsere Kunden stammen aus der Schweiz, Deutschland und Österreich und vertrauen auf Lösungen, die stabil, sicher und nachvollziehbar aufgebaut sind. Statt kurzlebiger Trends setzen wir auf saubere Architektur, etablierte Standards und nachhaltige Qualität, damit Systeme nicht nur heute funktionieren, sondern auch morgen noch beherrschbar bleiben.

Letzten Blog Posts

  • Mailrelay + SMTP OAuth Relay: SMTP ohne Passwort, bereit für Microsoft 365

  • Ein schlanker SMTP-Relay-Container für moderne Infrastrukturen

  • Der GNOME-Login ist weg – so bringst du ihn zurück

Kontakt

Email: Kontaktformular

OneSystems GmbH
Grindlenstrasse 9
9630 Wattwil
Schweiz

Copyright © 2018-2026 OneSystems GmbH, Alle Rechte vorbehalten.
Impressum | Datenschutzerklärung | AGBs | Kontakt

TOP