API Certificate Provisioning

A API Certificate Provisioning permite a integração de autoridades certificadoras com o provisionamento de certificados do cliente do ChromeOS.

Os administradores do ChromeOS podem configurar os dispositivos ou usuários do ChromeOS para solicitar certificados de cliente de uma autoridade certificadora externa. A autoridade de certificação interage com a API Certificate Provisioning por meio de adaptadores de provisionamento de certificado (por exemplo, o Conector de Certificação do Google Cloud (GCCC, na sigla em inglês)). Cada adaptador recebe notificações sobre novas solicitações de provisionamento de certificado pelo Pub/Sub e, em seguida, usa a API Certificate Provisioning para interagir com o dispositivo ChromeOS ou o usuário ChromeOS que solicita um certificado.

Esse serviço funciona com os seguintes conceitos principais:

  • Um certificado do cliente é um certificado digital X.509 emitido para um usuário ou dispositivo ChromeOS. O par de chaves é gerado no dispositivo, e a chave privada nunca sai dele.
  • Um processo de provisionamento de certificado (representado pelo recurso CertificateProvisioningProcess) descreve o processo de provisionamento de um certificado do cliente. O cliente que solicita um certificado é um dispositivo ou usuário do ChromeOS.
  • Um perfil de provisionamento de certificado descreve a configuração do administrador para um certificado de cliente. Os clientes recebem um certificado para cada perfil que se aplica a eles.

Fluxo geral de um processo de provisionamento de certificado:

  • Depois que um cliente busca um perfil de certificado, ele inicia um processo de provisionamento de certificado, que é vinculado a um recurso de provisionamento de certificado.
  • Cada adaptador de provisionamento de certificado que está inscrito no tópico relevante do Pub/Sub recebe uma notificação sobre um novo processo de provisionamento de certificado. A notificação do Pub/Sub contém uma mensagem proto CertificateProvisioningPubsubNotification que transmite o ID exclusivo do processo de provisionamento do certificado.
  • Cada adaptador de provisionamento de certificado pode acessar o recurso de processo de provisionamento de certificado. Consulte o método get.
  • Várias instâncias de adaptador podem ser executadas em paralelo e podem tentar reivindicar o mesmo processo de provisionamento de certificado simultaneamente. Consulte o método claim. No entanto, o método de reivindicação só terá sucesso para uma única instância do adaptador, que também precisa processar as etapas restantes do processo de provisionamento do certificado.
  • O adaptador de provisionamento de certificados pode solicitar uma assinatura criptográfica gerada usando a chave privada do cliente. Consulte o método signData. Esse método retorna uma operação de longa duração.
  • O adaptador de provisionamento de certificado recebe periodicamente o estado da operação de longa duração. Consulte o método get.
  • O adaptador de provisionamento de certificado faz upload de um certificado para o processo de provisionamento de certificado. Consulte o método uploadCertificate. Esse certificado é importado pelo cliente do ChromeOS.
  • Durante todo o processo de provisionamento de certificados, o adaptador pode marcar o processo de provisionamento de certificados como com falha. Consulte o método setFailure. A página de configuração de certificados no cliente ChromeOS mostra a mensagem de erro fornecida. O cliente tenta novamente o processo de provisionamento de certificado em certas ocasiões, por exemplo, após 24 horas ou após reiniciar o dispositivo.

Formato inicial da mensagem do Pub/Sub

A mensagem inicial do Pub/Sub enviada aos adaptadores de provisionamento de certificados para notificá-los sobre um novo processo de provisionamento de certificados segue o formato abaixo:

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

Visão geral rápida dos métodos da API

Os URLs são relativos a https://chromemanagement.googleapis.com/v1/customers/{customer_id}

Descrição URL relativo Método HTTP
Receber um processo de provisionamento de certificado /certificateProvisioningProcess/{certificate_provisioning_process_id} GET
Reivindicar um processo de provisionamento de certificado /certificateProvisioningProcess/{certificate_provisioning_process_id}:claim POST
Solicitar uma assinatura criptográfica /certificateProvisioningProcess/{certificate_provisioning_process_id}:signData POST
Fazer upload de um certificado /certificateProvisioningProcess/{certificate_provisioning_process_id}:uploadCertificate POST
Marcar o processo de provisionamento do certificado como falhou /certificateProvisioningProcess/{certificate_provisioning_process_id}:setFailure POST
Operação de longa duração para receber dados de assinatura /certificateProvisioningProcess/{certificate_provisioning_process_id}/operations/{operation_id} GET

Consulte os exemplos de código para pedir e responder.

Escopos da API

A API Chrome Management requer o seguinte escopo do OAuth:

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

Para mais informações, consulte a Visão geral da autenticação.