Worum es geht
Die Selbstregistrierung ist der öffentliche Weg zu einem Konto: Jemand füllt ein Formular aus, ohne angemeldet zu sein. In der Variante SELF_SERVICE gründet die Person dabei typischerweise einen neuen Mandanten für ihre Firma und wird dessen erste Person.
Der Ablauf
sequenceDiagram
participant B as Benutzer
participant C as CIAS
participant K as Keycloak
participant M as E-Mail
B->>C: POST /cias/registration/self<br/>E-Mail, Vorname, Nachname, Firma
C->>C: Drosselung, Felder prüfen
C->>K: Konto deaktiviert anlegen
C->>M: Mail mit Bestätigungslink
C-->>B: 202 accepted
B->>C: klickt den Link (POST /verify)
alt Freigabe nötig
C->>M: „Ihre Registrierung wird geprüft“
Note over C: wartet auf einen Plattform-Administrator
end
C->>K: Konto freischalten
C->>K: Organisation für den neuen Mandanten
C->>C: Mandant anlegen
C->>K: Mitgliedschaft und Gründerrollen
C->>M: Willkommensmail
Das Formular
Welche Felder es gibt, liefert GET /cias/registration/flows/SELF_SERVICE/form. In der ausgelieferten Konfiguration von cias-runtime:
| Feld | Pflicht | Wofür |
|---|---|---|
email | ja | die Adresse, zugleich das Konto |
firstName, lastName | nein | Name am Konto |
company | ja | Name des neuen Mandanten und Quelle seines Schlüssels |
application | nein | aus welcher Oberfläche die Person kommt. Wählt Mail-Vorlage und Links |
Dazu kann die Anfrage Einwilligungen (consents) und eine Sprache (locale) mitschicken. Ein Passwortfeld gibt es nicht. Felder, die der Ablauf nicht kennt, werden abgelehnt.
POST /cias/registration/self
{
"email": "anna@nordbau.example",
"fields": { "firstName": "Anna", "lastName": "Berg", "company": "Nordbau GmbH" },
"locale": "de"
}202
{ "status": "accepted" }Die Varianten
Wann: Zu der Adresse gibt es noch kein Konto.
CIAS legt das Konto in Keycloak deaktiviert und unbestätigt an und schickt die Mail VERIFY_EMAIL mit dem Link.
Ergebnis: Siehe E-Mail bestätigen.
Wann: Die Adresse gehört schon zu einem aktiven, bestätigten Konto.
CIAS legt kein neues Konto an und ändert am bestehenden nichts, auch nicht das Passwort. Statt der Bestätigungsmail bekommt die Person eine andere Mail. Die Antwort an das Formular ist dieselbe wie bei einer neuen Adresse.
Ergebnis: Siehe Die E-Mail ist das Konto.
Wann: Der Ablauf verlangt eine Freigabe (approval-required: true).
Nach dem Klick geht der Vorgang nach PENDING_APPROVAL, und die Person bekommt die Mail APPROVAL_PENDING. Erst wenn ein Plattform-Administrator genehmigt, geht es weiter. In cias-runtime ist die Freigabe standardmäßig an (CIAS_SELF_SERVICE_APPROVAL), im Hub standardmäßig aus.
Ergebnis: Siehe Freigabe durch einen Administrator.
Wann: approval-required: false
Nach dem Klick beginnt sofort die Bereitstellung.
Ergebnis: Wenige Sekunden nach dem Klick kommt die Willkommensmail.
Wann: Die ausgelieferte Einstellung für SELF_SERVICE.
Aus dem Feld company entsteht der Mandantenschlüssel: Umlaute und Akzente werden zu Grundbuchstaben, alles klein, andere Zeichen werden zu -, höchstens 48 Zeichen. Aus „Nordbau GmbH“ wird nordbau-gmbh. Ist der Schlüssel schon vergeben, versucht CIAS nordbau-gmbh-2 bis -20. Bei der Bereitstellung entstehen dann Organisation und Mandant, und die Person wird Gründerin mit den Gründerrollen.
Ergebnis: Siehe Woher der Mandant kommt und Startrollen als Regelwerk.
Wann: Eine Installation stellt tenant-assignment: NONE ein.
Es entsteht kein Mandant. Die Person bekommt die Rollen der Situation TENANTLESS.
Ergebnis: Das Feld company braucht es dann nicht.
Schutz des öffentlichen Formulars
Weil das Formular ohne Anmeldung erreichbar ist, antwortet es immer gleich und ist gedrosselt: höchstens eine bestimmte Zahl von Versuchen je Adresse in einem Zeitfenster (in cias-runtime 10 in 10 Minuten). Details unter Schutz der öffentlichen Endpunkte.