> For the complete documentation index, see [llms.txt](https://docs.medcrypt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.medcrypt.com/fr/guardian/understand-device-provisioning/begin-device-provisioning/provision-devices-using-api.md).

# Provisionner des appareils à l’aide de l’API

## Présentation

L’API Guardian assure le provisionnement complet des appareils tout au long de leur cycle de vie, ainsi que des communications sécurisées et des opérations cryptographiques pour les dispositifs médicaux. En intégrant directement la [bibliothèque Guardian](/fr/guardian/get-started.md#guardian-components) à votre code d’application, vous obtenez un contrôle programmatique sur l’ensemble du processus de provisionnement, sans intervention manuelle ni outil externe.

Cette rubrique porte sur les trois principaux flux de travail de provisionnement que vous pouvez réaliser avec l’API :

* [Appareils déconnectés](#disconnected-device-provisioning)
* [Appareils connectés](#connected-device-provisioning)
* [Provisionnement par proxy](#proxy-device-provisioning)

Consultez la rubrique [Terminologie](/fr/guardian/get-started/guardian-terminology.md) pour en savoir plus sur les termes processus, plateforme, provisionnement et autres.

### Quand utiliser l’API

* Vous devez intégrer directement la logique de provisionnement au logiciel de votre appareil.
* Vous avez besoin de flux de provisionnement automatisés, sans intervention manuelle.
* Vous avez besoin d’un contrôle précis du processus de provisionnement.
* Vous devez vous intégrer aux systèmes de gestion des appareils existants.

## Prérequis généraux

Avant de commencer le provisionnement des appareils, vérifiez que vous avez :

* un compte Guardian ;
* créé et configuré votre système dans Guardian ;
* reçu votre package de provisionnement de Medcrypt ;
* téléchargé et installé Guardian Library pour votre plateforme ;
* installé le package de provisionnement sur votre appareil.

## **Provisionnement de dispositifs déconnectés**

**Quand l’utiliser :** Pour les appareils dépourvus de connectivité réseau, lorsque les demandes de provisionnement doivent être transférées manuellement vers Guardian Cloud. Pour plus d’informations sur les types et extensions de fichiers, consultez [Types de fichiers Guardian](/fr/guardian/understand-device-provisioning/begin-device-provisioning.md#guardian-file-types-and-extensions).

1. **Préparer les fichiers de provisionnement :** Chargez le contenu des fichiers de provisionnement dans la mémoire de votre application. Il s’agit des fichiers suivants :

   1. TrustStore (`.mcts`)
   2. Identité privée pour le provisionnement (`.mcpip`)
   3. Profil certifié pour le provisionnement (`.mcpp`)

   Votre application désigne le logiciel que vous développez et qui intègre la bibliothèque Guardian.
2. **Créer une nouvelle instance Guardian :** Cette action initialise les variables membres et place le système dans un état de démarrage.
3. **Générer la demande de provisionnement et les fichiers d’identité privée :** Appelez la fonction [GenerateProvisionRequest()](#step-3-generate-device-provisioning-request) Il s’agit de la première étape du provisionnement et de la seule étape du processus hors ligne. Elle génère les clés de l’appareil et crée un fichier de demande de provisionnement (`.mcpr`) ainsi qu’un fichier d’identité privée (`.mcpi`). Le fichier `.mcpi` contient les clés privées qui restent sur l’appareil.
4. Enregistrez les fichiers générés de demande de provisionnement et d’identité privée dans un stockage local.
5. **Téléverser la demande de provisionnement (PR) :** Téléversez manuellement le fichier de demande de provisionnement vers Guardian Cloud.
6. **Télécharger le profil certifié**: Une fois la demande de provisionnement traitée et approuvée, téléchargez le fichier `.mcp` depuis l’interface utilisateur de Guardian Cloud.
7. **Installer le profil certifié sur l’appareil**: Transférez le fichier `.mcp` vers l’appareil où se trouve le fichier `.mcpi` afin de terminer le provisionnement.

## **Provisionnement de dispositifs connectés**

**Quand l’utiliser :** Pour les appareils disposant d’une connectivité réseau et pouvant communiquer directement avec Guardian Cloud. Le processus est entièrement automatisé et ne nécessite aucune intervention manuelle. Pour plus d’informations sur les types et extensions de fichiers, consultez [Types de fichiers Guardian](/fr/guardian/understand-device-provisioning/begin-device-provisioning.md#guardian-file-types-and-extensions).

1. Suivez les étapes 1 à 3 de [Provisionnement hors connexion](#disconnected-device-provisioning) ci-dessus pour charger vos fichiers de provisionnement, démarrer Guardian et générer les fichiers PR et d’identité privée.
2. **Soumettre la PR à Guardian Cloud :** Appelez [StartProvisioningOnline()](/fr/guardian/api-overview.md#startprovisioningonline) pour soumettre automatiquement la demande de provisionnement. Cette opération lance la machine à états du provisionnement en ligne et démarre la communication avec Guardian Cloud.
3. **Suivre la progression du provisionnement :**
   1. Appelez la fonction Run de manière répétée dans la boucle principale de votre application afin d’exécuter les tâches en arrière-plan.
   2. Utilisez [IsProvisioningRunning()](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-isprovisioningrunning) pour vérifier si le processus est toujours actif.
4. **Récupérer et enregistrer le profil certifié :**
   1. Lorsque [IsProvisioningRunning()](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-isprovisioningrunning) renvoie `false`, le processus est terminé.
   2. Appelez [GetProvisionedProfile()](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-getprovisionedprofile) pour récupérer le profil certifié finalisé.
5. Conservez ou enregistrez ce fichier dans le stockage de votre appareil.

## Provisionnement de dispositifs via un proxy

**Quand l’utiliser :** Utiliser un appareil connecté (le proxy) pour traiter les demandes de provisionnement d’autres appareils déconnectés.

**Prérequis de configuration**

* L’appareil **proxy doit être provisionné comme un composant entièrement en ligne** avant de pouvoir téléverser les demandes de provisionnement d’autres appareils.
* Le fichier `.mcpr` de l’appareil déconnecté doit d’abord être transféré vers l’appareil proxy

**Provisionner à l’aide d’un proxy**

1. **Initialiser l’appareil proxy :** L’appareil proxy doit d’abord être provisionné comme un composant entièrement en ligne. Vous devez initialiser l’instance Guardian sur l’appareil proxy avec son propre profil certifié (`.mcp`) – il s’agit du fichier de profil final.
2. **Récupérer et enregistrer le profil certifié pour l’autre appareil :**
   1. Lorsque [IsProvisioningRunning()](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-isprovisioningrunning) renvoie `false`, le processus est terminé.
   2. Appelez [GetProvisionedProfile()](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-getprovisionedprofile) pour récupérer le profil certifié finalisé.
3. **Installer le profil certifié sur l’appareil**: Transférez le fichier `.mcp` vers l’appareil où se trouve le fichier `.mcpi` afin de terminer le provisionnement.

## Présentation des fonctions

### Fonctions de provisionnement des appareils

* [Guardian](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-guardian)  : le constructeur ne fait rien d’autre qu’initialiser les variables membres.
* [Initialize](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-initialize) : utilise les fichiers de profil, d’identité et de confiance fournis pour initialiser le système Guardian.
* [GenerateProvisionRequest](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-generateprovisionrequest) : il s’agit de la première étape du processus de provisionnement de l’appareil.
* [StartProvisioningOnline](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-startprovisioningonline) : lance le processus de provisionnement en ligne de l’appareil.
* [IsProvisioningRunning](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-isprovisioningrunning) : vérifie si le processus de provisionnement est actif.
* [GetProvisionedProfile](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-getprovisionedprofile): Extraire le profil certifié provisionné pour l’appareil après la réussite du provisionnement de l’appareil.

### Fonctions de gestion des certificats

* [GetCertificateManager :](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-getcertificatemanager) Récupérer le gestionnaire de certificats en cours d’exécution.
* [GetProvisionedRevocationList](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-getprovisionedrevocationlist): Récupérer la liste de révocation des certificats et la charger dans un tampon.

### **Fonctions des opérations de sécurité**

* [FindSecureOperation](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-findsecureoperation): Effectuer une recherche pour obtenir le gestionnaire d’opérations sécurisées destiné à la signature et à la vérification

### **Fonctions de gestion des services**

* [FindService :](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-findservice) Rechercher un nom de service afin de localiser un service configuré.
* [CreateTask](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-createtask): Créer une tâche pour les opérations de service, de session ou de canal, qui sépare l’objet fourni et tous ses objets enfants de [Run](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-run).

### **Fonctions de gestion du système**

* [GetAuthenticationManager](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-getauthenticationmanager): Récupérer le gestionnaire d’authentification en cours d’exécution.
* [GetTelemetryManager](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-gettelemetrymanager): Récupérer le gestionnaire de télémétrie en cours d’exécution.
* [\~Guardian](https://docs.medcrypt.com/fr/guardian/understand-device-provisioning/begin-device-provisioning/pages/b08fbafd46eb61c6a22ceef5fa899c7c540c34d3#function-~guardian): Le destructeur tente d’arrêter Guardian de manière gracieuse.
* [Shutdown](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-shutdown): Arrêt propre de Guardian

## Types de fichiers

Guardian utilise plusieurs types de fichiers, dotés d’extensions spécifiques, au cours du processus de provisionnement :

**Provision Request :** Fichier utilisé pour transmettre des informations, notamment des clés publiques, au système dorsal de Guardian Cloud. Il contient les demandes de signature de certificat (CSR) envoyées à Guardian Cloud. Extension : `.mcpr`

**TrustStore :** Ancres de confiance de la plateforme Guardian. Extension : `.mcts`

**Fichiers de profil :**

1. **Profil certifié à provisionner :** Instructions et configuration signées pour la bibliothèque Guardian et les opérations de provisionnement. Il s’agit du modèle de profil initial créé pour ce type d’appareil pendant le processus de provisionnement. Extension : `.mcpp`
2. **Profil certifié :** Instructions et configuration signées pour l’exécution de la bibliothèque Guardian et les opérations de reprovisionnement. Il s’agit du profil final de l’appareil créé pendant le processus de provisionnement. Extension : `.mcp`

**Fichiers d’identité :**

1. **Identité privée à provisionner :** Matériel de clé pour les opérations de provisionnement initial et les connexions. Il s’agit du modèle d’identité privée initial. Extension : `.mcpip`
2. **Identité privée :** Matériel de clé pour les opérations et les connexions de reprovisionnement et d’exécution. Il s’agit du fichier d’identité privée final, qui contient les clés privées conservées sur l’appareil. Extension : `.mcpi`

* **Liste de révocation des certificats :** Les certificats révoqués sont inclus dans le fichier `.mccrl` .

## Flux de configuration et de provisionnement de l’appareil

Les étapes suivantes couvrent les principales fonctions de provisionnement de Guardian.

### Étape 1 : créer une instance de Guardian

La fonction `Guardian()` crée une nouvelle instance de Guardian et la place dans l’état de démarrage, prête à être initialisée. Pour plus de détails, consultez la section [Fonction Guardian](/fr/guardian/api-overview.md#guardian) .

### Étape 2 : initialiser Guardian

La fonction `Initialize()` initialise Guardian à l’aide des informations d’identification de l’appareil et des fichiers de configuration. Elle utilise le profil, l’identité et les fichiers de confiance fournis pour initialiser le système Guardian. Pour plus de détails, consultez la section [Fonction Initialize](/fr/guardian/api-overview.md#initialize) .

### Étape 3 : générer une demande de provisionnement de l’appareil

La fonction `GenerateProvisionRequest()` crée une demande de provisionnement afin d’établir l’identité de l’appareil. Pour plus de détails, consultez la section [Fonction GenerateProvisionRequest](/fr/guardian/api-overview.md#generateprovisionrequest) .

### Étape 4 : soumettre et traiter la demande de provisionnement

La fonction `StartProvisioningOnline()` La fonction lance le processus de provisionnement en ligne afin que les appareils connectés envoient une demande de provisionnement à Guardian Cloud.

### Étape 5 : surveiller le provisionnement et récupérer le profil certifié de l’appareil

1. Appelez `Run()` à plusieurs reprises pour traiter les tâches de provisionnement.
2. Appelez `IsProvisioningRunning()` pour vérifier si le provisionnement est terminé.
3. Lorsque `IsProvisioningRunning()` renvoie false, appelez `GetProvisionedProfile()` pour récupérer le profil certifié.

Consultez les [fonctions de traitement des demandes](/fr/guardian/api-overview.md#run) pour plus de détails.

## Débogage et journalisation

Guardian ne crée pas de fichiers journaux. La journalisation est plutôt contrôlée par l’application :

* Guardian écrit les journaux dans `stdout` et `stderr`, qui s’affichent dans le terminal/la CLI de l’application en cours d’exécution. Recherchez dans la sortie les codes d’erreur spécifiques ou les échecs de connexion.
* **Journalisation personnalisée :** Utilisez `SetLoggingCallback` pour rediriger les messages de journalisation vers une fonction de rappel, interrompre leur affichage dans le terminal et permettre un traitement personnalisé des journaux
* **Contrôle de la journalisation :** Les applications peuvent contrôler le niveau et le degré de détail de la journalisation.
* **Interface utilisateur de Guardian Cloud**: Consultez l’interface Guardian Cloud pour obtenir des détails supplémentaires sur les erreurs et connaître l’état du provisionnement.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.medcrypt.com/fr/guardian/understand-device-provisioning/begin-device-provisioning/provision-devices-using-api.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
