CodamAIDocs
Themafertig

Anmeldestufe für die Verwaltung

Wie stark und wie frisch sich eine Person angemeldet haben muss, um Benutzer, Gruppen, Rollen, Mandanten und Registrierungen über die Verwaltung von CIAS zu lesen oder zu ändern. Je Bereich und Zugriff eingestellt, beim Zusammenbau festgelegt.

Ausprägungen
fünf Bereiche, je Lesen und ÄndernStandard: jede AnmeldungStufe mit Höchstalterunlesbarer Wert → Start verweigertRecht fehlt → 403Anmeldung reicht nicht → 401Service-Account ausgenommennicht abgedeckt: Selbstauskunft, Nachschlagen, Startläufe, Hookseingestellt beim Zusammenbau im Hub

Worum es geht

Über die Verwaltung von CIAS legt man Konten an, vergibt Rollen und eröffnet Mandanten. Das sind die heikelsten Daten der Plattform. Ob jemand dafür einen zweiten Faktor braucht oder sich gerade eben angemeldet haben muss, kann CIAS nicht für jede Installation wissen. Deshalb stellt es die Installation ein: für jeden Bereich der Verwaltung, getrennt nach Lesen und Ändern.

Jede Einstellung ist eine Anforderung aus Anmeldestufe und, wenn gewünscht, Höchstalter. Was das ist und wie die Antwort aussieht, wenn die Anmeldung nicht reicht, steht unter Anmeldestufe und Step-up.

Fünf Bereiche, zweimal

BereichWas dazu gehört
usersKonten, ihre Attribute, der Umzug in einen anderen Mandanten, der Import
groupsGruppen, ihre Mitglieder, der Import und der Abgleich der Gruppen
rolesder Katalog der angemeldeten Rollen und Attribute, Vergaben und Entzüge, der Rollenabgleich
tenantsMandanten und ihr Lebenslauf: anlegen, sperren, entsperren, schließen
registrationsRegistrierungen freigeben, ablehnen, wiederholen und verwerfen, jemanden als Administrator registrieren, die Regeln für Startrollen

Je Bereich gibt es zwei Zugriffe:

  • read (Lesen): Listen, Suchen und das Lesen eines einzelnen Eintrags.
  • write (Ändern): alles, was etwas verändert, auch das Anstoßen eines Abgleichs.

Das macht zehn Anforderungen.

Die Einstellungen

codamai.cias.administration.<bereich>.<zugriff>.level     basic | mfa | phishing-resistant
codamai.cias.administration.<bereich>.<zugriff>.max-age   ganze Sekunden oder ISO-8601
CIAS_ADMINISTRATION_<BEREICH>_<ZUGRIFF>_LEVEL             dasselbe als Umgebungsvariable
CIAS_ADMINISTRATION_<BEREICH>_<ZUGRIFF>_MAX_AGE

CIAS sieht zuerst in der Einstellung nach und dann in der Umgebungsvariable. ISO-8601 ist ein Format für Zeitdauern, etwa PT5M für fünf Minuten. Auch dann muss es ganze Sekunden ergeben, mindestens eine.

Ein Beispiel: Rollen vergeben soll nur, wer sich in den letzten fünf Minuten mit zweitem Faktor angemeldet hat. Lesen darf jede angemeldete Person mit dem Recht dazu.

codamai:
  cias:
    administration:
      roles:
        write:
          level: mfa
          max-age: 300

Dasselbe als Umgebungsvariablen:

CIAS_ADMINISTRATION_ROLES_WRITE_LEVEL=mfa
CIAS_ADMINISTRATION_ROLES_WRITE_MAX_AGE=300

Der Standard ist neutral: Fehlt eine Angabe, gilt basic ohne Höchstalter. Das erfüllt jede angemeldete Person. Ohne Einstellungen ändert sich also nichts. Eine Installation verschärft, CIAS selbst verlangt nichts.

Ein Wert, den CIAS nicht lesen kann

Steht in einer Einstellung etwas, das CIAS nicht versteht, startet die Anwendung nicht. Die Meldung nennt die Einstellung. Das ist ein Fehler der Installation, und mit einer anderen Anforderung zu laufen als der, die dasteht, wäre die stille Art von Fehler. Siehe Im Zweifel ablehnen.

WertFolge
level: mfa, max-age: 300 oder PT5Mgilt
level: high (keine bekannte Stufe)Start verweigert
max-age: 0Start verweigert, mindestens eine Sekunde
max-age: PT0.5SStart verweigert, nur ganze Sekunden
max-age: fünf MinutenStart verweigert, weder Zahl noch ISO-8601

Was bei einer Verwaltungsanfrage passiert

Eine Anfrage an die Verwaltung
Recht vorhanden?Service-Account?Anmeldung erfüllt die Anforderung?Antwort
nein––403 der Verwaltung, wie immer
jaja–die Anfrage läuft. Service-Accounts sind ausgenommen
janeinnein401 cias.authentication.step-up-required|<stufe>[|<sekunden>] mit Kopf nach RFC 9470
janeinjadie Anfrage läuft

Zuerst das Recht. Wer etwas gar nicht darf, bekommt die gewohnte 403. Ihn erst zu einer stärkeren Anmeldung zu schicken, die ihn danach doch nicht hineinlässt, wäre sinnlos.

Service-Accounts sind ausgenommen. Ein Service-Account kann sich nicht neu anmelden und hat keine Anmeldezeit. Jede Anforderung über basic oder mit Höchstalter sperrte ihn für immer aus. Ihn schützen sein Geheimnis und seine Rollen. CIAS erkennt ihn an azp und preferred_username in der Form service-account-<client>, siehe Service-Accounts.

CIAS meldet seine Stufen an

CIAS ist selbst ein Modul und meldet in seiner Deklaration die Stufen an, die seine Einstellungen nennen. Verlangt etwa roles.write die Stufe mfa, steht mfa in der Liste.

So prüft der Abgleich, ob der Anmeldeablauf in Keycloak diese Stufe erreicht. Fehlt der Schritt dafür, meldet der Bericht es mit cias als Modul. Ohne diesen Schritt käme niemand mehr in diesen Teil der Verwaltung.

Was nicht abgedeckt ist

Die Anforderungen gelten nur, wenn eine Person die Verwaltung bedient. Nicht abgedeckt sind:

  • die Selbstauskunft: was eine Person über sich selbst liest oder ändert, siehe Selbstauskunft
  • die Endpunkte zum Nachschlagen zwischen Diensten, etwa für das Mandanten-Tor oder die Attributwerte je Mandant
  • die Läufe beim Start, etwa der erste Rollenabgleich
  • die Hooks einer Registrierung im selben Prozess und ein Registrierungsablauf, den eigener Code ohne angemeldeten Aufrufer startet

Dort handelt kein Administrator, oder es gibt keine Person, die man fragen könnte.

Eingestellt beim Zusammenbau im Hub

Im Hub stellst du die zehn Anforderungen am CIAS-Modul eines Projekts ein, im CIAS-Portal im Bereich Verwaltung.

Vom Hub in die Konfiguration
  1. 1
    Entwickler→Hub
    wählt im Bereich Verwaltung je Bereich für Lesen und Ändern eine Stufe und gegebenenfalls ein Höchstalter in Sekunden
    Leer heißt: jede Anmeldung, beliebig alt. Ein Höchstalter ohne Stufe verlangt eine frische einfache Anmeldung.
  2. 2
    Hub
    prüft die Eingaben
    Ein Höchstalter unter einer Sekunde oder keine ganze Zahl ist ein Fehler. Ein Hinweis erscheint, wenn der zugehörige Teil von CIAS ausgeschaltet ist oder eine Stufe über basic verlangt wird: Dann muss der Anmeldeablauf in Keycloak diese Stufe erreichen.
  3. 3
    Generator
    schreibt jeden gesetzten Wert als Standard seiner Umgebungsvariable in die cias-configuration.yaml des Systems
    Ergebnis: etwa level: ${CIAS_ADMINISTRATION_ROLES_WRITE_LEVEL:mfa} und max-age: ${CIAS_ADMINISTRATION_ROLES_WRITE_MAX_AGE:300}

Die Werte wirken mit dem nächsten Build. Eine Umgebung kann jeden über seine Umgebungsvariable überschreiben. Was leer bleibt, schreibt der Generator gar nicht, und es gilt der neutrale Standard.

Das gebaute System hat danach keine Verbindung zum Hub. Es liest die Werte beim Start aus seiner Konfiguration.

Der Bereich Verwaltung im CIAS-Portal. Leer heißt: jede Anmeldung, beliebig alt. Jeder Wert wird zur Vorgabe einer Umgebungsvariable.
Im Hub Der Bereich Verwaltung im CIAS-Portal. Leer heißt: jede Anmeldung, beliebig alt. Jeder Wert wird zur Vorgabe einer Umgebungsvariable.

Keine Änderung zur Laufzeit

Es gibt keinen Endpunkt und keinen anderen Weg, eine Anforderung im laufenden System zu ändern. Das ist Absicht: Wer eine Anforderung senken könnte, könnte den Step-up abschalten, und zwar genau für die Daten, die er schützen soll. Eine Änderung geht nur über den Hub mit neuem Build oder über die Umgebungsvariable mit neuem Start.

Fallen

Weiter

Suchen