API Certificate Provisioning

L'API de provisionnement de certificats permet d'intégrer des autorités de certification au provisionnement de certificats client ChromeOS.

Les administrateurs ChromeOS peuvent configurer leurs appareils ChromeOS ou leurs utilisateurs ChromeOS pour qu'ils demandent des certificats client à une autorité de certification externe. L'autorité de certification interagit avec l'API Certificate Provisioning via des adaptateurs de provisionnement de certificats (par exemple, le connecteur de certificat Google Cloud (GCCC)). Chaque adaptateur de provisionnement de certificats reçoit des notifications sur les nouvelles demandes de provisionnement de certificats via Pub/Sub, puis utilise l'API de provisionnement de certificats pour interagir avec l'appareil ChromeOS ou l'utilisateur ChromeOS qui demande un certificat.

Ce service repose sur les concepts principaux suivants:

  • Un certificat client est un certificat numérique X.509 émis pour un appareil ChromeOS ou un utilisateur ChromeOS. La paire de clés est générée sur l'appareil et la clé privée ne quitte jamais l'appareil.
  • Un processus de provisionnement de certificat (représenté par la ressource CertificateProvisioningProcess) décrit le processus de provisionnement d'un certificat client. Le client qui demande un certificat est un appareil ChromeOS ou un utilisateur ChromeOS.
  • Un profil de provisionnement de certificat décrit la configuration de l'administrateur pour un certificat client. Les clients reçoivent un certificat pour chaque profil qui leur est applicable.

Flux général d'un processus de provisionnement de certificat:

  • Une fois qu'un client a récupéré un profil de certificat client, il lance un processus de provisionnement de certificat associé à une ressource de provisionnement de certificat.
  • Chaque adaptateur de provisionnement de certificats abonné au sujet Pub/Sub concerné reçoit une notification concernant un nouveau processus de provisionnement de certificats. La notification Pub/Sub contient un message proto CertificateProvisioningPubsubNotification qui transmet l'ID unique du processus de provisionnement de certificat.
  • Chaque adaptateur de provisionnement de certificat peut accéder à la ressource du processus de provisionnement de certificat. Consultez la méthode get.
  • Plusieurs instances d'adaptateur peuvent s'exécuter en parallèle et peuvent essayer de revendiquer le même processus de provisionnement de certificats simultanément. Consultez la méthode claim. Toutefois, la méthode de revendication ne réussira que pour une seule instance d'adaptateur, qui doit ensuite également gérer les étapes restantes du processus de provisionnement de certificats.
  • L'adaptateur de provisionnement de certificats peut demander une signature cryptographique générée à l'aide de la clé privée du client. Pour en savoir plus, consultez la méthode signData. Cette méthode renvoie une opération de longue durée.
  • L'adaptateur de provisionnement de certificats obtient périodiquement l'état de l'opération de longue durée. Consultez la méthode get.
  • L'adaptateur de provisionnement de certificats importe un certificat pour le processus de provisionnement de certificats. Consultez la méthode uploadCertificate. Ce certificat est importé par le client ChromeOS.
  • Tout au long du processus de provisionnement de certificat, l'adaptateur peut marquer le processus de provisionnement de certificat comme ayant échoué. Consultez la méthode setFailure. La page des paramètres des certificats du client ChromeOS affiche le message d'erreur fourni. Le client réessaie le processus de provisionnement de certificat dans certains cas, par exemple après 24 heures ou après le redémarrage de l'appareil.

Format de message Pub/Sub initial

Le message Pub/Sub initial envoyé aux adaptateurs de provisionnement de certificats pour les informer d'un nouveau processus de provisionnement de certificats respecte le format suivant:

message CertificateProvisioningProcessCreatedEventData {
  // Unique ID of the certificate provisioning process.
  string certificate_provisioning_process_id = 1;

  // The customer ID to which the client of the certificate provisioning process
  // belongs.
  string customer_id = 2;
}

// Content of the pubsub message that is sent to the adapter to notify it about
// a new event that should be handled.
message CertificateProvisioningPubsubNotification {
  oneof event {
    // Event data of the certificate provisioning process that was created.
    CertificateProvisioningProcessCreatedEventData
        certificate_provisioning_process_created_event_data = 1;
  }
}

Présentation rapide des méthodes API

Les URL sont relatives à https://chromemanagement.googleapis.com/v1/customers/{customer_id}

Description URL relative Méthode HTTP
Obtenir un processus de provisionnement de certificat /certificateProvisioningProcess/{certificate_provisioning_process_id} GET
Revendiquer un processus de provisionnement de certificat /certificateProvisioningProcess/{certificate_provisioning_process_id}:claim PUBLIER
Demander une signature cryptographique /certificateProvisioningProcess/{certificate_provisioning_process_id}:signData PUBLIER
Importer un certificat /certificateProvisioningProcess/{certificate_provisioning_process_id}:uploadCertificate PUBLIER
Marquer le processus de provisionnement du certificat comme ayant échoué /certificateProvisioningProcess/{certificate_provisioning_process_id}:setFailure PUBLIER
Opération de longue durée "Get sign data" (Obtenir les données de signature) /certificateProvisioningProcess/{certificate_provisioning_process_id}/operations/{operation_id} GET

Consultez les exemples de code pour voir des exemples de requêtes et de réponses.

Champs d'application des API

L'API Chrome Management nécessite le champ d'application OAuth suivant:

https://www.googleapis.com/auth/chrome.management.certprov.provisioningprocess

Pour en savoir plus, consultez la section Présentation de l'authentification.