Integracja#

Rozdział opisuje procesy dla różnych zadań i skierowany jest do wszystkich grup użytkowników.

REST-API#

Podstawowym interfejsem NetHSM jest nowoczesny REST-API, który gwarantuje najlepszą wydajność i funkcjonalność. Specyfikacja API jest dostępna w formacie OpenAPI i może być sprawdzana i testowana w przeglądarce API ` <https://nethsmdemo.nitrokey.com/api_docs/index.html>`_ .

PKCS#11#

NetHSM obsługuje standard PKCS#11. Wymagany sterownik jest dostępny w repozytorium ` <https://github.com/Nitrokey/nethsm-pkcs11>`__. Repozytorium zawiera kod źródłowy i biblioteki dla różnych systemów operacyjnych. Przewodnik PKCS#11 szczegółowo opisuje jego użycie.

Rozwój i testowanie#

Instancja demonstracyjna#

Publiczna instancja demonstracyjna NetHSM jest dostępna pod adresem nethsmdemo.nitrokey.com. Będzie ona resetowana co osiem godzin (CET 6:00, 14:00, 22:00). Użytkownik „admin”, hasło „adminadmin”, hasło odblokowujące „unlockunlock”.

Obraz kontenera#

NetHSM container images are available for testing and production.

Integracja z aplikacją niestandardową#

Aby zintegrować NetHSM z własnymi aplikacjami, dostępne są biblioteki klienckie dla prawie wszystkich języków programowania. Poniżej znajdują się biblioteki dla Python i Rust jak również 3rd party Rust crate. Dla wszystkich innych języków programowania zalecamy użycie OpenAPI Generator.

Listę wszystkich dostępnych języków można wyszukać w następujący sposób.

$ docker run --rm -ti openapitools/openapi-generator-cli list -i stable

Klient NetHSM może zostać wygenerowany dla danego języka programowania w następujący sposób.

$ 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

Wygenerowany kod klienta, w tym przykładzie JavaScript, zostanie utworzony w katalogu ./out/. Katalog ten zawiera również niezbędną dokumentację jak go używać.

Ważne

Jeśli Podman jest używany z egzekwowaniem SELinux, może być wymagana etykieta do montowania woluminów. Tryb SELinuksa może być żądany za pomocą sestatus |grep "Current mode". Jeśli tryb jest ustawiony na enforcing, wymagana jest zmiana kontekstu. W tym przypadku uchwyt woluminu musi być postfiksowany z :z, co daje -v "${PWD}/out:/out:z".

Interfejs wiersza poleceń#

Użytkownicy mogą administrować i korzystać z NetHSM za pomocą dedykowanego interfejsu wiersza poleceń (CLI). Nitrokey oferuje nitropy, który jest dystrybuowany w opartym na Pythonie pynitrokey. W przypadku nethsm istnieje alternatywna aplikacja innej firmy, która została opracowana w crate Rust nethsm-cli.