Certificate Provisioning API

借助 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}

说明 相对网址 Http 方法
获取证书配置流程 /certificateProvisioningProcess/{certificate_provisioning_process_id} GET
声明证书配置流程 /certificateProvisioningProcess/{certificate_provisioning_process_id}:claim POST
请求加密签名 /certificateProvisioningProcess/{certificate_provisioning_process_id}:signData POST
上传证书 /certificateProvisioningProcess/{certificate_provisioning_process_id}:uploadCertificate POST
将证书预配流程标记为失败 /certificateProvisioningProcess/{certificate_provisioning_process_id}:setFailure POST
获取签名数据长时间运行的操作 /certificateProvisioningProcess/{certificate_provisioning_process_id}/operations/{operation_id} GET

如需查看示例请求和响应,请参阅代码示例

API 范围

Chrome 管理 API 需要以下 OAuth 范围:

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

如需了解详情,请参阅身份验证概览