Skip to content

[Epic] Nutzung von OAuth-Zertifikaten (Client-Credentials mit JWT-Bearer Client-Assertion-Type)

Warum

Um die Sicherheit der Authentifizierung gegenüber dem Zustelldienst zu erhöhen, soll statt dem bisher verwendeten client_secret ein Zertifikat genutzt werden.

Ziel

Links, Hinweise, Bemerkungen

Beispiele:

Umsetzungsplan & Stories

  1. Im SSP steht der Upload eines Client-Zertifikat als Alternative zur Verfügung
    • Unterstützung von Client-Zertifikaten im SSP team::SSP #3021
    • Tests mit Client-Zertifikaten
  2. Ankündigung des neuen Features mit Information, dass Clients Secrets perspektivisch abgeschafft werden
  3. Abkündigung von Client Secrets mit Zeitplan
  4. Für neue Clients steht nur noch der Zertifikats-Upload zur Verfügung
  5. Monitoring, wie viele Clients noch Secrets verwenden
    • Monitoring der bezogenen Access Token nach grant_type und client_assertion_type
    • Auswertung der Datenbank der Clients nach hinterlegten Zertifiaten
  6. Hinweis an Anbindungsprojekte, die Secrets verwenden, dass diese gesperrt werden
  7. Schritte 5+6 wiederholen, bis keine oder nur noch wenige Clients Secrets nutzen
  8. Entfernen oder sperren aller Clients, die Secrets nutzen

Akzeptanzkriterien

  1. Authentifizierung erfolgt nicht mehr über client_secret, sondern über ein OAuth-Zertifikat
  2. ...
  3. ...
  4. Definition of Done wurde überprüft.

Mögliche Folgeaktivitäten

  • Einführung von DPoP zur weiteren Absicherung
  • Nutzung des FIT-Connect Authentifizierungs-Dienstes (OAuth-Server) durch XBezahldienste

Offene Fragen

  • Wenn ein Client mit Zertifikat angelegt wird, kann die Erstellung eines Secrets verhindert werden?
  • Kann bei Connect2id die Verwendung von Clients Secrets gesperrt werden?
  • Wie genau erfolgt die Authentifizierung?
    • DVDV:
      • grant_type=client_credentials
      • client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
      • client_assertion={TOKEN}
    • XBezahldienste OAuth PoC:
      • grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
      • assertion={TOKEN}
Edited by Laura Elges