Skip to content
Snippets Groups Projects
Commit d1c7684b authored by David Schwarzmann's avatar David Schwarzmann
Browse files

docs: Apply review suggestions

parent 26b80ba3
No related branches found
No related tags found
1 merge request!3docs(event-log): Start documenting the event log and interaction with signed JWTs
......@@ -25,43 +25,11 @@ ihre Beschreibungen und die Autoren aufgeführt und beschrieben.
| `https://schema.fitko.de/fit-connect/events/create-submission` | Zustelldienst | Die Einreichung wurde durch den Sender angelegt. |
| `https://schema.fitko.de/fit-connect/events/submit-submission` | Zustelldienst | Die Einreichung wurde durch den Sender abgesendet. |
| `https://schema.fitko.de/fit-connect/events/notify-submission` | Zustelldienst | Der Empfänger wurde per Webhook über die Einreichung informiert. |
| `https://schema.fitko.de/fit-connect/events/forward-submission` | | Ein nachgelagertes System hat die Einreichung zur Weiterleitung übernommen. |
| `https://schema.fitko.de/fit-connect/events/forward-submission` | Empfangendes System | Ein nachgelagertes System hat die Einreichung zur Weiterleitung übernommen. |
| `https://schema.fitko.de/fit-connect/events/reject-submission` | Empfangendes System | Die Einreichung wurde durch den Empfänger zurückgewiesen. |
| `https://schema.fitko.de/fit-connect/events/accept-submission` | Empfangendes System | Die Einreichung wurde durch den Empfänger akzeptiert. |
| `https://schema.fitko.de/fit-connect/events/delete-submission` | Zustelldienst | Die Einreichung wurde durch den Zustelldienst gelöscht. |
<details>
<summary>🚧 Weitere Ereignisse, relevant für die Zukunft ...</summary>
### Ereignisse einer Antwort (Reply Events)
| Event | Autor | Bedeutung |
|-----------------------------------------------------------------|-------------------------|-------------------------------|
| `https://schema.fitko.de/fit-connect/events/create-reply` | Zustelldienst | Die Antwort wurde durch den Sender angelegt. |
| `https://schema.fitko.de/fit-connect/events/submit-reply` | Zustelldienst | Die Antwort wurde durch den Sender abgesendet. |
| `https://schema.fitko.de/fit-connect/events/notify-reply` | Zustelldienst | Der Empfänger wurde per Webhook über die Antwort informiert. |
| `https://schema.fitko.de/fit-connect/events/forward-reply` | Adressat der Reply[^1] | Ein nachgelagertes System hat die Antwort zur Weiterleitung übernommen. |
| `https://schema.fitko.de/fit-connect/events/reject-reply` | Adressat der Reply[^1] | Die Antwort wurde durch den Empfänger zurückgewiesen. |
| `https://schema.fitko.de/fit-connect/events/accept-reply` | Adressat der Reply[^1] | Die Antwort wurde durch den Empfänger akzeptiert. |
| `https://schema.fitko.de/fit-connect/events/delete-reply` | Zustelldienst | Die Antwort wurde durch den Zustelldienst gelöscht. |
[^1]: Wird das Reply vom Sender zum Subscriber gesendet, ist der Subscriber der Adressat; wird es vom Subscriber zum Sender gesendet ist der Sender der Adressat.
Das Akzeptieren oder Zurückweisen von Einreichungen oder Antworten passiert auf einer rein technischen Ebene und trifft keine Aussage über die fachliche Korrektheit der Einreichungen.
Gründe für technische Rückweisungen wären beispielsweise Probleme bei der Entschlüsselung oder Validierungsfehler der Datenstrukturen.
### Ereignisse eines Vorgangs (Case Events)
| Event | Autor | Bedeutung |
|---------------------------------------------------------|-------------------------------------------------|-----------------------------|
| `https://schema.fitko.de/fit-connect/events/close-case` | Das System, das die Vorgangsreferenz schließt. | Die Vorgangsreferenz wurde geschlossen, es dürfen keine weiteren Replies mehr erfolgen. |
</details>
## Prüfung eines Security-Event-Token (SET) {#set-validation}
Um eine vollständige Prüfung eines Security-Event-Tokens durchzuführen, MUSS zwingend sowohl die Einhaltung der
......@@ -85,10 +53,10 @@ gesetzt sein:
| Feld | Inhalt | Erläuterung |
|--------|------------------------------------------------|---------------------------------------------------------------|
| iss | Id des Token Issuers | Dient dazu, um herauszufinden, wer den Token ausgestellt hat. Für vom Zustelldienst ausgestellt SET wird die Basis-Adresse (API-URL) verwendet. Für die antragsendenden und -empfangenden Systeme wird empfohlen, auch eine dem System zugeordnete URL zu verwenden. Sofern das System keine zur Identifikation nutzbare URL hat, ist eine andere eindeutige URI zu verwenden. |
| iss | Id des Token Issuers | Diese Angabe dient dazu, um herauszufinden, wer den Token ausgestellt hat. Für SETs, die vom Zustelldienst ausgestellt sind, wird die Host-Adresse (API-URL) verwendet. Bei SETs von empfangenden Systemen ist die `destinationId`, an der dieser die Submission schickt. |
| iat | Timestamp (UNIX-Format) | Zeitpunkt der Ausstellung des SET. |
| jti | UUID des Token | Die JWT ID ist eine eindeutige ID des SET bzw. JWT. Es wird eine zufällige UUID verwendet. |
| sub | URI, die den Gegenstand des SET identifiziert | Das Subject eines SWT ist entweder eine Übertragung (submission), eine Antwort (reply) oder eine Vorgangsreferenz (case id). Die Angabe besteht jeweils aus Typ und ID (UUID) der Resource. |
| sub | URI, die den Gegenstand des SET identifiziert | Das Subject eines SET ist eine Kombination aus dem Schlüsselwort `submission` und der Id `submissionId` der Resource. |
| events | JSON-Objekt der Events in diesem Event-Token | Das Objekt "events" beschreibt eine oder mehrere Ereignisse zu einem logischen Sachverhalt bzw. Gesamtereignis, wie bspw. der Versendung einer Einreichung wurde durch den Sender. Dieses Objekt beinhaltet immer zwingend eine URI, die das jeweilige Gesamtereignis eindeutig identifiziert. Das Objekt der URI des Gesamtereignisses ist aktuell leer, kann aber zukünftig weitere Details zu einem Gesamtereignis enthalten. |
| txn | URI, die den Vorgang identifiziert | Als "Transaction Identifier" wird die Vorgangsreferenz `caseId` angegeben |
......@@ -224,11 +192,6 @@ boolean verifySignature(SignedJWT securityEventToken, String keyId) {
}
```
**Hinweis:** Das Ereignisprotokoll darf keine personenbezogenen oder -beziehbaren Daten enthalten.
**Wichtig**: Ohne Prüfung der Signatur des Security Event Token DARF NICHT auf die Korrektheit (Integrität) der Inhalte des SET-Payload vertraut werden.
### :construction: Signaturprüfung eines vom Senders/Subscriber ausgestellten SET
TBD
---
title: 🚧 Status abfragen
title: Status abfragen
sidebar_position: 9
---
:::caution Hinweis :construction:
Die Abfrage des Status einer Einreichung ist noch unter Bearbeitung, da das Statusmodell gerade überarbeitet wird.
Zukünftig wird es eine Möglichkeit geben, bzgl. Statusänderungen über einen Callback benachrichtigt zu werden.
:::
Nachdem die Einreichung versendet worden ist, kann der Status dieser abgefragt werden. Der Status ist für das sendende
System relevant, da es sämtliche Inhalte einer Einreichung vorhalten sollte, bis der Status sich auf *Accepted* geändert
hat. Dies sollte es tun, damit es im Falle eines Fehlers die Informationen erneut übermitteln kann.
System relevant, da hierüber das empfangende System mitteilt, ob es die Einreichung technisch korrekt verarbeiten konnte.
Bis zu einer Bestätigung über den Status *Accepted* sollte das System sämtliche Inhalte einer Einreichung vorhalten.
Dies sollte es tun, damit es im Falle eines Fehlers (aufgrund eines inkorrekten Schemas oder eines falschen Public Keys), den Fehler
eventuell korrigieren kann und Informationen korrekt übermitteln kann, ohne den Nutzer (bspw. einen Antragssteller) zu einer
erneuten Dateneingabe aufzufordern.
Zudem stellt der Status in Form des signierten Security-Event-Tokens einen sicheren Nachweis der Übermittlung und des Empfangs dar,
der gegenüber Dritten genutzt werden kann.
Das Statusmodell einer Einreichung ist in der folgenden Grafik dargestellt und enthält fünf Zustände (in orange), die in
der darunterliegenden Tabelle beschrieben sind.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment