Mit der Certificate Provisioning API können Zertifizierungsstellen in die Bereitstellung von ChromeOS-Clientzertifikaten eingebunden werden.
ChromeOS-Administratoren können ihre ChromeOS-Geräte oder ChromeOS-Nutzer so konfigurieren, dass Clientzertifikate von einer externen Zertifizierungsstelle angefordert werden. Die Zertifizierungsstelle interagiert über Zertifikatsbereitstellungsadapter (z.B. den Google Cloud Certificate Connector, GCCC) mit der Certificate Provisioning API. Jeder Zertifikatbereitstellungsadapter empfängt über Pub/Sub Benachrichtigungen zu neuen Anfragen zur Zertifikatbereitstellung und interagiert dann über die Zertifikatbereitstellungs-API mit dem ChromeOS-Gerät oder dem ChromeOS-Nutzer, der ein Zertifikat anfordert.
Bei diesem Dienst werden die folgenden Hauptkonzepte verwendet:
- Ein Clientzertifikat ist ein digitales X.509-Zertifikat, das für ein ChromeOS-Gerät oder einen ChromeOS-Nutzer ausgestellt wurde. Das Schlüsselpaar wird auf dem Gerät generiert und der private Schlüssel verlässt das Gerät nie.
- Ein Zertifikatbereitstellungsprozess (dargestellt durch die Ressource CertificateProvisioningProcess) beschreibt die Bereitstellung eines Clientzertifikats. Der Client, der ein Zertifikat anfordert, ist entweder ein ChromeOS-Gerät oder ein ChromeOS-Nutzer.
- In einem Profil für die Zertifikatbereitstellung wird die Konfiguration des Administrators für ein Clientzertifikat beschrieben. Clients erhalten ein Zertifikat für jedes Profil, das für sie gilt.
Allgemeiner Ablauf der Zertifikatbereitstellung:
- Nachdem ein Client ein Clientzertifikatprofil abgerufen hat, startet er einen Zertifikatbereitstellungsprozess, der mit einer Zertifikatbereitstellungsressource verknüpft ist.
- Jeder Zertifikatsbereitstellungsadapter, der für das entsprechende Pub/Sub-Thema abonniert ist, wird über einen neuen Zertifikatsbereitstellungsprozess benachrichtigt. Die Pub/Sub-Benachrichtigung enthält eine CertificateProvisioningPubsubNotification-Protonachricht, die die eindeutige ID des Zertifikatbereitstellungsprozesses enthält.
- Jeder Zertifikatsbereitstellungsadapter kann auf die Ressource für den Zertifikatsbereitstellungsprozess zugreifen (siehe Methode get).
- Mehrere Adapterinstanzen können parallel ausgeführt werden und gleichzeitig versuchen, denselben Zertifikatsbereitstellungsprozess zu beanspruchen. Weitere Informationen finden Sie unter claim. Die Anspruchsmethode funktioniert jedoch nur für eine einzelne Adapterinstanz, die dann auch die verbleibenden Schritte des Zertifikatsbereitstellungsprozesses abwickeln muss.
- Der Zertifikatsbereitstellungsadapter kann eine kryptografische Signatur anfordern, die mit dem privaten Schlüssel des Clients generiert wurde. Weitere Informationen finden Sie unter signData. Diese Methode gibt einen lang andauernden Vorgang zurück.
- Der Zertifikatsbereitstellungsadapter ruft regelmäßig den Status des lang laufenden Vorgangs ab (siehe Methode get).
- Der Zertifikatbereitstellungsadapter lädt ein Zertifikat für die Zertifikatbereitstellung hoch (siehe Methode uploadCertificate). Dieses Zertifikat wird vom ChromeOS-Client importiert.
- Während des gesamten Zertifikatsbereitstellungsvorgangs kann der Adapter den Vorgang als fehlgeschlagen kennzeichnen (siehe Methode setFailure). Auf der Seite mit den Zertifikatseinstellungen im ChromeOS-Client wird die angegebene Fehlermeldung angezeigt. Der Client versucht in bestimmten Fällen noch einmal, das Zertifikat bereitzustellen, z.B. nach 24 Stunden oder nach dem Neustart des Geräts.
Ursprüngliches Pub/Sub-Nachrichtenformat
Die erste Pub/Sub-Nachricht, die an die Zertifikatsbereitstellungsadapter gesendet wird, um sie über einen neuen Zertifikatsbereitstellungsprozess zu informieren, entspricht dem folgenden 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;
}
}
Kurzübersicht über API-Methoden
URLs sind relativ zu https://chromemanagement.googleapis.com/v1/customers/{customer_id}
Beschreibung | Relative URL | HTTP-Methode |
---|---|---|
Prozess zur Zertifikatbereitstellung | /certificateProvisioningProcess/{certificate_provisioning_process_id} | NEUIGKEITEN |
Anspruch auf einen Zertifikatbereitstellungsprozess erheben | /certificateProvisioningProcess/{certificate_provisioning_process_id}:claim | POSTEN |
Kryptosignatur anfordern | /certificateProvisioningProcess/{certificate_provisioning_process_id}:signData | POSTEN |
Zertifikat hochladen | /certificateProvisioningProcess/{certificate_provisioning_process_id}:uploadCertificate | POSTEN |
Zertifikatbereitstellung als fehlgeschlagen markieren | /certificateProvisioningProcess/{certificate_provisioning_process_id}:setFailure | POSTEN |
Vorgang zum Abrufen von Signaturdaten mit langer Ausführungszeit | /certificateProvisioningProcess/{certificate_provisioning_process_id}/operations/{operation_id} | NEUIGKEITEN |
In den Codebeispielen finden Sie Beispielanfragen und ‑antworten.
API-Bereiche
Für die Chrome Management API ist der folgende OAuth-Bereich erforderlich:
https://www.googleapis.com/auth/chrome.management.certprov.provisioningprocess
Weitere Informationen finden Sie in der Authentifizierungsübersicht.