借助 Certificate Provisioning API,您可以将证书颁发机构与 ChromeOS 客户端证书配置集成。
ChromeOS 管理员可以配置其 ChromeOS 设备或 ChromeOS 用户,以便从外部证书授权机构请求客户端证书。证书授权机构通过证书配置适配器(例如 Google Cloud Certificate Connector [GCCC])与 Certificate Provisioning API 进行交互。每个证书配置适配器都会通过 Pub/Sub 接收有关新的证书配置请求的通知,然后使用 Certificate Provisioning API 与请求证书的 ChromeOS 设备或 ChromeOS 用户交互。
此服务涉及以下主要概念:
- 客户端证书是指为 ChromeOS 设备或 ChromeOS 用户颁发的 X.509 数字证书。密钥对是在设备上生成的,并且私钥从不会离开设备。
- 证书预配过程(由资源 CertificateProvisioningProcess 表示)描述了预配客户端证书的过程。请求证书的客户端是 ChromeOS 设备或 ChromeOS 用户。
- 证书配置文件用于描述管理员对客户端证书的配置。系统会为客户端预配适用于其的每个配置文件的证书。
证书配置流程的一般流程如下:
- 客户端提取客户端证书配置文件后,会启动与证书配置文件资源相关联的证书配置流程。
- 订阅了相关 Pub/Sub 主题的每个证书预配适配器都会收到有关新的证书预配流程的通知。Pub/Sub 通知包含一个 CertificateProvisioningPubsubNotification proto 消息,用于传达证书配置过程的唯一 ID。
- 每个证书配置适配器都可以访问证书配置流程资源,请参阅 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 方法简要概览
网址相对于 https://chromemanagement.googleapis.com/v1/customers/{customer_id}
如需查看示例请求和响应,请参阅代码示例。
API 范围
Chrome 管理 API 需要以下 OAuth 范围:
https://www.googleapis.com/auth/chrome.management.certprov.provisioningprocess
如需了解详情,请参阅身份验证概览。