Intégration

Ce chapitre décrit des processus pour diverses tâches et s’adresse à tous les groupes d’utilisateurs.

REST-API

L’interface principale de NetHSM est une API REST moderne qui garantit les meilleures performances et fonctionnalités. La spécification de l’API est disponible au format OpenAPI, et peut être inspectée et testée dans le navigateur API.

PKCS#11

Le NetHSM prend en charge la norme PKCS#11. Le pilote requis est disponible dans le dépôt <https://github.com/Nitrokey/nethsm-pkcs11> __. Le dépôt contient le code source et les bibliothèques, pour différents systèmes d’exploitation. Le guide PKCS#11 décrit l’utilisation en détail.

Développement et essais

Instance de démonstration

Une instance publique de démonstration de NetHSM est disponible à l’adresse nethsmdemo.nitrokey.com. Elle sera réinitialisée toutes les huit heures (CET 6:00, 14:00, 22:00). Utilisateur « admin », mot de passe « adminadmin », mot de passe de déverrouillage « unlockunlock ».

Image du conteneur

Les images du conteneur NetHSM ` <container/index.html>` __ sont disponibles pour les tests et la production.

Intégration dans une application personnalisée

Pour intégrer le NetHSM dans des applications personnalisées, des bibliothèques clients sont disponibles pour presque tous les langages de programmation. Voici les bibliothèques pour Python et Rust ainsi que ce crate Rust tiers. Pour tous les autres langages de programmation, nous recommandons d’utiliser OpenAPI Generator.

La liste de toutes les langues disponibles peut être récupérée comme suit.

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

Le client NetHSM peut être généré pour votre langage de programmation comme suit.

$ 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

Le code client généré, dans cet exemple JavaScript, sera créé dans le répertoire ./out/`. Ce dossier contient également la documentation nécessaire à son utilisation.

Important

Si Podman est utilisé avec SELinux, un étiquetage du montage du volume peut être nécessaire. Le mode de SELinux peut être demandé avec sestatus |grep "Current mode". Si le mode est défini à enforcing, un changement de contexte est nécessaire. Dans ce cas, le montage du volume doit être postfixé avec :z, ce qui donne -v "${PWD}/out:/out:z".

Interface de ligne de commande

Les utilisateurs peuvent administrer et utiliser un NetHSM à l’aide d’une interface de ligne de commande (CLI) dédiée. Nitrokey propose nitropy, qui est distribué dans la base Python pynitrokey. Avec nethsm, il existe une autre application tierce, développée dans le crate Rust nethsm-cli.