Anmeldefluss mit PKCE (S256), State und Nonce. Das ID-Token wird gegen den JWKS des Anbieters geprueft — Signatur, Aussteller, Empfaenger, Ablauf und Nonce; alles Noetige kommt aus dem Discovery-Dokument, damit die Anbindung nicht auf Authentik festgelegt ist. Wiedererkannt wird jemand an der Kennung des Anbieters (sub), nicht an der E-Mail-Adresse — Adressen aendern sich. Ein bestehendes Konto mit derselben Adresse wird verknuepft statt verdoppelt, aber nur bei bestaetigter Adresse: sonst koennte sich beim Anbieter jemand eine fremde Adresse eintragen und damit ein hiesiges Konto uebernehmen. Uebernommen wird bewusst nur, wer jemand ist — plus die Instanz-Administration, wenn OIDC_ADMIN_GROUP gesetzt ist. Gruppen und Rollen bleiben Sache dieser Anwendung: die Gruppen im Verzeichnis bedeuten etwas anderes als die hier. Konten aus dem Verzeichnis haben kein Passwort mehr (passwordHash ist jetzt optional); Konto-Bereich und Passwort-Anmeldung sagen das statt an einer leeren Pruefung zu scheitern. Anleitung mit allen Feldern in Authentik: docs/authentik.md
69 lines
2.8 KiB
Bash
69 lines
2.8 KiB
Bash
# ---------------------------------------------------------------------------
|
|
# QR-Code-Generator — Konfiguration
|
|
# Diese Datei nach ".env" kopieren und anpassen:
|
|
# cp .env.example .env
|
|
# ---------------------------------------------------------------------------
|
|
|
|
# Öffentliche Adresse, unter der die App erreichbar ist. Sie wird in
|
|
# dynamische QR-Codes einkodiert ({BASE_URL}/r/{slug}) und muss deshalb von
|
|
# den Geräten erreichbar sein, die den Code scannen.
|
|
# Im LAN z. B.: http://192.168.1.50:3000
|
|
BASE_URL=http://localhost:3000
|
|
|
|
# Host-Port, unter dem die App veröffentlicht wird (Port-Mapping APP_PORT:3000).
|
|
APP_PORT=3000
|
|
|
|
# Anmeldung mit Benutzern, Gruppen und Rollen.
|
|
# false — jeder, der die App erreicht, darf alles (Einzelplatz/LAN).
|
|
# true — Anmeldung erforderlich. Beim ersten Aufruf legst du den ersten
|
|
# Administrator an.
|
|
# Bewusst hier und nicht in der Oberfläche: so kann man sich nicht aussperren.
|
|
# Wer den Zugang verliert, setzt den Wert zurück auf false und startet neu.
|
|
AUTH_ENABLED=false
|
|
|
|
# Groesste erlaubte Datei fuer die Typen "PDF" und "Bild", in Megabyte.
|
|
# Die Dateien liegen in der Datenbank — wer die sichert, hat alles. Sehr
|
|
# grosse Werte machen die Sicherung entsprechend schwer.
|
|
MAX_UPLOAD_MB=10
|
|
|
|
# --- Anmeldung ueber Authentik oder einen anderen OIDC-Anbieter -------------
|
|
# Setzt AUTH_ENABLED=true voraus. Einrichtung siehe docs/authentik.md.
|
|
OIDC_ENABLED=false
|
|
|
|
# Basis-URL des Anbieters, unter der /.well-known/openid-configuration liegt.
|
|
# Bei Authentik: https://auth.example.com/application/o/<slug>/
|
|
OIDC_ISSUER=
|
|
OIDC_CLIENT_ID=
|
|
OIDC_CLIENT_SECRET=
|
|
|
|
# Beschriftung des Knopfs auf der Anmeldeseite.
|
|
OIDC_BUTTON_LABEL=Mit Authentik anmelden
|
|
|
|
# Angeforderte Bereiche. "openid" ist Pflicht, "email" wird gebraucht.
|
|
OIDC_SCOPES=openid email profile
|
|
|
|
# Nur noch ueber den Anbieter anmelden? Dann verschwindet das Passwortfeld.
|
|
# Vorsicht: Faellt der Anbieter aus, kommt niemand mehr hinein — zum Loesen
|
|
# hier auf false setzen und neu starten.
|
|
OIDC_ONLY=false
|
|
|
|
# Rolle, die neu angelegte Benutzer in der Standardgruppe bekommen.
|
|
# VIEWER (nur lesen), EDITOR (Codes anlegen und aendern) oder ADMIN.
|
|
OIDC_DEFAULT_ROLE=VIEWER
|
|
|
|
# Gruppe beim Anbieter, deren Mitglieder die Verwaltung oeffnen duerfen.
|
|
# Leer lassen, um die Administratorrechte hier in der Anwendung zu pflegen.
|
|
OIDC_ADMIN_GROUP=
|
|
# Name des Anspruchs, in dem die Gruppen stehen (Authentik: groups).
|
|
OIDC_GROUPS_CLAIM=groups
|
|
|
|
# --- PostgreSQL ------------------------------------------------------------
|
|
POSTGRES_USER=qrcode
|
|
POSTGRES_PASSWORD=bitte-aendern
|
|
POSTGRES_DB=qrcode
|
|
|
|
# Verbindungsstring der App zur Datenbank.
|
|
# "db" ist der Servicename aus docker-compose.yml — innerhalb des Compose-
|
|
# Netzwerks wird darüber die Datenbank aufgelöst.
|
|
DATABASE_URL=postgresql://qrcode:bitte-aendern@db:5432/qrcode?schema=public
|