Worum es geht
CIAS hat eine Verwaltungs-API unter /cias/admin/…. Die Oberfläche, mit der Menschen sie bedienen, ist der Bereich Zugriff im Hub (hub-frontend), unter den Adressen /access/…. Dort legst du Mandanten an, sperrst Personen, vergibst Rollen, pflegst Gruppen, arbeitest offene Registrierungen ab und passt Mail-Texte an.
Das CIAS-Portal (cias-frontend) hat keine eigenen Verwaltungsseiten. Seine Navigation nennt weitere Bereiche nur ausgegraut, bedienen kannst du die Verwaltung im Hub. Was das Portal zeigt, steht unter Das CIAS-Portal.
Die Seitenkarte
flowchart LR
NAV["Hub<br/>Bereich „Zugriff“"] --> T["/access/tenants<br/>Mandanten"]
NAV --> U["/access/users<br/>Benutzer"]
NAV --> R["/access/registrations<br/>Registrierungen"]
NAV --> M["/access/mail-templates<br/>Mail-Vorlagen"]
NAV --> G["/access/groups<br/>Gruppen"]
NAV --> RO["/access/roles<br/>Rollen"]
T --> TD["/access/tenants/{key}<br/>ein Mandant"]
U --> UD["/access/users/{id}<br/>eine Person"]
TD -. "Benutzer des Mandanten" .-> U
/access allein leitet auf die Benutzerliste weiter. Die Reihenfolge im Menü ist Mandanten, Benutzer, Registrierungen, Mail-Vorlagen, Gruppen, Rollen.
Der Weg eines Klicks
Zwischen Browser und CIAS steht der BFF des Hubs, der Server-Teil der Oberfläche (siehe Sitzung im BFF und Cookies). Jede Verwaltungsseite ruft eine Route unter /api/hub/… auf, und diese Route ruft CIAS.
-
FrontendMenüHat die Sitzung die Rolle
platform-admin?↳ nein Bereich „Zugriff“ fehlt im Menü -
BFFBFF-RouteGültiges Access-Token und Rolle
platform-adminunter allen Rollen der Person?↳ nein 401 oder 403 „Rolle fehlt“, CIAS wird nicht gefragt -
CIASVerwaltungs-APIIst die Person Plattform-Administrator?↳ nein 403
-
CIASFachliche RegelIst der Schritt im aktuellen Zustand erlaubt?↳ nein 409 mit Fehlerschlüssel, die Seite zeigt den Text dazu
- CIAS sperrt, die Liste lädt neu
Der BFF schickt das Access-Token der Sitzung als Authorization: Bearer … mit. Für seine eigene Prüfung liest er die Realm-Rollen aus dem Token und die Client-Rollen aus dem Userinfo-Endpunkt von Keycloak. Kann er die Rollen nicht ermitteln, antwortet er 502, nicht 403.
Wer was sieht
| Konto braucht einen Mandanten und hat keinen? | Rolle platform-admin? | Was die Person im Hub sieht |
|---|---|---|
| ja | – | Leeres Menü, nur Einstellungen und Abmelden. Hinweis „Kein Mandant zugeordnet“ |
| nein | nein | Steuerung und Verwaltung, kein Bereich „Zugriff“. Eine /access/…-Adresse von Hand zeigt die Fehlermeldung „Rolle fehlt“ |
| nein | ja | Alle Seiten unter „Zugriff“ |
Die erste Zeile kommt aus GET /cias/me/tenant, siehe Selbstauskunft. Verlangt die Installation einen Mandanten und die Anfrage hat keinen, würde CIAS fast jede Seite ablehnen. Der Hub zeigt deshalb gleich den Hinweis statt einer Seite voller Fehler.
Der Hub fragt die Rolle platform-admin ab. Welche Rollen CIAS als Plattform-Administrator gelten lässt, stellt die Installation in codamai.cias.platform-administrator-roles ein. Siehe Die Realm-Rollen der Plattform.
Die Seiten
Wann: /access/tenants und /access/tenants/{key}
Die Liste zeigt jeden Mandanten mit fachlicher Stellung, Bereitstellung, Gültigkeit und der Zahl der Personen mit diesem Heimatmandanten. Mandant anlegen fragt Name, Schlüssel, Typ („Organisation“ = dynamisch, „Statisch“), bei „Organisation“ die Organisation im Identity-Provider (vorbelegt mit dem Schlüssel) und die Gültigkeit. Bearbeiten ändert nur die Gültigkeit. Die Detailseite zeigt alle vier Stellungen nebeneinander. Aktivieren geht erst nach abgeschlossener Bereitstellung. Bei einem gesperrten Mandanten entsperrt derselbe Knopf ihn. Schließen fragt vorher nach.
Ergebnis: Siehe Einen Mandanten anlegen und Mandanten sperren, schließen, Gültigkeit.
Wann: /access/users und /access/users/{id}
Die Liste zeigt alle Personen über alle Mandanten, mit Filter nach Mandant und Status. Knöpfe je Zeile: Aktivieren, Sperren und Schließen (beide mit Grund), Bearbeiten (Anzeigename, Heimatmandant, Gruppen, Projektzugriff). Aus dem IAM übernehmen holt Konten aus Keycloak, die CIAS noch nicht kennt. Die Detailseite zeigt direkt vergebene und über Gruppen geerbte Rollen, Rolle vergeben (mit Mandant bei Mandantenrollen, Ablaufdatum, Grund), Entziehen (mit Grund) und die CIAS-Attribute. Einen Knopf „Benutzer anlegen“ gibt es nicht.
Ergebnis: Siehe Sperren, entsperren, schließen, Eine Rolle vergeben.
Wann: /access/registrations
Die Warteschlange zeigt standardmäßig die offenen Vorgänge: Wartet auf Freigabe, Wartet auf Bestätigung und Fehlgeschlagen. „Alle“ zeigt jeden Zustand. Die Knöpfe hängen am Zustand: Freigeben und Ablehnen (mit Grund) bei „Wartet auf Freigabe“; Erneut einrichten und Verwerfen bei „Fehlgeschlagen“; Freischalten und Verwerfen bei „Wartet auf Bestätigung“.
Ergebnis: Siehe Freigabe durch einen Administrator und Abgebrochene Registrierungen aufräumen.
Wann: /access/mail-templates
Die Seite listet die sieben Mails der Registrierung je Sprache (Deutsch, Englisch) mit ihrer Standardfassung, als „Ausgeliefert“ oder „Eigene Fassung“, darunter die Fassungen einzelner Mandanten. Bearbeiten öffnet einen Editor mit Betreff, Text, Schalter für HTML, den Platzhaltern der Mail (dazu application und flow) und einem optionalen Mandanten. Unbekannte Platzhalter markiert die Seite vor dem Speichern. Zurücksetzen gibt einer Standardfassung wieder den ausgelieferten Text; die Fassung eines Mandanten wird gelöscht, danach gilt für ihn die Standardfassung.
Ergebnis: Siehe Vorlagen bearbeiten.
Wann: /access/groups
Die Liste wird in CIAS gesucht und seitenweise geladen. Gruppe anlegen und Bearbeiten fragen Name, Schlüssel (nach dem Anlegen fest), Beschreibung, Rollen aus dem Katalog und ob es die Standardgruppe ist. Mitglieder nimmst du über eine Personensuche auf oder heraus. Dazu kommen Löschen, Aus dem IAM übernehmen und Mit dem IAM abgleichen. Gruppen mit Modulrollen bekommen einen Hinweis, dass diese Rollen in dynamischen Mandanten nicht greifen.
Ergebnis: Siehe Gruppen und Mitglieder verwalten und Gruppenrollen unter dynamischen Mandanten.
Wann: /access/roles
Der Rollenkatalog, nur zum Lesen, gegliedert nach dem Modul, das die Rolle angemeldet hat, mit Suche und Filtern nach Herkunft und Geltung. Rollen für den Kontextwechsel stehen in einem eigenen Hinweiskasten. Mit den Modulen abgleichen startet den Abgleich und zeigt den Bericht je Modul.
Ergebnis: Siehe Der Rollenkatalog und Der Abgleich mit Keycloak.
Wann: Eine angemeldete Person ohne platform-admin.
Der Bereich „Zugriff“ fehlt im Menü. Ruft sie eine Seite über die Adresse auf, lehnt schon der BFF ab, die Seite zeigt „Fehlende Berechtigung – die Rolle „platform-admin“ ist erforderlich“.
Ergebnis: Keine Daten, keine Aufrufe an CIAS.
Wann: Die Installation verlangt einen Mandanten, und die Anfrage hat keinen.
Das Menü ist leer. Über jeder Seite steht „Kein Mandant zugeordnet“ mit dem angemeldeten Namen. Erreichbar bleiben nur die Einstellungen und das Abmelden.
Ergebnis: Ein Administrator ordnet das Konto einem Mandanten zu, danach genügt eine neue Anmeldung.
Welcher Knopf welchen Aufruf auslöst
Mandanten
| Knopf | BFF-Route | CIAS-Aufruf |
|---|---|---|
| Liste | GET /api/hub/identity/tenants | GET /cias/admin/tenants |
| Mandant anlegen | POST /api/hub/identity/tenants | POST /cias/admin/tenants, bei Gültigkeit danach POST …/{id}/validity |
| Aktivieren, Sperren, Schließen | PUT …/tenants/{key}/status | POST /cias/admin/tenants/{id}/activate (bei einem gesperrten Mandanten /resume), /suspend, /close |
| Gültigkeit speichern | PUT …/tenants/{key}/validity | POST /cias/admin/tenants/{id}/validity |
| Erneut bereitstellen | PUT …/tenants/{key}/provisioning | POST /cias/admin/tenants/{id}/retry-provisioning |
| Detailseite | GET …/tenants/{key} | GET /cias/admin/tenants/by-key?key=…, GET /cias/admin/users?tenantKey=… |
Die Seiten arbeiten mit dem Schlüssel des Mandanten. CIAS spricht Mandanten über ihre ID an, deshalb liest der BFF vor jeder Änderung den Mandanten über by-key.
Benutzer
| Knopf | CIAS-Aufruf |
|---|---|
| Liste | GET /cias/admin/users/page (seitenweise, bis alle da sind) und die Gruppen der Personen |
| Aus dem IAM übernehmen | POST /cias/admin/users/import |
| Aktivieren | POST /cias/admin/users/{id}/reactivate |
| Sperren, Schließen | POST /cias/admin/users/{id}/suspend, /close, jeweils mit reason |
| Bearbeiten: Anzeigename | POST /cias/admin/users/{id}/rename |
| Bearbeiten: Heimatmandant | POST /cias/admin/users/{id}/tenant |
| Bearbeiten: Gruppen | POST /cias/admin/groups/{key}/members und …/members/remove, nur für die Änderungen |
| Bearbeiten: Projektzugriff | POST /cias/admin/users/{id}/profile-attributes mit projects |
| Detail: Rolle vergeben | POST /cias/admin/role-assignments |
| Detail: Entziehen | POST /cias/admin/role-assignments/{id}/revoke mit reason |
| Detail: Attribute speichern | POST /cias/admin/users/{id}/attributes, ersetzt den ganzen Satz |
Die E-Mail-Adresse steht im Dialog, lässt sich aber nicht ändern. Sie ist die Anmeldung und gehört Keycloak. Die Schritte im Dialog laufen nacheinander und nicht in einer Transaktion: Scheitert der zweite, ist der erste schon gespeichert. Der BFF liest die Person deshalb am Ende neu und zeigt, was wirklich dasteht.
Der Projektzugriff landet als Profilattribut projects in Keycloak, also im Token. Die Attribute auf der Detailseite sind die freien Schlüssel-Wert-Paare am CIAS-Datensatz. Den Unterschied erklärt Zwei Herkünfte von Attributen.
Registrierungen, Mail-Vorlagen, Gruppen, Rollen
| Seite | Knopf | CIAS-Aufruf |
|---|---|---|
| Registrierungen | Liste | GET /cias/admin/registrations?state=… |
| Freigeben, Ablehnen | POST /cias/admin/registrations/{id}/approve, /reject mit reason | |
| Erneut einrichten | POST /cias/admin/registrations/{id}/retry | |
| Freischalten | POST /cias/admin/registrations/{id}/activate | |
| Verwerfen | POST /cias/admin/registrations/{id}/discard | |
| Mail-Vorlagen | Liste, Speichern, Zurücksetzen, Löschen | GET, POST /cias/notification/templates, POST …/{id}/reset, DELETE …/{id} |
| Gruppen | Liste, Anlegen, Ändern, Löschen | GET, POST /cias/admin/groups, PUT, DELETE …/{key} |
| Mitglieder | GET, POST …/{key}/members, POST …/{key}/members/remove | |
| Übernehmen, Abgleichen | POST /cias/admin/groups/import, POST /cias/admin/groups/reconcile | |
| Rollen | Katalog | GET /cias/admin/roles, für Auswahllisten GET /cias/admin/roles/page |
| Mit den Modulen abgleichen | POST /cias/admin/roles/reconcile |
Nach dem Verwerfen sagt die Seite, ob die Adresse wieder frei ist. CIAS meldet das mit identityRemoved. Ist das Konto in Keycloak stehen geblieben, läuft eine neue Registrierung mit dieser Adresse darauf.
Für jede angemeldete Person
Zwei Aufrufe laufen für alle, ohne Verwaltungsrolle:
- Sprache in der Kopfzeile und unter Einstellungen:
PUT /cias/me/locale. Die Wahl liegt am Konto und gilt auch für Mails. - Mandanten-Hinweis:
GET /cias/me/tenant, siehe oben.