CodamAIDocs
Themafertig

Anlage durch den Plattform-Administrator

Der Plattform-Administrator legt eine Person an und darf als Einziger den Mandanten im Payload nennen.

Ausprägungen
mit Mandant aus dem Payload (FROM_PAYLOAD)ohne Mandant (NONE)Ablauf nicht konfiguriert → abgelehnt

Worum es geht

Manchmal legt der Support einen Zugang von Hand an, etwa für einen Kunden, der sich nicht selbst registrieren soll. Dafür gibt es die Variante PLATFORM_ADMIN: eine Registrierung, die ein angemeldeter Administrator für eine andere Person startet.

Die Person bekommt trotzdem eine Mail mit Link und bestätigt ihre Adresse selbst. Der Administrator legt also kein fertiges Konto an, sondern startet die Registrierung.

Die Variante einschalten

PLATFORM_ADMIN steht erst zur Verfügung, wenn die Installation den Ablauf konfiguriert. Ein Beispiel:

application.yml
codamai:
  cias:
    registration:
      flows:
        PLATFORM_ADMIN:
          enabled: true
          tenant-assignment: FROM_PAYLOAD
          required-caller-roles: [platform-admin]
          token-ttl: P7D
          fields:
            - { key: email, type: EMAIL, required: true }
            - { key: firstName }
            - { key: lastName }

required-caller-roles legt fest, welche Rollen der Aufrufer haben muss. Ohne diesen Eintrag reicht es, angemeldet zu sein. Für diese Variante gehört deshalb immer platform-admin hinein.

Der Ablauf

POST /cias/admin/registrations
  1. 1
    Admin→CIAS
    schickt E-Mail, Felder und optional tenantKey
  2. 2
    CIAS
    Ist der Ablauf eingeschaltet?
    nein: abgelehnt, cias.registration.misconfigured
  3. 3
    CIAS
    Hat der Aufrufer alle Rollen aus required-caller-roles?
    nein: 403 cias.registration.not-authorized
  4. 4
    CIAS
    bestimmt den Mandanten nach der Einstellung tenant-assignment
  5. 5
    CIAS
    prüft die Felder
    fehlt ein Pflichtfeld: 422
  6. 6
    CIAS→Keycloak
    legt das Konto deaktiviert an, wenn die Adresse neu ist
  7. 7
    CIAS→E-Mail
    Mail mit Link an die Person
  8. 8
    Benutzer→CIAS
    klickt den Link, danach Bereitstellung wie immer

Diese Variante ist nicht gedrosselt. Drosselung gibt es nur für das öffentliche Formular.

Mit oder ohne Mandant

Was mit dem tenantKey im Payload passiert, entscheidet allein die Einstellung tenant-assignment des Ablaufs:

tenantKey im Payload
tenant-assignmenttenantKey gesendet?Ergebnis
FROM_PAYLOADjaDie Person wird Mitglied in diesem Mandanten
FROM_PAYLOADnein400 cias.registration.invalid-request: der Mandant fehlt
NONE–Die Person bekommt keinen Mandanten. Ein gesendeter Schlüssel wird ignoriert
JOIN_EXISTINGjaDie Person tritt diesem bestehenden Mandanten bei

Ob es den genannten Mandanten gibt, prüft CIAS bei der Bereitstellung. Fehlt er dort, endet der Vorgang in FAILED. Siehe Was beim Abschluss passiert.

Weiter

Quellen im Code und in der Wissensdatenbank
  • CIAS/cias-registration – RegistrationAdminController (POST /cias/admin/registrations), RegistrationService (register, authorize, resolveTenant), RegistrationPolicy, TenantDecision
  • CIAS/cias-spring-boot-starter – ConfigurableRegistrationPolicyProvider, CiasProperties (flows.*)
  • CIAS/cias-registration/docs/adr – ADR-011
Suchen