憑證佈建 API

憑證佈建 API 可將憑證授權單位與 ChromeOS 用戶端憑證佈建作業整合。

ChromeOS 管理員可以設定 ChromeOS 裝置或 ChromeOS 使用者,以便向外部憑證授權單位申請用戶端憑證。憑證授權單位會透過憑證佈建適配器 (例如 Google Cloud Certificate Connector (GCCC)) 與憑證佈建 API 互動。每個憑證佈建適配器會透過 Pub/Sub 接收有關新憑證佈建要求的通知,然後使用憑證佈建 API 與要求憑證的 ChromeOS 裝置或 ChromeOS 使用者互動。

這項服務採用下列主要概念:

  • 用戶端憑證是針對 ChromeOS 裝置或 ChromeOS 使用者核發的 X.509 數位憑證。金鑰組會在裝置上產生,私密金鑰絕不會從裝置外洩。
  • 憑證佈建程序 (由資源 CertificateProvisioningProcess 代表) 說明佈建用戶端憑證的程序。申請憑證的用戶端可能是 ChromeOS 裝置或 ChromeOS 使用者。
  • 憑證佈建設定檔會說明管理員對用戶端憑證的設定。用戶端會為每個適用的設定檔佈建憑證。

憑證佈建程序的一般流程:

  • 用戶端擷取用戶端憑證設定檔後,就會啟動憑證佈建程序,該程序與憑證佈建資源相關聯。
  • 每個訂閱相關 Pub/Sub 主題的憑證佈建適配器,都會收到新憑證佈建程序的通知。Pub/Sub 通知包含 CertificateProvisioningPubsubNotification Proto 訊息,可傳達憑證佈建程序的專屬 ID。
  • 每個憑證佈建適配器都能存取憑證佈建程序資源,請參閱 get 方法。
  • 多個 Adapter 例項可以並行執行,並嘗試同時索取相同的憑證佈建程序,請參閱 claim 方法。不過,聲明方法只會針對單一 Adapter 例項成功,且必須處理憑證佈建程序的其餘步驟。
  • 憑證佈建適配器可以要求使用用戶端的私密金鑰產生的加密編譯簽章,請參閱 signData 方法。這個方法會傳回長期執行的作業
  • 憑證佈建適配器會定期取得長時間執行作業的狀態,請參閱 get 方法。
  • 憑證佈建適配器會為憑證佈建程序上傳憑證,請參閱 uploadCertificate 方法。這個憑證會由 ChromeOS 用戶端匯入。
  • 在整個憑證佈建程序中,Adapter 可將憑證佈建程序標示為失敗,請參閱 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 Management API 需要下列 OAuth 範圍:

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

詳情請參閱「驗證總覽」。