Integratie#
Het hoofdstuk beschrijft processen voor verschillende taken en richt zich op alle gebruikersgroepen.
REST-API#
De primaire interface van NetHSM is een moderne REST-API die de beste prestaties en functionaliteit garandeert. De API-specificatie is beschikbaar in OpenAPI formaat, en kan worden geïnspecteerd en getest in de API browser.
PKCS#11#
De NetHSM ondersteunt de PKCS#11-standaard. Het vereiste stuurprogramma is beschikbaar in de repository. De repository bevat de broncode en bibliotheken voor verschillende besturingssystemen. De PKCS#11 gids beschrijft het gebruik in detail.
Ontwikkeling en Testen#
Demo-instantie#
Een publieke NetHSM demo-instantie is beschikbaar op nethsmdemo.nitrokey.com. Deze wordt elke acht uur gereset (CET 6:00, 14:00, 22:00). Gebruiker “admin”, wachtwoord “adminadmin”, ontgrendelingswachtwoord “unlockunlock”.
Containerafbeelding#
NetHSM container images are available for testing and production.
Integratie in aangepaste toepassing#
Om de NetHSM te integreren in eigen toepassingen, zijn er clientbibliotheken beschikbaar voor bijna alle programmeertalen. Hier zijn bibliotheken voor Python en Rust evenals deze derde partij Rust crate. Voor alle andere programmeertalen raden we aan OpenAPI Generator te gebruiken.
De lijst van alle beschikbare talen kan als volgt worden opgevraagd.
$ docker run --rm -ti openapitools/openapi-generator-cli list -i stable
$ podman run --rm -ti openapitools/openapi-generator-cli list -i stable
De NetHSM-client kan als volgt voor uw programmeertaal worden gegenereerd.
$ docker run --rm -ti -v "${PWD}/out:/out" openapitools/openapi-generator-cli generate -i=https://nethsmdemo.nitrokey.com/api_docs/nethsm-api.yaml -o out -g javascript
$ podman run --rm -ti -v "${PWD}/out:/out" openapitools/openapi-generator-cli generate -i=https://nethsmdemo.nitrokey.com/api_docs/nethsm-api.yaml -o out -g javascript
De gegenereerde client code, in dit voorbeeld JavaScript, wordt aangemaakt in de ./out/
directory. Deze map bevat ook de nodige documentatie over het gebruik ervan.
Belangrijk
Als Podman wordt gebruikt met handhaving van SELinux, kan een labeling van de volumemount nodig zijn. De modus van SELinux kan worden opgevraagd met sestatus |grep "Current mode"
. Als de modus is ingesteld op enforcing
, is een wijziging van de context vereist. In dit geval moet de volume mount worden gepostfixed met :z
, wat resulteert in -v "${PWD}/out:/out:z"
.
Opdrachtregelinterface#
Gebruikers kunnen een NetHSM beheren en gebruiken met een speciale commandoregelinterface (CLI). Nitrokey biedt nitropy
, die wordt gedistribueerd in de Python gebaseerde pynitrokey. Met nethsm
bestaat er een alternatieve applicatie van derden, die is ontwikkeld in het Rust crate nethsm-cli.