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
Для получения дополнительной информации см. Обзор аутентификации .