Zeiten und Entscheidungen der Sitzung festhalten. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
33 lines
2.2 KiB
Markdown
33 lines
2.2 KiB
Markdown
# #035 Lokale Benutzerkonten
|
||
**Status:** erledigt
|
||
**Meilenstein:** v1.0.0
|
||
**Labels:** sicherheit, backend, ui
|
||
**Geschätzt:** 2 h **Tatsächlich:** 0 h 35 min
|
||
|
||
## Ziel
|
||
sshkv ohne authentik in Betrieb nehmen können – mit eigenen Konten je Person statt eines geteilten Notfall-Admins, damit Rollen und Audit-Log stimmen. Später laufen lokale Konten und OIDC nebeneinander, oder die lokalen werden abgeschaltet.
|
||
|
||
## Aufgaben
|
||
- [x] Anmeldung mit Anmeldename, Passwort und Pflicht-TOTP für lokale Konten (gleicher Ablauf wie der Notfall-Admin)
|
||
- [x] Einmal-Passwort vom System, Pflichtwechsel bei der ersten Anmeldung (`passwortWechselNoetig`, Seite `/anmelden/passwort`)
|
||
- [x] Benutzerverwaltung `/einstellungen/benutzer`: anlegen, Rolle ändern, sperren/entsperren, zurücksetzen – Recht `benutzerVerwalten` (Admin + frische Bestätigung)
|
||
- [x] OIDC-Konten nur sperrbar; Notfall-Admin und eigenes Konto unveränderlich
|
||
- [x] Schalter `SSHKV_LOKALE_KONTEN` (Standard an), auch in `docker-compose.yml`
|
||
- [x] Protokoll für alle Schritte, nie mit Passwort
|
||
- [x] Doku: Handbuch, Installation („Ohne authentik starten“), Sicherheit, Abnahme-Liste
|
||
|
||
## Akzeptanzkriterien
|
||
- [x] DB-Tests: erste Anmeldung (Einmal-Passwort → eigenes → TOTP → angemeldet), schwache/unveränderte Passwörter, doppelte Namen, Rollen- und Sperrregeln, Zurücksetzen, abgeschaltet
|
||
- [x] E2E: Admin legt an, Person meldet sich zum ersten Mal an, Operator kommt nicht in die Benutzerverwaltung, Sperren beendet die Sitzung sofort
|
||
|
||
## Abhängigkeiten
|
||
#004
|
||
|
||
## Notizen / Entscheidungen
|
||
- **TOTP ist Pflicht** auch für lokale Konten (Entscheidung Florian, 12.10.2026).
|
||
- **Dauerhaft, aber abschaltbar** per `SSHKV_LOKALE_KONTEN=0` (Entscheidung Florian, 12.10.2026).
|
||
- **Admins wählen keine Passwörter für andere:** sshkv erzeugt ein Einmal-Passwort (4 × 5 Zeichen ohne verwechselbare Zeichen, gut 115 Bit), das genau einmal angezeigt wird.
|
||
- **12 Zeichen Mindestlänge** für eigene Passwörter – mit Pflicht-TOTP ausreichend; der Notfall-Admin behält 16.
|
||
- **Sperren beendet Sitzungen sofort** (`sitzungenGueltigAb`); eine Rollenänderung verwirft die gespeicherte Bestätigung.
|
||
- Lokale Konten bekommen keine E-Mail-Adresse, damit die OIDC-Verknüpfung per E-Mail nie ein lokales Konto übernehmen kann.
|