Certificate Provisioning API

Interfejs Certificate Provisioning API umożliwia integrację urzędów certyfikacji z udostępnianiem certyfikatów klienta w ChromeOS.

Administratorzy ChromeOS mogą skonfigurować swoje urządzenia z ChromeOS lub użytkowników ChromeOS, aby mogli oni żądać certyfikatów klienta od zewnętrznego urzędu certyfikacji. Urząd certyfikacji komunikuje się z interfejsem Certificate Provisioning API za pomocą adapterów Provisioning Certificate (np. Google Cloud Certificate Connector (GCCC)). Każdy adapter do obsługi certyfikatów otrzymuje powiadomienia o nowych żądaniach obsługi certyfikatów za pomocą Pub/Sub, a następnie korzysta z interfejsu Certificate Provisioning API, aby nawiązać kontakt z urządzeniem z ChromeOS lub użytkownikiem ChromeOS, który poprosił o certyfikat.

Ta usługa działa z tymi głównymi pojęciami:

  • Certyfikat klienta to cyfrowy certyfikat X.509 wydany dla urządzenia z ChromeOS lub użytkownika ChromeOS. Para kluczy jest generowana na urządzeniu, a klucz prywatny nigdy nie opuszcza urządzenia.
  • Proces obsługi administracyjnej certyfikatu (reprezentowany przez zasób CertificateProvisioningProcess) opisuje proces obsługi administracyjnej certyfikatu klienta. Klientem, który prosi o certyfikat, jest urządzenie z ChromeOS lub użytkownik ChromeOS.
  • Profil obsługi administracyjnej certyfikatów opisuje konfigurację administratora dla certyfikatu klienta. Klienci otrzymują certyfikat dla każdego profilu, który ich dotyczy.

Ogólny proces udostępniania certyfikatów:

  • Gdy klient pobiera profil certyfikatu klienta, uruchamia proces obsługi administracyjnej certyfikatu, który jest powiązany z zasobem obsługi administracyjnej certyfikatu.
  • Każdy adapter do obsługi certyfikatów, który subskrybuje odpowiedni temat Pub/Sub, otrzyma powiadomienie o nowym procesie obsługi certyfikatów. Powiadomienie Pub/Sub zawiera wiadomość proto CertificateProvisioningPubsubNotification, która przekazuje unikalny identyfikator procesu alokacji certyfikatu.
  • Każdy adapter do obsługi certyfikatów może uzyskać dostęp do zasobu procesu obsługi certyfikatów (patrz metoda get).
  • Wiele instancji adaptera może działać równolegle i może próbować jednocześnie zaclaimować ten sam proces udostępniania certyfikatów (patrz metoda claim). Metoda roszczeń zadziała jednak tylko w przypadku pojedynczego wystąpienia adaptera, które musi też obsługiwać pozostałe kroki procesu udostępniania certyfikatu.
  • Adapter do obsługi certyfikatów może poprosić o podpis kryptograficzny wygenerowany za pomocą klucza prywatnego klienta (patrz metoda signData). Ta metoda zwraca długotrwałą operację.
  • Adapter usługi Provisioning Certificate okresowo uzyskuje stan długotrwałej operacji (patrz metoda get).
  • Adapter udostępniania certyfikatów przesyła certyfikat w ramach procesu udostępniania certyfikatów (patrz metoda uploadCertificate). Ten certyfikat jest importowany przez klienta ChromeOS.
  • W trakcie całego procesu dostarczania certyfikatu adapter może oznaczyć proces dostarczania certyfikatu jako nieudany (patrz metoda setFailure). Na stronie ustawień certyfikatów na kliencie ChromeOS wyświetlany jest podany komunikat o błędzie. W określonych sytuacjach, np. po 24 godzinach lub po ponownym uruchomieniu urządzenia, klient powtarza proces udostępniania certyfikatu.

Początkowy format wiadomości Pub/Sub

Początkowy komunikat Pub/Sub wysyłany do adapterów obsługi certyfikatów w celu powiadomienia ich o nowym procesie obsługi certyfikatów ma następujący format:

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;
  }
}

Szybki przegląd metod interfejsu API

Adresy URL są względne względem adresu https://chromemanagement.googleapis.com/v1/customers/{customer_id}

Opis Względny URL Metoda HTTP
Proces obsługi administracyjnej certyfikatów /certificateProvisioningProcess/{certificate_provisioning_process_id} SPRAWDŹ
Proces zgłaszania certyfikatu /certificateProvisioningProcess/{certificate_provisioning_process_id}:claim POST
Prośba o podpis kryptograficzny /certificateProvisioningProcess/{certificate_provisioning_process_id}:signData POST
Przesyłanie certyfikatu /certificateProvisioningProcess/{certificate_provisioning_process_id}:uploadCertificate POST
Oznaczenie procesu udostępniania certyfikatu jako nieudanego /certificateProvisioningProcess/{certificate_provisioning_process_id}:setFailure POST
Długotrwała operacja pobierania danych podpisu /certificateProvisioningProcess/{certificate_provisioning_process_id}/operations/{operation_id} SPRAWDŹ

Przykładowe żądania i odpowiedzi znajdziesz w przykładowych fragmentach kodu.

Zakresy interfejsu API

Interfejs Chrome Management API wymaga tego zakresu OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.