CodamAIDocs
Themafertig

Anmeldestufe für Dokumente

Wie stark und wie kürzlich sich eine Person angemeldet haben muss, um endgültige Dokumente zu lesen oder zu ändern: der Standard, strengere Werte je Vorlagenschlüssel und die Antwort, wenn die Anmeldung nicht reicht.

Ausprägungen
keine AnforderungStandard für alle Dokumentestrengere Anforderung je Vorlagenschlüsselnur HöchstalterLesen (lesen, auflisten, prüfen)Ändern (Legal Hold setzen und aufheben, löschen)Service-Account

Worum es geht

Wer ein endgültiges Dokument liest oder ändert, braucht zuerst die passende Dokumentrolle, siehe Rollen. Manche Dokumente brauchen mehr: Einen Prüfbericht darf jede Person mit der Leserolle sehen, einen Gesundheitsbericht nur, wer sich mit einem zweiten Faktor angemeldet hat.

Dafür gibt es die Anmeldestufe. Sie sagt, wie stark sich eine Person angemeldet hat:

StufeBedeutung
basiceinfach angemeldet, etwa mit Passwort
mfamit zweitem Faktor, etwa einem Code aus einer App
phishing-resistantmit einem Verfahren, das sich nicht abfischen lässt, etwa einem Passkey

Dazu kommt das Höchstalter der Anmeldung: wie lange die Anmeldung höchstens her sein darf. Was die Stufen genau bedeuten und wie CIAS sie aus dem Token liest, steht unter Die Anmeldestufe.

Lesen und Ändern

Jede Anforderung gibt es zweimal:

Anforderunggilt für
Lesen (read)ein Dokument lesen, die Revisionen einer Kette auflisten, ein Dokument prüfen
Ändern (write)Legal Hold setzen, Legal Hold aufheben, ein Dokument löschen

Die Endpunkte dazu stehen unter Prüfen und lesen und Aufbewahrung, Legal Hold und Löschung.

Welche Anforderung gilt

Es gibt einen Standard für alle Dokumente und dazu Einträge je Vorlagenschlüssel. Verlangen beide etwas, nimmt CRMS das Strengere: die höhere Stufe und das kürzere Höchstalter. Der Standard ist also eine Untergrenze, die kein Schlüssel senkt.

StandardEintrag des VorlagenschlüsselsWas gilt
nichtsnichtskeine Anforderung, die Rolle reicht
mfanichtsmfa
nichtsphishing-resistant, 120 sphishing-resistant, höchstens 120 Sekunden alt
mfabasicmfa: der Schlüssel senkt den Standard nicht
mfa, 600 sphishing-resistant, 120 sphishing-resistant, höchstens 120 Sekunden alt
nur 300 snichtsbeliebige Stufe, die Anmeldung höchstens 300 Sekunden alt

Ein Höchstalter allein heißt: erneut anmelden, auf beliebiger Stufe. So verlangst du zum Beispiel vor dem Löschen eine frische Anmeldung.

Der Ablauf

  1. 1
    Client→CRMS
    ruft ein Dokument ab, zum Beispiel GET /crms/documents/{revision}
  2. 2
    CRMS
    Hat die Person die Dokumentrolle? Sonst 403 document-access-denied
  3. 3
    CRMS
    sucht die Kette des Dokuments im Mandanten der Person. Nicht da oder nicht sichtbar → 404 document-not-found
  4. 4
    CRMS
    bestimmt aus dem Vorlagenschlüssel der Kette die Anforderung und vergleicht sie mit Stufe und Zeitpunkt der Anmeldung
  5. 5
    CRMS→Client
    reicht die Anmeldung nicht: 401 cias.authentication.step-up-required|<stufe>[|<sekunden>]
  6. 6
    CRMS→Client
    liest, prüft oder ändert das Dokument
    Ergebnis: Die Person hat das Dokument oder die Änderung ist geschehen

Beim Auflisten steht der Vorlagenschlüssel schon in der Anfrage (template=…). CRMS prüft dort die Anmeldung, bevor es die Kette sucht.

Die Antwort 401 trägt die verlangte Stufe und das Höchstalter, im Körper als Parameter des Schlüssels und in der Kopfzeile WWW-Authenticate. Die Form steht unter Die Fehlerantwort. Der Client meldet die Person stärker oder neu an und wiederholt die Anfrage. Den ganzen Weg zeigt Der Step-up.

Service-Accounts

Ein Service-Account ist ein technisches Konto, mit dem sich eine Anwendung selbst anmeldet, nicht eine Person. Er kann sich nicht neu anmelden. Darum kommt er an der Anmeldestufe vorbei. Sein Schutz sind seine Zugangsdaten und seine Rollen: Die Dokumentrolle braucht er trotzdem.

Bei Freigaben ist das anders: Dort gilt die Anforderung auch für einen Service-Account, siehe Freigabeketten.

Wo die Anforderungen festgelegt werden

Die Anforderungen gehören zum Projekt. Du legst sie im Hub am CRMS-Modul fest, im Bereich „Anmeldung“. Der Build schreibt sie in die Konfiguration des Systems:

codamai:
  crms:
    document:
      authentication:
        read:  { level: mfa }          # lesen, auflisten, prüfen
        write: { max-age: 300 }        # Legal Hold, Aufhebung, Löschen
        templates:
          - key: health-report
            read: { level: phishing-resistant, max-age: 120 }

max-age ist eine Zahl ganzer Sekunden oder eine ISO-8601-Dauer wie PT5M. Den Standard kann eine Umgebung mit CODAMAI_CRMS_DOCUMENT_AUTHENTICATION_READ_LEVEL, …_READ_MAX_AGE, …_WRITE_LEVEL und …_WRITE_MAX_AGE überschreiben, siehe Umgebungsvariablen. Die Felder im Hub stehen unter Das CRMS-Modul im Hub.

Zur Laufzeit ändert nichts die Anforderungen: Es gibt keinen Endpunkt dafür. Wer eine Anforderung senken könnte, könnte den Step-up abschalten.

CRMS meldet die Stufen, die seine Dokumente verlangen, an CIAS, solange es endgültige Dokumente ablegt. CIAS meldet im Abgleich jede Stufe, die der Anmeldeablauf nicht erreicht.

Der Standard im Bereich Anmeldung des CRMS-Portals: Lesen verlangt eine Anmeldung, Ändern (Legal Hold und Löschen) einen zweiten Faktor.
Im Hub Der Standard im Bereich Anmeldung des CRMS-Portals: Lesen verlangt eine Anmeldung, Ändern (Legal Hold und Löschen) einen zweiten Faktor.

Fallen

Weiter

Suchen