API Certificate Provisioning

L'API Certificate Provisioning consente di integrare le autorità di certificazione con il provisioning dei certificati client di ChromeOS.

Gli amministratori di ChromeOS possono configurare i propri dispositivi ChromeOS o gli utenti ChromeOS per richiedere certificati client da un'autorità di certificazione esterna. L'autorità di certificazione interagisce con l'API Certificate Provisioning tramite gli adattatori di provisioning dei certificati (ad es. Google Cloud Certificate Connector (GCCC)). Ogni Certificate Provisioning Adapter riceve notifiche sulle nuove richieste di provisioning dei certificati tramite Pub/Sub e poi utilizza l'API Certificate Provisioning per interagire con il dispositivo ChromeOS o con l'utente ChromeOS che richiede un certificato.

Questo servizio funziona con i seguenti concetti principali:

  • Un certificato client è un certificato digitale X.509 emesso per un dispositivo o un utente ChromeOS. La coppia di chiavi viene generata sul dispositivo e la chiave privata non viene mai trasferita.
  • Una procedura di provisioning dei certificati (rappresentata dalla risorsa CertificateProvisioningProcess) descrive il processo di provisioning di un certificato client. Il client che richiede un certificato è un dispositivo ChromeOS o un utente ChromeOS.
  • Un profilo di provisioning dei certificati descrive la configurazione dell'amministratore per un certificato client. Per i clienti viene eseguito il provisioning di un certificato per ogni profilo che li riguarda.

Flusso generale di una procedura di provisioning dei certificati:

  • Dopo aver recuperato un profilo del certificato client, un client avvia una procedura di provisioning dei certificati associata a una risorsa di provisioning dei certificati.
  • Ogni Adapter per il provisioning dei certificati iscritto all'argomento Pub/Sub pertinente riceve una notifica relativa a una nuova procedura di provisioning dei certificati. La notifica Pub/Sub contiene un messaggio proto CertificateProvisioningPubsubNotification che trasmette l'ID univoco della procedura di provisioning del certificato.
  • Ogni adattatore di provisioning dei certificati può accedere alla risorsa del processo di provisioning dei certificati, vedi il metodo get.
  • È possibile eseguire più istanze di Adapter in parallelo e provare a rivendicare contemporaneamente la stessa procedura di provisioning del certificato. Consulta il metodo claim. Tuttavia, il metodo di rivendicazione avrà esito positivo solo per una singola istanza di Adapter, che deve quindi gestire anche i passaggi rimanenti della procedura di provisioning del certificato.
  • L'adattatore di provisioning dei certificati può richiedere una firma crittografica generata utilizzando la chiave privata del cliente, consulta il metodo signData. Questo metodo restituisce un'operazione a lunga esecuzione.
  • L'adattatore di provisioning dei certificati recupera periodicamente lo stato dell'operazione di lunga durata, consulta il metodo get.
  • L'adattatore di provisioning dei certificati carica un certificato per la procedura di provisioning dei certificati. Consulta il metodo uploadCertificate. Questo certificato viene importato dal client ChromeOS.
  • Durante l'intera procedura di provisioning dei certificati, l'adattatore può contrassegnare la procedura come non riuscita, consulta il metodo setFailure. La pagina delle impostazioni dei certificati sul client ChromeOS mostra il messaggio di errore fornito. Il client riprova la procedura di provisioning dei certificati in determinate occasioni, ad esempio dopo 24 ore o dopo il riavvio del dispositivo.

Formato iniziale del messaggio Pub/Sub

Il messaggio Pub/Sub iniziale inviato agli adattatori di provisioning dei certificati per informarli di una nuova procedura di provisioning dei certificati è conforme al seguente formato:

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;
  }
}

Panoramica rapida dei metodi API

Gli URL sono relativi a https://chromemanagement.googleapis.com/v1/customers/{customer_id}

Descrizione URL relativo Metodo HTTP
Ottenere una procedura di provisioning dei certificati /certificateProvisioningProcess/{certificate_provisioning_process_id} GET
Richiedere una procedura di provisioning dei certificati /certificateProvisioningProcess/{certificate_provisioning_process_id}:claim PUBBLICA
Richiedi una firma crittografica /certificateProvisioningProcess/{certificate_provisioning_process_id}:signData PUBBLICA
Caricare un certificato /certificateProvisioningProcess/{certificate_provisioning_process_id}:uploadCertificate PUBBLICA
Contrassegna la procedura di provisioning del certificato come non riuscita /certificateProvisioningProcess/{certificate_provisioning_process_id}:setFailure PUBBLICA
Operazione a lunga esecuzione per recuperare i dati della firma /certificateProvisioningProcess/{certificate_provisioning_process_id}/operations/{operation_id} GET

Consulta gli esempi di codice per richieste e risposte di esempio.

Ambiti API

L'API Chrome Management richiede il seguente ambito OAuth:

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

Per ulteriori informazioni, consulta la Panoramica dell'autenticazione.