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.
