dorfteich/docs/vs-nfd
Claude Fable 5 4c7f001cab
Some checks failed
CI / Lint, typecheck, test (pull_request) Successful in 6m44s
CI / Build container images (pull_request) Successful in 4m42s
CI / Auth e2e pack (pull_request) Successful in 9m15s
CI / Import/export fidelity gate (pull_request) Successful in 59s
CD / Deploy to Test (push) Blocked by required conditions
CD / Smoke tests against Test (push) Blocked by required conditions
CD / Promote to Int (push) Blocked by required conditions
CI / Auth e2e pack (push) Blocked by required conditions
CI / Import/export fidelity gate (push) Blocked by required conditions
CI / Build container images (push) Blocked by required conditions
CD / Build and push images (push) Has been cancelled
CI / Lint, typecheck, test (push) Has been cancelled
#215: trusted reverse-proxy header / mTLS client-certificate path
For perimeters that authenticate before the application (ADR 0021 §4).
Off unless BOTH AUTH_PROXY_HEADER and AUTH_PROXY_TRUSTED_PEERS are set —
nothing about the header is guessed. The peer check runs against the TCP
peer address only (a forwarded header is attacker-influenced): a request
carrying the header from any other peer is rejected outright and audited
as auth.proxy_rejected (catalogue v1.4) — that is a spoof attempt, not a
misconfiguration — even when a valid session cookie rides along. From a
trusted peer the header IS the identity; a session cookie never
escalates beyond it; with the feature off the header is inert.

Mapping is explicit (AUTH_PROXY_MAP: username or e-mail); deliberately
no just-in-time creation — the header carries no verified address. The
mTLS variant (AUTH_PROXY_MODE=mtls-dn) maps the configured attribute
(default CN) out of the certificate subject DN the TLS terminator
forwards, under the same peer rules. Session-less proxy requests key the
read trail per user (user:<id>).

The trust boundary is stated in security.md (the section an assessor
reads closest), the VS-NfD security documentation and the hardening
guide's deploy table. Tests cover all four decisions: off = inert,
trusted peer authenticates (username and DN mapping), untrusted peer
rejected + audited, no escalation past a session cookie.

Refs #215.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AUtYMxwTCMHG9mVHnwbFg8
2026-07-31 12:50:09 +02:00
..
00-analyse-auftrag.md docs: VS-NfD readiness planning (ist-aufnahme, plan, ADRs 0019-0026, issue drafts) 2026-07-30 01:48:05 +02:00
10-ist-aufnahme.md docs: VS-NfD readiness planning (ist-aufnahme, plan, ADRs 0019-0026, issue drafts) 2026-07-30 01:48:05 +02:00
20-massnahmenplan.md #215: trusted reverse-proxy header / mTLS client-certificate path 2026-07-31 12:50:09 +02:00
30-issue-adr-auftrag.md docs: VS-NfD readiness planning (ist-aufnahme, plan, ADRs 0019-0026, issue drafts) 2026-07-30 01:48:05 +02:00
31-issue-entwurf.md docs: VS-NfD readiness planning (ist-aufnahme, plan, ADRs 0019-0026, issue drafts) 2026-07-30 01:48:05 +02:00
40-abgrenzungserklaerung.md #227: hardening guide with the VS-NfD reference configuration 2026-07-31 10:35:26 +02:00
50-haertungsleitfaden.md #215: trusted reverse-proxy header / mTLS client-certificate path 2026-07-31 12:50:09 +02:00
60-sicherheitsdokumentation.md #215: trusted reverse-proxy header / mTLS client-certificate path 2026-07-31 12:50:09 +02:00
70-betriebshandbuch.md #229: operations manual (install, update, backup/restore, deletion, roles) 2026-07-31 10:35:26 +02:00
80-grundschutz-mapping.md #230: IT-Grundschutz mapping for APP.3.1 and CON.11.1 2026-07-31 10:35:26 +02:00
90-restrisiken.md #231: residual-risk list 2026-07-31 10:35:26 +02:00