[FCON-69] Entwicklung SDK
Als Entwickler:in eines Fachverfahrens oder Onlinedienstes möchte ich bei der Anbindung meiner Software an FIT-Connect unterstützt werden.
Im ersten Wurf sollen nur Hilfsfunktionen bereitsgestellt werden.
Sprachen
- Java
- Javascript
- Python (Subscriber)
- DotNet (Subscriber)
Funktionalität
- Verschlüsselung von Anträgen/Anhängen mittels JWE (Javascript, Java)
- Entschlüsselung von Anträgen/Anhängen mittels JWE (Java)
- Abruf/Generierung von OAuth-Tokens durch Onlinedienste (Java)
- SET-Signaturerzeugung (Java)
- SET-Signaturprüfung (Javascript, Java)
- Antragsmetadatenschema-Prüfung der über die FIT-Connect-API empfangenen Daten (Java, Javascript)
- Ausbau des (Subscriber-)SDK zu einem nutzbaren FIT-Connect Client
Referenzen
-
Funktionsumfang: siehe [https://git.fitko.de/fit-connect/projekt/planning/-/issues/6]
-
Demo zur Verschlüsselung von JSON und Dateien im Browser: [https://github.com/codedust/simplejose] (basiert auf [https://github.com/panva/jose])
-
Vergleich zwischen [https://github.com/square/js-jose] und [https://github.com/panva/jose]: [https://github.com/codedust/jwe-file-encryption-demo] ** tl;dr: square/js-jose hat Schwierigkeiten mit dem Verschlüsseln von Binärdaten und ist langsamer
Akzeptanzkriterien
- Für og. Sprachen muss die og. Funktionalität implementiert sein
Andere Story
Funktionalität
Für Version 1 der SDKs ist der folgenden Funktionsumfang vorgeshen:
-
Verschlüsselung von Anträgen/Anhängen mittels JWE (Javascript, Java). Akzeptanzkriterien Verschlüsselung: ** Beliebige Daten im JSON-Format können verschlüsselt werden. ** Beliebige Binärdaten (Dateien) können verschlüsselt werden. ** Alle Vorgaben aus dem finalisierten Richtliniendokument zur Ende-zu-Ende-Verschlüsselung werden eingehalten: *** [https://git.fitko.de/fit-connect/api/-/blob/main/docs/Detailinformationen/Encryption.md] *** [https://git.fitko.de/fit-connect/api/-/blob/main/docs/Detailinformationen/Encryption_Key_Requirements.md] ** Eine Ver- und Entschlüsselung im Zusammenspiel mit dem Subscriber-SDK wurde erfolgreich getestet. ** Die Implementierung ist in gängigen Browsern (tbd) lauffähig. ** Es liegen automatisierte Tests für die Ver- und Entschlüsselung vor und wurden erfolgreich bestanden.
-
Entschlüsselung von Anträgen/Anhängen mittels JWE (Java). Akzeptanzkriterien Entschlüsselung: ** Beliebige Daten im JSON-Format können entschlüsselt werden. ** Beliebige Binärdaten (Dateien) können entschlüsselt werden. ** Alle Vorgaben aus dem finalisierten Richtliniendokument zur Ende-zu-Ende-Verschlüsselung werden eingehalten: *** [https://git.fitko.de/fit-connect/api/-/blob/main/docs/Detailinformationen/Encryption.md] *** [https://git.fitko.de/fit-connect/api/-/blob/main/docs/Detailinformationen/Encryption_Key_Requirements.md] ** Eine Ver- und Entschlüsselung im Zusammenspiel mit einem Sender-SDK wurde erfolgreich getestet. ** Es liegen automatisierte Tests für die Ver- und Entschlüsselung vor und wurden erfolgreich bestanden.
-
Abruf/Generierung von OAuth-Tokens durch Onlinedienste (Java)
-
JWS-Signaturerzeugung (Java)
-
JWS-Signaturprüfung (Javascript, Java)
-
Antragsmetadatenschema-Prüfung der über die FIT-Connect-API empfangenen Daten (Java, Javascript)
Darüber hinaus sind die folgenden Funktionalitäten angedacht (unvollständige Aufzählung):
- Unterstützung der oben genannten Funktionalitäten in weiteren Programmiersprachen
- Unterstüzung / Abstraktion der API-Nutzung (
fitconnect.sendApplication(applicationMetadata, destinationID, ...)o.ä.) - Fachdaten-Schema (JSON-Schema/X-Fall-Schema)-Validierung
- related: [https://github.com/itplr-kosit/validator] ("Validates XML documents with XML Schema and Schematron")
- Prüfung IdentificationReport]
- Unterstützung ePayment-API?
- Auflösung PLZ/Hausnummer nach ARS?
- ggf. Anbindung Virenscanner via ICAP
Zu unterstützenden Programmiersprachen:
- Java
- JavaScript
- PHP
- .NET (C# oder VB?) ** [https://github.com/dvsekhvalnov/jose-jwt]
- Python
- Zukunftsmusik: PHP/Golang/Rust? Evtl. ergibt sich da ja was aus der Community hoff