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