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:
| Stufe | Bedeutung |
|---|---|
basic | einfach angemeldet, etwa mit Passwort |
mfa | mit zweitem Faktor, etwa einem Code aus einer App |
phishing-resistant | mit 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:
| Anforderung | gilt 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.
| Standard | Eintrag des Vorlagenschlüssels | Was gilt |
|---|---|---|
| nichts | nichts | keine Anforderung, die Rolle reicht |
mfa | nichts | mfa |
| nichts | phishing-resistant, 120 s | phishing-resistant, höchstens 120 Sekunden alt |
mfa | basic | mfa: der Schlüssel senkt den Standard nicht |
mfa, 600 s | phishing-resistant, 120 s | phishing-resistant, höchstens 120 Sekunden alt |
| nur 300 s | nichts | beliebige 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
-
1Client→CRMSruft ein Dokument ab, zum Beispiel
GET /crms/documents/{revision} -
2CRMSHat die Person die Dokumentrolle? Sonst 403
document-access-denied -
3CRMSsucht die Kette des Dokuments im Mandanten der Person. Nicht da oder nicht sichtbar → 404
document-not-found -
4CRMSbestimmt aus dem Vorlagenschlüssel der Kette die Anforderung und vergleicht sie mit Stufe und Zeitpunkt der Anmeldung
-
5CRMS→Clientreicht die Anmeldung nicht: 401
cias.authentication.step-up-required|<stufe>[|<sekunden>] -
6CRMS→Clientliest, prüft oder ändert das DokumentErgebnis: 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.
