Skip to content

Destinations via Self-Service API im SSP erstellen (Anpassungen SSP)

sequenceDiagram
  API-Client ->> OAuth: (B) Access Token (enthält scope: "...destination-management-api/create:destination", aud: "portal...") abrufen  
  API-Client ->> SSP/Mgt-Backend: Destination anlegen { name: "", submissionHost: "", destinationData... } (POST)
  SSP/Mgt-Backend ->> Zustelldienst: Request mit neuem OAuth-Token (Scope: "create:destination", aud: "submission-api-...") <br> ohne die Attribute "name" und "submissionHost" an Zustelldienst weiterleiten
  Zustelldienst ->> Zustelldienst: UUID generieren
  Zustelldienst ->> Zustelldienst: Zustellpunkt als Datenbankeintrag anlegen
  Zustelldienst ->> SSP/Mgt-Backend: Destination-ID
  SSP/Mgt-Backend ->> SSP/Mgt-Backend: Destination-Referenz inkl. "name" und "submissionHost" anlegen
  SSP/Mgt-Backend ->> SSP/Mgt-Backend: Destination-Referenz einem User auf Basis der Client-Zugehörigkeit zuordnen
  %% SSP ->> SSP: Zustellpunkt einem Team auf Basis der Client-Zugehörigkeit zuordnen (Berechtigung setzen)
  SSP/Mgt-Backend->> OAuth: Scope ("manage:destination:...") + `aud` des Zustelldienstes anlegen
  SSP/Mgt-Backend ->> API-Client: Destination-ID

Destination-IDs erstellen

  1. Es existiert ein neuer SSP-Endpunkt POST <ssp>/v1/destinations zum Anlegen einer neuen Destination
    • Request: { "name": "Test-Zustellpunkt für Fachverfahren XY", submissionHost: "submission-api-testing.fit-connect.fitko.dev", destinationData... } (submissionHost muss dem Hostname des Zustelldienstes entsprechen, destinationData entspricht den Attributen des bisherigen Submission-API-Endpunktes POST /v1/destinations)
    • Response: { "destinationId": "620e9e5f-36d6-480a-acbe-25e92072c413" }
    • OAuth-Absicherung: https://schema.fitko.de/fit-connect/oauth/scopes/destination-management-api/create:destination
  2. Der Request wird mit neuem OAuth-Token (Scope: "create:destination", aud: "submission-api-...") ohne die Attribute "name" und "submissionHost" an den Zustelldienst weiterleitet, um dort den Zustellpunkt anzulegen.
  3. API-Clients haben nach wie vor keinen Zugriff auf den POST /v1/destinations-Endpunkt des Zustelldienstes.
  4. Das SSP speichert "name", "submissionHost" und Zuordnung zum User als "Destination-Referenz" in der bisher schon existierenden Datenbank-Tabelle. Auf Basis der Client-ID im Access Token (Sub Claim) ordnet das SSP die neue Destination dem User zu, der den Client mit dieser Client-ID besitzt.
  5. Das SSP legt für diese Destination im OAuth-Server für den aktuellen API-Client den Scope "manage:destination:..." mit aud des Zustelldienstes an. Die Zuordnung ist auch in der UI (in der Client-Verwaltung) sichtbar.
Edited by Marco Holz