40 lines
1.5 KiB
Markdown
40 lines
1.5 KiB
Markdown
ID: DOC_000003 | Version: 0.2.2 | Status: Draft
|
||
Archived – superseded by new documentation.
|
||
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`).
|
||
- 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/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.
|