Skip to content
Snippets Groups Projects

Authentifizierung von Fachanwendungen

Fachanwendungen haben die Möglichkeit FIT-Connect Anträge abzurufen. Dafür müssen sie sich mithilfe von oauth2 "Client-Credentials" authentifizieren. Diese erhalten Behörden und andere Abrufberechtigte, nach einer Anmeldung im Self-Service-Portal der FITKO. (TODO: link)

Für jede Destination müssen folgende Informationen im Self-Service-Portal bereitgestellt werden

Entweder:

Oder:

  • Name und Bezeichung der angeboteten Leistungen, wenn diese nicht Teil des Leistungskataloges sind

Außerdem

  • Der Public Key zur Verschlüsselung der Antragsdaten
  • Der Public Key der Fachanwendung zur Signaturprüfung
  • Callback Endpunkte
  • Referenzen zu allen von diesem Endpunkt unterstützen Schemas

Nach anlegen einer Destination erhält die Behörde, die für die Destination verantwortlich ist die OAuth Client Credentials. Mit diesen kann sich das Fachverfahren authentifizieren und erhält dafür einen JWT. Mit diesem JWT ist dann ein Abruf der hinterlegten Anträge möglich

JWT Konzept

Anforderung an die JWT-Tokens

Die vom Auth Server generierten JWTs müssen nach RFC 7519 über folgende Attribute verfügen:

Header

Entsprechend RFC 7519 Abschnnitt 8:

Feld Inhalt Erläuterung
typ JWT Es handelt sich um einen JWT.
alg RS512 Der JWT verwendet RSASSA-PSS und SHA-512.

Beispiel

{
  "typ":"JWT",
  "alg":"HS256"
}

Body des User-JWT-Tokens

Entsprechend den standartisierten Feldern:

Feld Inhalt Erläuterung
iat Unix Timestamp Zeitpunkt wann der Token ausgestellt wurde als Unix Timestamp.
exp Unix Timestamp Zeitpunkt wann der Token abläuft als Unix Timestamp (Token sollte max. 2 Stunden gültig sein vgl BSI APP.3.1).
scope Liste von Zustellberechtigungs-Scopes Eine Liste der Zustellberechtigungs-Scopes, für die der JWT einen Abruf erlaubt.
clientType receiver Gibt an, das es sich um einen Token für eine Fachanwendung handelt, die Anträge empfangen kann.

Beispiel

{  
	"iat":"1620072619",  
	"exp":"1620079819",
	"scope": ["36141427-d405-40a4-8f8b-3592d544e85b", "655c6eb6-e80a-4d7b-a8d2-3f3250b6b9b1"],
  "clientType": "receiver"
}

Validierung der JWT-Tokens durch den Zustelldienst

Beim Abruf am Zustelldienst muss dieser bzw. das API-Gateway überprüfen, ob der JWT-Token valide ist. Dafür sollten mindestes folgende Überprüfungen durchgeführt werden:

  1. Überprüfen ob es sich um einen JWT mit einer RSASSA-PSS (PS512) Signatur handelt.
  2. Überprüfen, ob diese noch gültig sind und
    1. der JWT für max. 4h ausgestellt wurde.
  3. Mithilfe des Public Keys des Authentifizierungsservers die Signatur des JWT überprüfen.
  4. Überprüfen, ob die Destination-ID, die abgerufen werden soll teil der in den Zustellberechtigungs-Scopes (scope Parameter in den JWTs) des JWTs ist. (Zugangsberechtigung der Fachanwendung).