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¶
Obrazy kontenerów NetHSM ` <container/index.html>` __ są dostępne do testowania i produkcji.
Integracja z aplikacją niestandardową¶
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.
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
$ podman 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
$ 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
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.