feat(admin): Header-Discovery per ?key= durchs SSO aufrufbar

Beim SSO-Setup kennt das Gateway den Admin-Nutzer noch nicht (Henne-Ei). Der
Discovery-Endpoint /api/admin/request-headers akzeptiert daher zusaetzlich den
ADMIN_API_KEY als Query (?key=) oder X-Admin-Key-Header, damit man den von SSOwat
injizierten Identitaets-Header im Browser bestimmen kann. Doku entsprechend.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-06-18 05:19:41 +02:00
commit 887faa315e
2 changed files with 33 additions and 10 deletions

View file

@ -39,13 +39,17 @@ eintragen, die `map $http_upgrade …` einmalig im http{}-Kontext anlegen, dann
anlegen (Let's Encrypt) und per SSO schützen (nur erlaubte Tester/Gruppe).
## 4. Discovery: richtigen Identitäts-Header bestimmen
Als Admin **hinter dem SSO** aufrufen:
**Hinter dem SSO** aufrufen (durchs SSO-Portal einloggen, dann diese URL). Da das
Gateway den SSO-Admin zu diesem Zeitpunkt noch nicht kennt (Henne-Ei), den Admin-Key
als Query mitgeben:
```
https://assistent.linix.de/api/admin/request-headers
https://assistent.linix.de/api/admin/request-headers?key=<ADMIN_API_KEY>
```
Dort den Header finden, der den eingeloggten SSO-Usernamen trägt (z. B. `X-Remote-User`,
`Remote-User`, `Auth-User` …). Diesen Namen in `TRUSTED_AUTH_HEADER` **und** in der
nginx-`proxy_set_header …`-Zeile eintragen, Gateway + nginx neu laden.
In der Ausgabe den Header finden, der den eingeloggten SSO-Usernamen trägt (z. B.
`X-Remote-User`, `Remote-User`, `Auth-User`, oder `Authorization: Basic …` mit dem
Usernamen). Diesen Namen in `TRUSTED_AUTH_HEADER` **und** in der nginx-`proxy_set_header
`-Zeile eintragen, Gateway + nginx neu laden. Danach `?key=` nicht mehr nutzen
(landet in Proxy-Logs) bzw. den Key rotieren.
## 5. Test
- `https://assistent.linix.de/` lädt die UI, links „Angemeldet als <SSO-User>".