feat(auth): Forward-Auth via JWT-Cookie (YunoHost yunohost.portal)
Discovery zeigte: YunoHost reicht den Usernamen nicht als Header durch, sondern im signierten Cookie "yunohost.portal" (JWT, Claim "user"). Die Forward-Auth liest jetzt die Identitaet aus Header ODER Cookie - nur von der Proxy-Quell-IP akzeptiert. HS256-Signaturpruefung optional via TRUSTED_AUTH_JWT_SECRET (stdlib hmac, kein Dep). - config: trusted_auth_cookie / _cookie_claim / _jwt_secret - nginx-Vorlage + deploy/README: keine Identitaets-Header-Zeile mehr noetig; SSO-Schutz der Subdomain ist Pflicht (sonst Spoofing) - Tests: Cookie-Extraktion, Signaturpruefung, Proxy-IP-Trust Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
1899663308
commit
881a5ac2de
6 changed files with 169 additions and 27 deletions
|
|
@ -24,9 +24,12 @@ AUTH_ENABLED=true
|
|||
# Schluessel fuer die Nutzerverwaltung (POST /api/admin/users). Nur ueber die Umgebung.
|
||||
ADMIN_API_KEY=
|
||||
|
||||
# Forward-/Trusted-Header-Auth via Reverse-Proxy/SSO (z. B. YunoHost). Nur fuer
|
||||
# Remote-Betrieb - siehe deploy/README.md. Lokal leer lassen.
|
||||
# TRUSTED_AUTH_HEADER=X-Remote-User
|
||||
# Forward-Auth via Reverse-Proxy/SSO (z. B. YunoHost). Nur fuer Remote-Betrieb -
|
||||
# siehe deploy/README.md. Lokal leer lassen. Identitaet per Header ODER Cookie:
|
||||
# TRUSTED_AUTH_HEADER=X-Remote-User # falls der Proxy einen Header setzt
|
||||
# TRUSTED_AUTH_COOKIE=yunohost.portal # YunoHost: Username im JWT-Cookie
|
||||
# TRUSTED_AUTH_COOKIE_CLAIM=user
|
||||
# TRUSTED_AUTH_JWT_SECRET= # optional: HS256-Signatur pruefen
|
||||
# TRUSTED_PROXY_IPS=192.168.0.10
|
||||
# ADMIN_USERS=atoor,dieterschlueter,dschlueter
|
||||
# SSO_LOGOUT_URL=https://linix.de/yunohost/sso/?action=logout
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue