Worum es geht
Eine Mandanten-Administratorin will eine Kollegin in ihren Mandanten holen. Dafür gibt es die Variante TENANT_ADMIN: Sie schickt Adresse und Namen, CIAS verschickt eine Mail mit Link, und wenn die Kollegin den Link einlöst, ist sie Mitglied.
Der Ablauf
sequenceDiagram
participant A as Admin (Mandant nordbau)
participant C as CIAS
participant K as Keycloak
participant M as E-Mail
participant B as Benutzer
A->>C: POST /cias/tenant/registrations<br/>email, firstName, lastName
C->>C: Rolle tenant-admin? Mandant aus dem Token: nordbau
C->>K: Konto deaktiviert anlegen (nur bei neuer Adresse)
C->>M: Mail mit Link
C-->>A: 202
M-->>B: Mail
B->>C: löst den Link ein
C->>K: freischalten, Mitglied in nordbau, Mitgliedsrollen
C->>M: Willkommensmail
Die Varianten
- Konto wird deaktiviert angelegt
- Mail
VERIFY_EMAILmit Link - nach dem Klick: freischalten, Passwort bei Keycloak setzen
- Mitglied in
nordbaumit den Mitgliedsrollen
- kein neues Konto
- Mail
MEMBERSHIP_INVITATIONmit Link - Passwort und Konto bleiben unberührt
- nach dem Klick: Mitglied in
nordbau, zusätzlich zu den bisherigen Mandanten
Wann: Der Aufruf enthält "tenantKey": "suedlogistik".
CIAS verwirft das Feld, ohne es zu prüfen. Die Einladung gilt für den Mandanten aus dem Token der Einladenden.
Ergebnis: Die Person wird Mitglied in nordbau, nicht in suedlogistik.
Wann: Das Token der aufrufenden Person trägt keinen Mandanten.
Ohne Mandant weiß CIAS nicht, wohin eingeladen wird.
Ergebnis: 403 cias.registration.not-authorized
Wann: Die aufrufende Person hat nicht alle Rollen aus required-caller-roles (ausgeliefert: tenant-admin).
Ergebnis: 403 cias.registration.not-authorized
Was die Einladende angeben muss
Die Felder legt die Konfiguration des Ablaufs fest. In cias-runtime ist nur email Pflicht, firstName und lastName sind freiwillig. Was die Einladende offen lässt, zeigt der Link später als offenes Feld an, siehe Eine Einladung einlösen.
Wie lange der Link gilt, steht ebenfalls in der Konfiguration (token-ttl). In cias-runtime sind es 14 Tage.
Weiter
- Eine Einladung einlösen
- Die E-Mail ist das Konto
- Startrollen als Regelwerk: welche Rollen Mitglieder bekommen