AuthN/AuthZ Vorlage

Nutze diese Vorlage, um Authentifizierungs- und Autorisierungskonzepte pro Projekt festzuhalten. Sie hilft, Audit-Fragen zu beantworten und auf die Anforderungen der Planungs- und Umsetzungsphase zu verweisen.

# Projekt <Name> – AuthN/AuthZ-Dokumentation

## Überblick
- Schutzbedarf: Vertraulichkeit Hoch, Integrität Mittel, Verfügbarkeit Hoch
- Benutzergruppen: Endkunden, Admins, Service-Accounts
- Compliance: ISO 27001 Annex A.8.28/A.8.29, DSGVO Art. 32

## Szenario 1 – Single Sign-On (Keycloak, OAuth 2.0 / OIDC)
- Identity Provider: Keycloak (Cluster `keycloak-prod`, Version 22)
- Flow: Authorization Code Flow mit PKCE, Redirect URI `https://app.example.com/callback`
- Authentifizierung
  - Primärfaktor: Unternehmens-SAML, gespiegelt nach Keycloak
  - Sekundärfaktor: TOTP via Keycloak (erzwungen über Policy `mfa-required`)
  - Session-Timeout: 15 Minuten Idle, 8 Stunden absolut
- Autorisierung
  - Token Typ: JWT Access Token (15 Min.), Refresh Token (12 Std.)
  - Claims: `roles`, `tenant`, `scope`
  - Resource Server: API-Gateway mit `spring-security-oauth2-resource-server`
  - Durchsetzung: Role-Based Access Control (RBAC) + Business Rules (Attr-Based) über Policy Engine
- Protokollierung & Monitoring
  - Login-Events in Keycloak Audit Log, Weiterleitung an SIEM
  - Fehlgeschlagene Authentifizierungsversuche triggern Alarm (`SEC-ALERT-007`)
- Referenzen & Nachweise
  - ADR `adr/0003-sso-keycloak.md`
  - Technische Konfiguration: `infra/keycloak/realm-export.json`
  - Pen-Test-Nachweis: `evidence/pentest-2024-q2.pdf` Abschnitt 4

## Szenario 2 – Eigenes Usermanagement (Application Native Auth)
- Passwortspeicherung: Argon2id (Parameters: m=65536, t=3, p=1)
- Anmeldung
  - `username + password` + verpflichtendes TOTP (Google Authenticator kompatibel)
  - Rate Limiting: 5 Fehlversuche/15 Minuten, Account Lockout 30 Minuten
  - Passwort-Policy: min. 14 Zeichen, Komplexitätsregeln, Rotation alle 180 Tage für Admins
- Autorisierung
  - internes RBAC (Rollen: `user`, `manager`, `admin`)
  - Feinere Rechte über Feature Flags + Policy Map (`config/authorization.yml`)
  - Service-zu-Service Auth: mTLS zwischen Microservices, SPIFFE IDs
- Sicherheitsmaßnahmen
  - Secrets & Keys im Vault (`secret/data/app/auth`)
  - Session Management: Signed Cookies (SameSite=Strict, Secure, HttpOnly)
  - Brute-Force-Erkennung über Fail2Ban + SIEM Alerts
- Referenzen & Nachweise
  - ADR `adr/0004-native-auth.md`
  - Code: `services/auth-service`, Security Tests `tests/security/`
  - Review: Ticket `SEC-REVIEW-012` mit Abnahmeprotokoll

## Change & Governance
- Änderungen an AuthN/AuthZ erfordern Ticket mit Risikoanalyse (`SEC-AUTH-<nr>`)
- Freigabe: Security Champion (Responsible), Product Owner (Accountable)
- Review-Zyklen: jährlich oder bei relevanten Architekturänderungen