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.