واجهة برمجة التطبيقات Certificate Provisioning API

تسمح واجهة برمجة التطبيقات Certificate Provisioning API بدمج مراجع إصدار الشهادات مع توفير شهادات العملاء في ChromeOS.

يمكن لمشرفي ChromeOS ضبط أجهزة ChromeOS أو مستخدمي ChromeOS لطلب شهادات العميل من مرجع تصديق خارجي. تتفاعل هيئة إصدار الشهادات مع واجهة برمجة التطبيقات Certificate Provisioning API من خلال محولات توفير الشهادات (مثل Google Cloud Certificate Connector ‏ (GCCC)). يتلقّى كلّ محوِّل لتوفير الشهادات إشعارات بطلبات توفير الشهادات الجديدة من خلال Pub/Sub، ثمّ يستخدم واجهة برمجة التطبيقات Certificate Provisioning API للتفاعل مع جهاز ChromeOS أو مستخدم ChromeOS الذي يطلب الحصول على شهادة.

تعمل هذه الخدمة وفقًا للمفاهيم الرئيسية التالية:

  • شهادة العميل هي شهادة رقمية من النوع X.509 يتم إصدارها لجهاز ChromeOS أو مستخدم ChromeOS. يتم إنشاء مفتاحَي التشفير على الجهاز، ولا يغادر المفتاح الخاص الجهاز مطلقًا.
  • تصف عملية توفير الشهادة (الممثّلة بالمورد CertificateProvisioningProcess) عملية توفير شهادة العميل. العميل الذي يطلب الحصول على شهادة هو إما جهاز ChromeOS أو مستخدم ChromeOS.
  • يصف الملف الشخصي لتوفير الشهادات إعدادات المشرف لشهادة العميل. يتم تزويد العملاء بشهادة لكل ملف شخصي ينطبق عليهم.

المخطّط العام لعملية توفير الشهادات:

  • بعد أن يحصل العميل على ملف شخصي لشهادة العميل، يطلق العميل عملية توفير شهادة مرتبطة بمورد توفير الشهادات.
  • يتم إرسال إشعار إلى كلّ محوِّل لتوفير الشهادات مشترِك في موضوع Pub/Sub المعنيّ بعملية توفير شهادة جديدة. يحتوي إشعار Pub/Sub على رسالة CertificateProvisioningPubsubNotification proto التي تنقل المعرّف الفريد لعملية توفير الشهادة.
  • يمكن لكلّ محوِّل لتوفير الشهادات الوصول إلى موارد عملية توفير الشهادات، راجِع طريقة get.
  • يمكن تشغيل عدّة نُسخ من "المحوِّل" بشكل موازٍ ويمكن أن تحاول المطالبة بعملية توفير الشهادة نفسها في الوقت نفسه، راجِع طريقة claim. ومع ذلك، لن تنجح طريقة المطالبة إلا لمثيل واحد من "المحوِّل" الذي يجب أن يعالج بعد ذلك الخطوات المتبقية من عملية تجهيز الشهادة.
  • يمكن لمحوِّل توفير الشهادات طلب توقيع تشفير يتم إنشاؤه باستخدام المفتاح الخاص للعميل، راجِع 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;
  }
}

نظرة عامة سريعة على طرق واجهة برمجة التطبيقات

تكون عناوين URL نسبية مقارنةً بموقع https://chromemanagement.googleapis.com/v1/customers/{customer_id} الإلكتروني.

الوصف عنوان URL نسبي طريقة Http
الحصول على عملية توفير شهادة /certificateProvisioningProcess/{certificate_provisioning_process_id} الاطّلاع على
المطالبة بعملية توفير شهادة /certificateProvisioningProcess/{certificate_provisioning_process_id}:claim نشر مشاركة
طلب توقيع تشفير /certificateProvisioningProcess/{certificate_provisioning_process_id}:signData نشر مشاركة
تحميل الشهادة /certificateProvisioningProcess/{certificate_provisioning_process_id}:uploadCertificate نشر مشاركة
وضع علامة على عملية توفير الشهادة بأنّها تعذّرت /certificateProvisioningProcess/{certificate_provisioning_process_id}:setFailure نشر مشاركة
عملية طويلة المدى للحصول على بيانات التوقيع /certificateProvisioningProcess/{certificate_provisioning_process_id}/operations/{operation_id} الاطّلاع على

اطّلِع على عيّنات الرموز البرمجية للحصول على مثال على الطلبات والاستجابات.

نطاقات واجهة برمجة التطبيقات

تتطلّب واجهة برمجة التطبيقات Chrome Management API نطاق OAuth التالي:

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

لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على المصادقة.