diff --git a/docs/details/jwk-creation.md b/docs/details/jwk-creation.md new file mode 100644 index 0000000000000000000000000000000000000000..cb0bf0a6cd0980a51523affa1bf1cd01a7f5f24f --- /dev/null +++ b/docs/details/jwk-creation.md @@ -0,0 +1,74 @@ +# Erstellen von JSON Web Keys für Testzwecke +FIT-Connect verwendet zur Übertragung von Antragsdaten und Metadaten mit direktem Bezug zu Anträgen eine Ende-zu-Ende-Verschlüsselung. Diese ist auf Basis des Standards [JSON Web Encryption (JWE)](https://tools.ietf.org/html/rfc7516) unter Verwendung von Schlüsseln gemäß des Standards [JSON Web Keys (JWK)](https://tools.ietf.org/html/rfc7517) umgesetzt. +Im Folgenden soll die Erstellung von JWKs mithilfe eines einfachen in Python geschriebenen Skriptes unter Windows und Linux erläutert werden. + +## Voraussetzungen +Die Ausführung des Skriptes setzt eine installierte Version von [Python]( https://www.python.org/) voraus. Zum Nachinstallieren von benötigten Paketen wird Paketverwaltungsprogramm **pip** benötigt. Bei Versionen vor 3.4 ist ggf. noch eine manuelle Installation erforderlich. + +### Windows +Eine Anleitung zur Installation und Einrichtung unter Windows finden Sie unter [Installationsanleitung Python Windows]( https://docs.microsoft.com/de-de/windows/python/beginners). + +### Linux +Der Ablauf und die Befehle zur Installation und Einrichtung von Python unter Linux unterscheiden sich je nach verwendeter Distribution. + +#### Für Ubuntu +[Installationsanleitung Python Ubuntu]( https://docs.python-guide.org/starting/install3/linux/) + +Installation von **pip** +```console +foo@bar:~$ sudo apt install python3-pip +``` + +#### Für Debian +[Installationsanleitung Python Debian]( https://linuxize.com/post/how-to-install-python-3-9-on-debian-10/) + +Installation von **pip** +```console +foo@bar:~$ sudo apt install python3-pip +``` + +#### Für Fedora +[Installationsanleitung Python Fedora]( https://developer.fedoraproject.org/tech/languages/python/multiple-pythons.html) + +```console +foo@bar:~$ yum -y install python-pip +``` + +### Erforderliche Python Pakete installieren +Um das Skript zur Erstellung von JSON Web Keys auszuführen, werden zusätzliche Python Pakete benötigt. Diese lassen sich jedoch sehr einfach mithilfe von **pip** nach-installieren. Dazu kann unter Windows die **PowerShell** sowie **Terminal** unter Linux verwendet werden. + +Windows PowerShell: +```console +PS C:\> pip install jwcrypto +``` + +Linux: +```console +foo@bar:~$ pip install jwcrypto +``` + +### Herunterladen des Python-Skrips +Das Skript zur Erstellung der JSON Web Keys können Sie unter [Python Skript zur JWK-Erstellung](https://git.fitko.de/fit-connect/fit-connect-tools/-/blob/main/set-jwkset-gen.py) herunterladen. Speichern Sie es in einem Verzeichnis, in dem Sie das Skript später wiederfinden. + +## Ausführung des Skripts +Navigieren Sie zum Verzeichnis in dem Sie das Python-Skript hinterlegt haben und öffnen Sie dort unter Windows eine **PowerShell** bzw. unter Linux ein **Terminal**. Alternativ können Sie auch innerhalb der **PowerShell** oder des **Terminals** zum Verzeichnis navigieren. +Mit dem folgenden Befehl kann das Python-Skript zur Erstellung der JSON Web Keys ausgeführt werden. + +Windows PowerShell: +```console +PS C:\> python3 set-jwkset-gen.py +``` + +Linux: +```console +foo@bar:~$ python3 .\set-jwkset-gen.py +``` +In der Konsole wird dann im Erfolgsfall der Speicherort der Schlüssel ausgegeben + +```console +Wrote JWKS of Public Keys to C:\Users\username\AppData\Local\Temp\tmptlp6_p6g\set-public-keys.json +Please upload this key set via Submission-API (POST /destinations) + +Wrote JWK of Private Key Verifiy to C:\Users\username\AppData\Local\Temp\tmptlp6_p6g\privateKey_signing.json +Wrote JWK of Private Key WrapKey to C:\Users\username\AppData\Local\Temp\tmptlp6_p6g\privateKey_decryption.json +``` diff --git a/docs/sidebar.js b/docs/sidebar.js index 9bc7677eef7e247cef386864f3c3eb8defbf50ab..edfb85a47b74ca888ba5d69a68281b0ce792169f 100644 --- a/docs/sidebar.js +++ b/docs/sidebar.js @@ -77,6 +77,7 @@ module.exports = { label: 'Detailinformationen', items: [ 'details/crypto', + 'details/jwk-creation', 'details/schema-reference', 'details/pgp-export', {