API предоставления сертификатов

API предоставления сертификатов позволяет интегрировать центры сертификации с предоставлением сертификатов клиента ChromeOS.

Администраторы ChromeOS могут настроить свои устройства ChromeOS или пользователей ChromeOS на запрос клиентских сертификатов у внешнего центра сертификации. Центр сертификации взаимодействует с API предоставления сертификатов через адаптеры предоставления сертификатов (например, соединитель облачного сертификата Google (GCCC)). Каждый адаптер предоставления сертификатов получает уведомления о новых запросах на предоставление сертификатов через Pub/Sub, а затем использует API предоставления сертификатов для взаимодействия с устройством ChromeOS или пользователем ChromeOS, запрашивающим сертификат.

Этот сервис работает со следующими основными концепциями:

  • Сертификат клиента – это цифровой сертификат X.509, выданный для устройства ChromeOS или пользователя ChromeOS. Пара ключей генерируется на устройстве, и закрытый ключ никогда не покидает устройство.
  • Процесс предоставления сертификата (представленный ресурсом CertificateProvisioningProcess ) описывает процесс предоставления сертификата клиента. Клиент, запрашивающий сертификат, является либо устройством ChromeOS, либо пользователем ChromeOS.
  • Профиль предоставления сертификата описывает конфигурацию администратора для сертификата клиента. Клиентам предоставляется сертификат для каждого профиля, который к ним применяется.

Общий порядок процесса предоставления сертификата:

  • После того как клиент получает профиль сертификата клиента, он запускает процесс предоставления сертификата, который привязан к ресурсу предоставления сертификата.
  • Каждый адаптер предоставления сертификатов, подписанный на соответствующую тему Pub/Sub, получает уведомление о новом процессе предоставления сертификата. Уведомление Pub/Sub содержит прототипное сообщение CertificateProvisioningPubsubNotification , передающее уникальный идентификатор процесса предоставления сертификата.
  • Каждый адаптер предоставления сертификатов может получить доступ к ресурсу процесса предоставления сертификатов, см. метод get .
  • Несколько экземпляров адаптера могут работать параллельно и одновременно пытаться запросить один и тот же процесс предоставления сертификата, см. метод утверждения . Однако метод утверждения будет успешным только для одного экземпляра адаптера, который затем также должен будет выполнить оставшиеся этапы процесса предоставления сертификата.
  • Адаптер предоставления сертификатов может запросить криптографическую подпись, созданную с использованием закрытого ключа клиента, см. метод SignData . Этот метод возвращает длительную операцию Operation .
  • Адаптер предоставления сертификатов периодически получает состояние длительной операции, см. метод get .
  • Адаптер предоставления сертификатов загружает сертификат для процесса предоставления сертификата, см. метод uploadCertificate . Этот сертификат импортируется клиентом ChromeOS.
  • На протяжении всего процесса предоставления сертификата адаптер может пометить процесс предоставления сертификата как неудачный, см. метод setFailure . На странице настройки сертификатов в клиенте ChromeOS отображается указанное сообщение об ошибке. Клиент повторяет процесс предоставления сертификата в определенных случаях, например, через 24 часа или после перезагрузки устройства.

Исходный формат сообщения Pub/Sub

Первоначальное сообщение Pub/Sub, которое отправляется адаптерам предоставления сертификатов для уведомления их о новом процессе предоставления сертификата, имеет следующий формат:

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

Краткий обзор методов API

URL-адреса указаны относительно https://chromemanagement.googleapis.com/v1/customers/{customer_id}

Описание Относительный URL HTTP-метод
Получить процесс предоставления сертификата /certificateProvisioningProcess/{certificate_provisioning_process_id} ПОЛУЧАТЬ
Запросить процесс предоставления сертификата /certificateProvisioningProcess/{certificate_provisioning_process_id}: претензия ПОЧТА
Запросить криптографическую подпись /certificateProvisioningProcess/{certificate_provisioning_process_id}:signData ПОЧТА
Загрузить сертификат /certificateProvisioningProcess/{certificate_provisioning_process_id}:uploadCertificate ПОЧТА
Отметить процесс предоставления сертификата как неудачный /certificateProvisioningProcess/{certificate_provisioning_process_id}:setFailure ПОЧТА
Получение данных о знаках, длительная операция /certificateProvisioningProcess/{certificate_provisioning_process_id}/operations/{operation_id} ПОЛУЧАТЬ

См. примеры кода , например запросы и ответы.

Области API

Для API управления Chrome требуется следующая область действия OAuth:

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

Для получения дополнительной информации см. Обзор аутентификации .