fix: Hinter einem Reverse Proxy zeigte die SSO-Rueckleitung nach innen

Die Adresse, an die der Anmeldedienst zurueckschickt, wurde aus der Anfrage
abgeleitet. Hinter einem Proxy ist das die INTERNE – http://10.0.0.5:8071/… –,
denn uvicorn lief ohne --proxy-headers. Der Anmeldedienst haette die
Rueckleitung abgewiesen, mit einer Meldung, die nicht sagt, woran es liegt.

APP_PUBLIC_BASE_URL sagt es ihm jetzt ausdruecklich. Leer bleiben darf sie
weiterhin: ohne Proxy und in der Entwicklung genuegt die Anfrage.

Die Referenz-Unit bekommt zusaetzlich --proxy-headers. Das hilft neuen
Installationen; bestehende ruehrt update.sh nicht an, deshalb ist die
Einstellung der verlaessliche Weg.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-09-09 19:39:51 +02:00
co-authored by Claude Opus 5
parent 7690718731
commit bd2c623136
5 changed files with 71 additions and 6 deletions
+4 -1
View File
@@ -17,7 +17,10 @@ EnvironmentFile=/etc/certain-finance/env
# Adresse/Port kommen aus der EnvironmentFile. APP_BIND_HOST=0.0.0.0 macht den
# Dienst direkt über http://<LXC-IP>:<APP_PORT> erreichbar; 127.0.0.1 beschränkt
# ihn auf einen Reverse-Proxy auf demselben Host.
ExecStart=/opt/certain-finance/backend/.venv/bin/uvicorn app.main:app --host ${APP_BIND_HOST} --port ${APP_PORT}
# --proxy-headers: Hinter einem Reverse Proxy sieht der Dienst sonst nur dessen
# interne Adresse. Fuer die Rueckleitung der SSO-Anmeldung zaehlt aber die
# oeffentliche – setz zusaetzlich APP_PUBLIC_BASE_URL, dann ist sie eindeutig.
ExecStart=/opt/certain-finance/backend/.venv/bin/uvicorn app.main:app --host ${APP_BIND_HOST} --port ${APP_PORT} --proxy-headers --forwarded-allow-ips=*
Restart=on-failure
RestartSec=3
+6
View File
@@ -37,6 +37,12 @@ APP_ECB_FETCH_ON_START=true
# Wird vom Install-/Update-Skript gesetzt (kurzer Git-Commit, für /api/version).
APP_GIT_SHA=
# Unter welcher Adresse Certain von aussen erreichbar ist – ohne Pfad am Ende.
# Nur nötig für die SSO-Anmeldung (siehe unten), dort aber wichtig: Hinter einem
# Reverse Proxy käme sonst die INTERNE Adresse heraus (http://10.0.0.5:8071/…),
# und der Anmeldedienst weist die Rückleitung ab.
#APP_PUBLIC_BASE_URL=https://certain.example.com
# --- Anmeldung über einen fremden Dienst (OpenID Connect) --------------------
#
# Optional. Bleibt APP_OIDC_PROVIDERS leer, ändert sich nichts: Es gibt weiter