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¶
To integrate the NetHSM into own custom applications, client libraries are available for almost all programming languages. Here are our libraries for Python and Rust as well as 3rd party Rust crate and Go library. For all other programming languages we recommend using OpenAPI Generator.
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.