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 zijn beschikbaar voor testen en productie.

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

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

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.