Worum es geht
Jeder Benutzerdatensatz hat einen Status. Er sagt, ob die Person die Anwendung nutzen darf. In Keycloak gibt es dafür nur „aktiviert“ oder „deaktiviert“; CIAS unterscheidet vier Zustände, weil „gesperrt“ und „geschlossen“ fachlich etwas anderes bedeuten.
Das Zustandsdiagramm
stateDiagram-v2
direction LR
[*] --> PENDING: Datensatz angelegt
PENDING --> ACTIVE: aktivieren
PENDING --> SUSPENDED: sperren
ACTIVE --> SUSPENDED: sperren
SUSPENDED --> ACTIVE: reaktivieren
PENDING --> CLOSED: schließen
ACTIVE --> CLOSED: schließen
SUSPENDED --> CLOSED: schließen
CLOSED --> [*]
Die vier Zustände
| Status | Bedeutung | In Keycloak | Kann sich anmelden |
|---|---|---|---|
PENDING | Datensatz angelegt, noch nicht aktiviert. Kommt meist nur kurz vor, während eine Registrierung abgeschlossen wird, oder nach der Übernahme eines Kontos, das in Keycloak nicht aktiv war | unverändert | nein |
ACTIVE | aktiv | aktiviert | ja |
SUSPENDED | gesperrt, etwa bei Verdacht auf Missbrauch oder während einer Klärung | deaktiviert | nein |
CLOSED | geschlossen, das Konto ist dauerhaft beendet | deaktiviert | nein |
Die Übergänge
Wann: am Ende einer Registrierung, bei der Übernahme eines aktiven Kontos, oder per POST /cias/admin/users/{id}/reactivate
Aus jedem Zustand außer CLOSED. Ist die Person schon aktiv, ändert sich nichts. CIAS schaltet das Konto in Keycloak frei.
Ergebnis: ACTIVE, Event Activated
Wann: POST /cias/admin/users/{id}/suspend mit Grund
Aus PENDING oder ACTIVE. CIAS deaktiviert das Konto in Keycloak.
Ergebnis: SUSPENDED, Event Suspended mit dem Grund
Wann: POST /cias/admin/users/{id}/close mit Grund
Aus jedem Zustand. CIAS deaktiviert das Konto in Keycloak, gelöscht wird nichts. Schließen ist endgültig.
Ergebnis: CLOSED, Event Closed mit dem Grund
Warum CLOSED endgültig ist
Ein geschlossenes Konto lässt sich weder reaktivieren noch sperren noch in einen anderen Mandanten umziehen. Ein solcher Versuch endet mit 409 cias.user.invalid-state.
Der Grund: Schließen soll ein klarer Schlussstrich sein, etwa wenn jemand das Unternehmen verlässt. Könnte man ein geschlossenes Konto wieder öffnen, wäre „geschlossen“ nur ein anderes Wort für „gesperrt“.