ADR-0019 Nachtrag: Self-Service-Passwortänderung
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
d91167b7f0
commit
5eabdbd180
@ -113,3 +113,37 @@ Organization-Kontaktfelder ergänzt. `benutzer` (inkl. der neuen
|
|||||||
Tabelle lebt in `kundenplattform`s eigener, von `provisioning-server`
|
Tabelle lebt in `kundenplattform`s eigener, von `provisioning-server`
|
||||||
getrennter Datenbank (siehe ADR-0011) und war schon vorher nicht
|
getrennter Datenbank (siehe ADR-0011) und war schon vorher nicht
|
||||||
Bestandteil dieses Dokuments.
|
Bestandteil dieses Dokuments.
|
||||||
|
|
||||||
|
## Nachtrag 26.08.2026: Self-Service-Passwortänderung
|
||||||
|
|
||||||
|
Der ursprüngliche Umfang dieser ADR deckte Kontenverwaltung (Anlegen/
|
||||||
|
Löschen fremder Konten durch `require_org_admin`) ab, aber keine
|
||||||
|
Möglichkeit für einen Nutzer, sein **eigenes** Passwort zu ändern — dafür
|
||||||
|
war bislang ausschließlich das CLI-Skript `scripts/reset_password.py`
|
||||||
|
(aus der Sicherheitshärtung vom 25.08.2026) zuständig, nicht per
|
||||||
|
Self-Service erreichbar.
|
||||||
|
|
||||||
|
Neue Route `POST /organisation/passwort`, neue Sektion „Mein Konto" auf
|
||||||
|
derselben `/organisation`-Seite. Bewusst **ohne** `require_org_admin` —
|
||||||
|
anders als Kontenverwaltung für Dritte braucht das eigene Passwort keine
|
||||||
|
besondere Rolle, jedes eingeloggte Konto darf es ändern. Prüft das
|
||||||
|
aktuelle Passwort über `user_manager.authenticate()` (gleiches Muster wie
|
||||||
|
der Login in `auth.py`), validiert das neue Passwort explizit gegen die
|
||||||
|
bestehende `UserManager.validate_password()`-Policy (≥12 Zeichen, nicht
|
||||||
|
gleich der E-Mail-Adresse, siehe Sicherheitshärtung 25.08.2026) und zeigt
|
||||||
|
Fehler inline auf derselben Seite statt als nackte `HTTPException` —
|
||||||
|
dafür wurde die Kontext-Beschaffung aus `organisation_ansicht()` in eine
|
||||||
|
gemeinsame Hilfsfunktion `_organisation_kontext()` ausgelagert.
|
||||||
|
|
||||||
|
Bekannte, akzeptierte Einschränkung: die JWT-Session bleibt nach einer
|
||||||
|
Passwortänderung bis zu ihrem regulären Ablauf gültig (kein
|
||||||
|
Session-Revocation-Mechanismus vorhanden, war auch vorher schon so) —
|
||||||
|
ein bereits eingeloggtes Gerät wird durch eine Passwortänderung nicht
|
||||||
|
automatisch ausgeloggt.
|
||||||
|
|
||||||
|
Live auf anode verifiziert (WLAN-Test-Fixture-Konto, Passwort danach auf
|
||||||
|
den dokumentierten Fixture-Wert zurückgesetzt): falsches aktuelles
|
||||||
|
Passwort, zu kurzes neues Passwort, nicht übereinstimmende Wiederholung
|
||||||
|
liefern je `400` mit der passenden Inline-Fehlermeldung; der Erfolgsfall
|
||||||
|
liefert `303`, das alte Passwort funktioniert danach nicht mehr, das neue
|
||||||
|
sofort.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user