39 lines
1.4 KiB
Markdown
39 lines
1.4 KiB
Markdown
ID: DOC_000003 | Version: 0.1.0 | Status: Draft
|
|
By: Codex (GPT-5)
|
|
|
|
# OIDC End-to-End Validation (Kiddo)
|
|
|
|
## Purpose
|
|
Validiere den OIDC-Login-Flow gegen einen realen oder Stub-Provider und dokumentiere Ergebnisse.
|
|
|
|
## Preconditions
|
|
- Kiddo laeuft und ist erreichbar (z.B. `http://localhost:8000`).
|
|
- OIDC Provider oder Stub erreichbar.
|
|
- `SKD_AUTH_MODE=oidc` und `SKD_OIDC_*` gesetzt.
|
|
- Redirect-URI: `https://<device-host>[:port]/login/oidc/callback` ist registriert.
|
|
|
|
## Validation Steps
|
|
1. OIDC Start
|
|
- Aufruf: `GET /login/oidc/start`
|
|
- Erwartet: Redirect zum Provider, State-Cookie gesetzt.
|
|
2. Callback
|
|
- Provider ruft `GET /login/oidc/callback?code=...&state=...` auf.
|
|
- Erwartet: State valid, Token-Exchange erfolgreich, Session-Cookie gesetzt, Redirect `/`.
|
|
3. Session Check
|
|
- Aufruf: `GET /me` mit Cookie oder Bearer.
|
|
- Erwartet: `user` und `auth_mode=oidc`.
|
|
4. Allowlist
|
|
- Falls `SKD_AUTH_ALLOWED_USERS` gesetzt: nicht erlaubte User werden mit 403 abgewiesen.
|
|
|
|
## Results
|
|
- Datum: 28.12.2025
|
|
- Provider: nicht konfiguriert (IdP noch nicht bereit)
|
|
- Host/Redirect: n/a
|
|
- Ergebnis: Blocked (Service nicht erreichbar unter http://localhost:8000/health)
|
|
- Fehlerbilder: curl (7) Couldn't connect to server
|
|
|
|
## Fallbacks bei unvollstaendigem IdP
|
|
- Discovery/JWKS fehlt: OIDC deaktivieren und PAM nutzen.
|
|
- DCR fehlt: Client manuell im IdP anlegen und `SKD_OIDC_*` setzen.
|
|
- TLS-Probleme: CA trusten oder PAM fuer Dev nutzen.
|