86 lines
3.8 KiB
Markdown
86 lines
3.8 KiB
Markdown
ID: DOC_000011 | Version: 0.2.1 | Status: Draft
|
|
By: Codex (GPT-5)
|
|
|
|
# Konfiguration
|
|
|
|
## Speicherort
|
|
Die Konfiguration erfolgt per ENV-Datei, standardmaessig `/etc/skd/env`. Vorlage: `env.example`.
|
|
|
|
## Authentifizierung
|
|
- `SKD_AUTH_MODE` (default `pam`): `pam` oder `oidc`. Ungueltige Werte fallen auf `pam` zurueck. Hinweis: Der Wert wird aktuell nicht zur Erzwingung genutzt; OIDC ist aktiv, sobald die OIDC-Variablen gesetzt sind.
|
|
- `SKD_AUTH_SECRET` (default `change-me-secret`): HMAC-Secret fuer JWTs.
|
|
- `SKD_TOKEN_TTL_SECONDS` (default `900`): Token-Laufzeit in Sekunden.
|
|
- `SKD_AUTH_ALLOWED_USERS` (default leer): Kommagetrennte Liste erlaubter Admin-User (gilt fuer PAM und OIDC).
|
|
- `SKD_AUTH_ALLOWED_GROUPS` (default `sudo`): Erlaubte Gruppen fuer PAM-Login.
|
|
- `SKD_AUTH_PAM_SERVICE` (default `login`, auf Debian/Ubuntu via `install.sh` auf `skd` gesetzt).
|
|
|
|
## OIDC
|
|
OIDC ist optional und zusaetzlich zu PAM.
|
|
- `SKD_OIDC_ISSUER`
|
|
- `SKD_OIDC_CLIENT_ID`
|
|
- `SKD_OIDC_CLIENT_SECRET`
|
|
- `SKD_OIDC_REDIRECT_URI` (default `http://localhost:8000/login/oidc/callback`)
|
|
- `SKD_OIDC_SCOPES` (default `openid profile email`)
|
|
- `SKD_SESSION_COOKIE_SECURE` (default `false`): Setze `true` fuer HTTPS.
|
|
- `SKD_OIDC_STATE_COOKIE_NAME` (default `skd_oidc_state`)
|
|
Referenz: OIDC-Service (intern) https://git.wlkns.org/stephan/oicd
|
|
|
|
### OIDC-Einbindung (Kurz)
|
|
1. Issuer setzen (muss der externen URL des IdP entsprechen):
|
|
- `SKD_OIDC_ISSUER=https://auth.example.org`
|
|
2. Client registrieren (DCR), falls der IdP es erlaubt:
|
|
```bash
|
|
export SKD_OIDC_ISSUER="https://auth.example.org"
|
|
export SKD_OIDC_REDIRECT_URI="https://kiddo.example.org/login/oidc/callback"
|
|
export OIDC_INITIAL_ACCESS_TOKEN="example-token"
|
|
./scripts/register_oidc_client.sh
|
|
```
|
|
3. Client-Credentials in `/etc/skd/env` setzen:
|
|
```
|
|
SKD_OIDC_CLIENT_ID=example-client-id
|
|
SKD_OIDC_CLIENT_SECRET=example-client-secret
|
|
SKD_OIDC_REDIRECT_URI=https://kiddo.example.org/login/oidc/callback
|
|
SKD_SESSION_COOKIE_SECURE=true
|
|
```
|
|
Hinweis: OIDC ist aktiv, sobald Issuer, Client-ID und Secret gesetzt sind.
|
|
|
|
## Session/Benutzerverwaltung
|
|
- `SKD_SESSION_COOKIE_NAME` (default `skd_session`)
|
|
- `SKD_ALLOWED_USERS` (default leer): Optionales Allowlist fuer verwaltbare System-User.
|
|
|
|
## Aktionen (Countdown/Notify/Sound)
|
|
- `SKD_DEFAULT_COUNTDOWN` (default `60` Sekunden)
|
|
- `SKD_DEFAULT_SOUND` (default `false`)
|
|
- `SKD_NOTIFY_TIMEOUT` (default `5` Sekunden)
|
|
- `SKD_NOTIFY_SEND_PATH` (default `notify-send`)
|
|
- `SKD_SOUND_PLAYER` (default `paplay`)
|
|
- `SKD_SOUND_FILE` (default `/usr/share/sounds/freedesktop/stereo/dialog-warning.oga`)
|
|
|
|
## Update-Client
|
|
- `SKD_UPDATE_SERVICE_URL` (default `https://update.wlkns.org`)
|
|
- `SKD_UPDATE_PROJECT_ID` (default `safe-kiddo-control`)
|
|
- `SKD_UPDATE_ENROLL_TOKEN` (optional; fuer `/update/enroll`)
|
|
- `SKD_UPDATE_TOKEN` (optional; alternativ per Datei)
|
|
- `SKD_UPDATE_TOKEN_FILE` (default `/var/lib/skd/update_token`)
|
|
- `SKD_UPDATE_STATUS_FILE` (default `/var/lib/skd/update_status.json`)
|
|
- `SKD_UPDATE_LOG_FILE` (default `/var/lib/skd/update_logs.jsonl`)
|
|
- `SKD_UPDATE_INTERVAL` (default `3600`): Hinweis: wird aktuell nur eingelesen, aber nicht automatisch genutzt.
|
|
|
|
## Dry-Run
|
|
- `SKD_DRY_RUN` (default `false`): Keine echten System-Aktionen, nur Logging.
|
|
|
|
## Tuning und Betrieb (Power-User)
|
|
- `SKD_TOKEN_TTL_SECONDS`: kuerzere Tokens reduzieren Risiko, laengere Tokens reduzieren Login-Haeufigkeit.
|
|
- `SKD_DEFAULT_COUNTDOWN`: steuert Nutzerwarnung vor Sperre/Shutdown.
|
|
- `SKD_NOTIFY_TIMEOUT`: Dauer der Desktop-Benachrichtigung.
|
|
- `SKD_SESSION_COOKIE_SECURE=true`: zwingend bei HTTPS, sonst Login-Cookies unsicher.
|
|
|
|
## Hinweise
|
|
- `scripts/install.sh` erstellt `/etc/skd/env` und setzt Default-Werte fuer PAM/Allowed-User.
|
|
- Aenderungen in `/etc/skd/env` erfordern einen Service-Restart (`sudo systemctl restart skd.service`).
|
|
|
|
## Weitere Dokumente
|
|
- Nutzung/Automation: `docs/USAGE.md`
|
|
- Deployment: `docs/DEPLOYMENT.md`
|
|
- Architektur: `docs/ARCHITECTURE.md`
|