Zuordnung von JWKs zu Destinations
Warum?
Um nicht mehr verwendete JWKs löschen zu können und bei der Prüfung von Security Event Tokens sicherzustellen, dass die verwendeten Keys zum angegebenen Zustellpunkt gehören, sollen JWKs innerhalb des Zustelldienstes immer einem Zustellpunkt zugeordnet werden.
Relevante Links und Bemerkungen
- siehe #18 (comment 17123)
- Einfache Umsetzungsoption wäre, zu jedem JWK die zugehörige Destination-ID und
kid
in der Datenbank zu speichern und die Kombination aus diesen beiden Werten als Primärschlüssel zu verwenden. Werden JWKs bei zwei Zustellpunkten hochgeladen, werden diese dann auch doppelt in der Datenbank gespeichert.
Akzeptanzkriterien
-
Werden Keys über den Endpunkt PUT /destinations/{destinationId}/keys/{keyId}
hochgeladen, werden sie der Destination mit der Destination-ID aus dem Pfadparameter zugeordnet. -
Über den Endpunkt GET /destinations/{destinationId}/keys/{keyId}
können nur Keys abgerufen werden, die der Destination mit der Destination-ID aus dem Pfadparameter zugeordnet sind (wichtig für die Prüfung von SETs). -
Bei der Angabe der encryptionKid
in einer Destination wird geprüft, ob der angegebene Key existiert und zur Destination gehört. -
Für verschiedene Destinations kann derselbe JWK mit identischer kid
hochgeladen und im FeldencryptionKid
referenziert werden. -
JWKs, die einer Destination zugeordnet sind, dürfen nur von Clients bearbeitet werden, die Zugriff auf diese Destination haben ( manage:destination:xxx
-Scope). JWKs anderer Destinations dürfen von Clients nicht bearbeitet hochgeladen, oder gelöscht werden können.
Durchführungsplan
-
Zustelldienst Api anpassen (https://git.fitko.de/fit-connect/zustelldienst/-/merge_requests/69) -
Zustelldienst Api Tests anpassen (https://git.fitko.de/fit-connect/zustelldienst-api-tests/-/merge_requests/38) -
SSP Zustelldienst Api nutzung anpassen (Key Update, Fehlerhandling) https://git.fitko.de/fit-connect/self-service-portal/-/merge_requests/37 -
Zustelldienst Docu Änderungen für neue Zustelldienst Api Fehlercodes machen (docs!146 (merged)) -
Änderungen auf DEV ausrollen (https://git.fitko.de/fit-connect/infrastruktur/-/merge_requests/71) -
Changelog vorbereiten (docs!145 (merged))
Edited by Florian Kaufmann