Files
breadcrumb-the-shire/docs/howto-auth-sso-smoke-test.md

79 lines
2.5 KiB
Markdown
Raw Permalink Normal View History

2026-02-23 12:58:19 +01:00
# Auth/SSO Smoke-Test
Letzte Aktualisierung: 2026-03-06
2026-02-23 12:58:19 +01:00
Dieser Runbook prüft die 5 kritischen Flows nach Auth/SSO-Änderungen:
- Login (Passwort)
- Microsoft Start
- Microsoft Callback
- Tenant-SSO speichern
- Logout
## Voraussetzungen
- Test-User ist aktiv und hat mindestens einen aktiven Tenant.
- Es gibt einen Tenant mit Microsoft-SSO-Konfiguration.
- Für Microsoft-Flow: gültige Tenant-SSO-Credentials vorhanden (Shared oder Override).
- Testumgebung läuft und du bist als Admin eingeloggt.
## 1) Login (Passwort)
1. `login` aufrufen (optional `login?tenant=<slug>`).
2. Gültige E-Mail + Passwort eingeben.
3. Erwartung:
- Login erfolgreich, Redirect auf `admin`.
- Session enthält `user`, `available_tenants`, `current_tenant`.
- Kein Fehler-Flash.
Negativtest:
- Falsches Passwort -> generischer Fehler (kein Account-Leak), kein Login.
## 2) Microsoft Start (`auth/microsoft/start`)
1. `auth/microsoft/start?tenant=<slug>` aufrufen.
2. Erwartung:
- Bei gültigem Tenant + SSO-Config: Redirect zur Microsoft-Authorize-URL.
- URL enthält `state`, `nonce`, PKCE (`code_challenge`).
3. Negativtest:
- Ungültiger Tenant-Slug -> Redirect auf `login` mit passendem Flash.
- SSO deaktiviert/inkomplett -> Redirect zurück auf Tenant-Login mit passendem Flash.
## 3) Microsoft Callback (`auth/microsoft/callback`)
1. Erfolgreichen Callback durchlaufen lassen.
2. Erwartung:
- `state` wird einmalig konsumiert (kein Replay).
- ID-Token-Prüfungen greifen (`aud`, `iss`, `tid`, `exp/nbf`, `nonce`, Signatur).
- User wird verknüpft/provisioniert und auf `admin` weitergeleitet.
Negativtests:
- Callback mit altem/wiederverwendetem `state` -> Login schlägt sauber fehl.
- Callback ohne `code`/mit Fehler -> Redirect `login` mit Fehler-Flash.
## 4) Tenant-SSO speichern (Admin)
1. `admin/tenants/edit/<uuid>` öffnen, Tab `SSO`.
2. Pflichtwerte setzen:
- `Microsoft login` aktiv
- `Entra tenant ID`
- Shared App oder Override-Credentials vollständig
3. Speichern.
4. Erwartung:
- Save erfolgreich.
- UI-Status „Konfiguration vollständig“.
- Bei `enforce_microsoft_login=1` und unvollständiger Config: Save wird blockiert.
## 5) Logout
1. Als eingeloggter User `logout` aufrufen.
2. Erwartung:
- Session beendet.
- Remember-Me Token wird vergessen.
- Redirect auf `login`.
## Schnellcheck (optional)
- In Browser A einloggen, dann in Browser B denselben User ändern (z. B. deaktivieren).
- In Browser A nächste Anfrage auslösen.
- Erwartung: bestehende Session-Refresh-Logik greift (ggf. Logout bei inaktiv/ohne Tenant).