Certificate Provisioning API

Certificate Provisioning API를 사용하면 인증 기관을 ChromeOS 클라이언트 인증서 프로비저닝과 통합할 수 있습니다.

ChromeOS 관리자는 ChromeOS 기기 또는 ChromeOS 사용자를 구성하여 외부 인증 기관에서 클라이언트 인증서를 요청하도록 할 수 있습니다. 인증 기관은 인증 프로비저닝 어댑터 (예: Google Cloud Certificate Connector (GCCC))를 통해 Certificate Provisioning API와 상호작용합니다. 각 인증서 프로비저닝 어댑터는 Pub/Sub를 통해 새 인증서 프로비저닝 요청에 관한 알림을 수신한 후 인증서 프로비저닝 API를 사용하여 인증서를 요청하는 ChromeOS 기기 또는 ChromeOS 사용자와 상호작용합니다.

이 서비스는 다음과 같은 주요 개념을 사용합니다.

  • 클라이언트 인증서는 ChromeOS 기기 또는 ChromeOS 사용자에게 발급된 X.509 디지털 인증서입니다. 키 쌍은 기기에서 생성되며 비공개 키는 기기 외부로 유출되지 않습니다.
  • 인증서 프로비저닝 프로세스 (리소스 CertificateProvisioningProcess로 표현됨)는 클라이언트 인증서를 프로비저닝하는 프로세스를 설명합니다. 인증서를 요청하는 클라이언트는 ChromeOS 기기 또는 ChromeOS 사용자입니다.
  • 인증서 프로비저닝 프로필은 클라이언트 인증서에 대한 관리자의 구성을 설명합니다. 클라이언트는 적용되는 각 프로필의 인증서로 프로비저닝됩니다.

인증서 프로비저닝 프로세스의 일반적인 흐름은 다음과 같습니다.

  • 클라이언트가 클라이언트 인증서 프로필을 가져온 후 인증서 프로비저닝 리소스에 연결된 인증서 프로비저닝 프로세스를 시작합니다.
  • 관련 Pub/Sub 주제를 구독하는 각 인증서 프로비저닝 어댑터는 새 인증서 프로비저닝 프로세스에 관해 알림을 받습니다. Pub/Sub 알림에는 인증서 프로비저닝 프로세스의 고유 ID를 전달하는 CertificateProvisioningPubsubNotification 프로토 메시지가 포함됩니다.
  • 각 인증서 프로비저닝 어댑터는 인증서 프로비저닝 프로세스 리소스에 액세스할 수 있습니다. get 메서드를 참고하세요.
  • 여러 어댑터 인스턴스가 동시에 실행될 수 있으며 동일한 인증서 프로비저닝 프로세스를 동시에 소유하려고 시도할 수 있습니다(소유권 주장 메서드 참고). 그러나 소유권 주장 메서드는 단일 어댑터 인스턴스에 대해서만 성공하며, 이 인스턴스는 인증서 프로비저닝 프로세스의 나머지 단계도 처리해야 합니다.
  • 인증서 프로비저닝 어댑터는 클라이언트의 비공개 키를 사용하여 생성된 암호화 서명을 요청할 수 있습니다(signData 메서드 참고). 이 메서드는 장기 실행 작업을 반환합니다.
  • 인증 프로비저닝 어댑터는 주기적으로 장기 실행 작업의 상태를 가져옵니다(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} YouTube 최신 소식
인증서 프로비저닝 프로세스 소유권 주장 /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} YouTube 최신 소식

요청 및 응답의 예는 코드 샘플을 참고하세요.

API 범위

Chrome Management API에는 다음 OAuth 범위가 필요합니다.

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

자세한 내용은 인증 개요를 참고하세요.