Integrazione#
Il capitolo descrive i processi per i vari compiti e si rivolge a tutti i gruppi di utenti.
REST-API#
L’interfaccia principale di NetHSM è una moderna REST-API che garantisce le migliori prestazioni e funzionalità. Le specifiche dell’API sono disponibili nel formato OpenAPI, e possono essere ispezionate e testate nel browser API ` <https://nethsmdemo.nitrokey.com/api_docs/index.html>`_ .
PKCS#11#
NetHSM supporta lo standard PKCS#11. Il driver necessario è disponibile presso il repository ` <https://github.com/Nitrokey/nethsm-pkcs11>`__. Il repository contiene il codice sorgente e le librerie, per diversi sistemi operativi. La guida PKCS#11 descrive l’uso in dettaglio.
Sviluppo e test#
Istanza demo#
Un’istanza demo pubblica di NetHSM è disponibile all’indirizzo nethsmdemo.nitrokey.com. Verrà ripristinata ogni otto ore (CET 6:00, 14:00, 22:00). Utente «admin», password «adminadmin», password di sblocco «unlockunlock».
Immagine del contenitore#
NetHSM container images are available for testing and production.
Integrazione all’applicazione personalizzata#
Per integrare NetHSM nelle proprie applicazioni personalizzate, sono disponibili librerie client per quasi tutti i linguaggi di programmazione. Sono disponibili librerie per Python e Rust nonché questo crate Rust di terze parti. Per tutti gli altri linguaggi di programmazione si consiglia di utilizzare OpenAPI Generator.
L’elenco di tutte le lingue disponibili può essere recuperato come segue.
$ docker run --rm -ti openapitools/openapi-generator-cli list -i stable
$ podman run --rm -ti openapitools/openapi-generator-cli list -i stable
Il client NetHSM può essere generato per il vostro linguaggio di programmazione come segue.
$ 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
Il codice client generato, in questo esempio JavaScript, sarà creato nella cartella ./out/
. Questa cartella contiene anche la documentazione necessaria al suo utilizzo.
Importante
Se Podman viene usato con SELinux, potrebbe essere necessaria un’etichettatura del montaggio del volume. La modalità di SELinux può essere richiesta con sestatus |grep "Current mode"
. Se la modalità è impostata su enforcing
, è necessaria una modifica del contesto. In questo caso il montaggio del volume deve essere postfissato con :z
, ottenendo -v "${PWD}/out:/out:z"
.
Interfaccia a riga di comando#
Gli utenti possono amministrare e utilizzare un NetHSM utilizzando un’interfaccia a riga di comando (CLI) dedicata. Nitrokey offre nitropy
, che è distribuito nel crate Python pynitrokey. Con nethsm
esiste un’applicazione alternativa di terze parti, sviluppata nel crate Rust nethsm-cli.