عيّنات رمز لواجهة برمجة التطبيقات Chrome Management Certificate Provisioning API

يُرجى الانتقال إلى Cert Provisioning API للاطّلاع على نظرة عامة حول ميزات واجهة برمجة التطبيقات.

تستخدِم جميع الطلبات الواردة في هذه الصفحة المتغيّرات التالية:

  • $TOKEN - رمز OAuth2 المميّز أو رمز JWT الموقَّع ذاتيًا
  • $CUSTOMER - رقم تعريف العميل أو القيمة الثابتة my_customer
  • $CERT_PROVISIONING_PROCESS: رقم تعريف عملية توفير الشهادة التي تم إرسالها إلى محوِّل توفير الشهادة في رسالة Pub/Sub الأولية
  • $OPERATION - رقم تعريف العملية التي تستغرق وقتًا طويلاً

الحصول على عملية توفير شهادة

الحصول على مورد CertificateProvisioningProcess استنادًا إلى حالة عملية توفير الشهادة، لا تتم تعبئة جميع حقول مورد CertificateProvisioningProcess في الردّ.

الطلب

curl -H "Authorization: Bearer $TOKEN" \
https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS

الردّ

يتم إنشاء الردّ التالي قبل أن يُطلب من العميل التوقيع على البيانات.

{
  "name": "customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS",
  "provisioningProfileId": "43b413f9-5ecd-4bf6-b431-f2df56ce852e",
  "subjectPublicKeyInfo": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqtbosvGe1JzJJYBPsPzFY33xD9fSJhQLZh21ELD2vEZ5OSzxXzQOhlXZ2Mv4C3m4zn8mjuYykprBxaMggryd8kyhycm2DDsL2/KUkdQNPnv6mBQ8iionF84iabh+FWph1CU63j2vCPnw0VYSv7cz+bHsxs3tXFB7PqqQZr7WcWAAxFaIqoTkJrTGMzDFs8GHUA6mFhMj0WsPzp3aicj24uW0AAJjVFmiZ+pz1lOOL4coNsVrujrX2E6lU8AHjmoQT6ThRVnuo1jFXoASB4A1It6dtu/P8L3zhsVWYRtOZjLLVvGryzT8z0A8iW5k+apkb465jgLd2vuxFPekAgPRDwIDAQAB",
  "chromeOsDevice": {
    "deviceDirectoryApiId": "abcdefgh-ijkl-mnop-qrst-uvwxyz0123456",
    "serialNumber": "0123456789"
  },
  "startTime": "2025-03-07T13:38:54.930621Z",
  "genericCaConnection": {
    "caConnectionAdapterConfigReference": "default_ca_config"
  },
  "genericProfile": {
    "profileAdapterConfigReference": "device_profile"
  }
}

المطالبة بعملية توفير شهادة

يطلب محوِّل توفير الشهادات عملية توفير شهادة. في حال تنفيذ عدّة نُسخ من "المحوِّل" بشكل متزامن، يضمن ذلك أنّ عملية توفير الشهادات تتم من خلال نسخة "المحوِّل" نفسها. وهذه الخطوة ضرورية أيضًا إذا كان هناك مثيل واحد فقط من Adapter.

الطلب

curl -H "Authorization: Bearer $TOKEN" \
--json '{"callerInstanceId": "adapter_instance_1"}' \
https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS:claim

الردّ

إذا لم يتمّ طلب عملية توفير الشهادة من قبل، يتمّ عرض ردّ فارغ.

{}

إذا سبق أن تمّت المطالبة بعملية توفير الشهادة من خلال مثيل محوِّل آخر، سيتعذّر تنفيذ طلب claim وسيظهر خطأ 400 "الخطأ 400: طلب غير صالح".

طلب توقيع لإثبات صحة معلومات الاتصال

اطلب من العميل الذي يطلب شهادة توقيع بعض البيانات باستخدام SignatureAlgorithm المحدّدة مع المفتاح الخاص المقابل للمفتاح العام في عملية توفير الشهادة. يمثّل الرمز $DATA_TO_SIGN البيانات المشفّرة بترميز Base64 والتي يوقعها العميل.

الطلب

curl -H "Authorization: Bearer $TOKEN" \
--json '{"signData": "$DATA_TO_SIGN","signatureAlgorithm":"SIGNATURE_ALGORITHM_RSA_PKCS1_V1_5_SHA256"}'\
https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS:signData

الردّ

تحتوي الاستجابة على عملية يتم فيها تعبئة حقل البيانات الوصفية برسالة proto من النوع SignDataMetadata.

{
  "name": "customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS/operations/$OPERATION",
  "metadata": {
    "@type": "type.googleapis.com/google.chrome.management.versions.v1.SignDataMetadata",
    "startTime": "2025-03-07T14:44:06.156385Z"
  }
}

الحصول على عملية تستغرق وقتًا طويلاً

الحصول على آخر حالة لعملية طويلة الأمد تم إرجاعها من طلب SignData

الطلب

curl -H "Authorization: Bearer $TOKEN" \
https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS/operations/$OPERATION

الردّ

تتم تعبئة الحقل metadata في Operation برسالة proto من نوع SignDataMetadata. إذا كان الحقل response متاحًا في Operation، يتم ملؤه برسالة SignDataResponse proto.

في حال استمرار العملية التي تستغرق وقتًا طويلاً:

{
  "name": "customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS/operations/$OPERATION",
  "metadata": {
    "@type": "type.googleapis.com/google.chrome.management.versions.v1.SignDataMetadata",
    "startTime": "2025-03-07T14:44:06.156385Z"
  }
}

في حال اكتمال العملية التي تستغرق وقتًا طويلاً بنجاح:

{
  "name": "customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS/operations/$OPERATION",
  "metadata": {
    "@type": "type.googleapis.com/google.chrome.management.versions.v1.SignDataMetadata",
    "startTime": "2025-03-07T14:44:06.156385Z"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.chrome.management.versions.v1.SignDataResponse",
    "certificateProvisioningProcess": {
      "name": "customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS",
      "provisioningProfileId": "43b413f9-5ecd-4bf6-b431-f2df56ce852e",
      "subjectPublicKeyInfo": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqtbosvGe1JzJJYBPsPzFY33xD9fSJhQLZh21ELD2vEZ5OSzxXzQOhlXZ2Mv4C3m4zn8mjuYykprBxaMggryd8kyhycm2DDsL2/KUkdQNPnv6mBQ8iionF84iabh+FWph1CU63j2vCPnw0VYSv7cz+bHsxs3tXFB7PqqQZr7WcWAAxFaIqoTkJrTGMzDFs8GHUA6mFhMj0WsPzp3aicj24uW0AAJjVFmiZ+pz1lOOL4coNsVrujrX2E6lU8AHjmoQT6ThRVnuo1jFXoASB4A1It6dtu/P8L3zhsVWYRtOZjLLVvGryzT8z0A8iW5k+apkb465jgLd2vuxFPekAgPRDwIDAQAB",
      "chromeOsDevice": {
        "deviceDirectoryApiId": "abcdefgh-ijkl-mnop-qrst-uvwxyz0123456",
        "serialNumber": "0123456789"
      },
      "startTime": "2025-03-07T13:38:54.930621Z",
      "signData": "ZGF0YSB0byBzaWduCg==",
      "signatureAlgorithm": "SIGNATURE_ALGORITHM_RSA_PKCS1_V1_5_SHA256",
      "signature": "mPfL8v/DR+ZqbtJ6X5cJCTrzfOO3wPHCY8nV/stbokdNZnkRJ8U0PBzgm6pWy08pMmOfrs9ZMBXcQ0i05Oe6AwgHYYN5RHuwdnhAklJYriDT4fXdzewD6KuA6x7ZX1d2xYnh0p2XczcdNOJsrz2T/p+89PLcB6I1PIg1Cwz4I1YCAS2OMAQF5DxS+SvMpPbkdzkNG4SCCL/hJNayxRMr98SbQ0aQE77AtxzpXGof5cBEBOcbQ+T+kBIgArQ87D6bQVHVB3di+TvYepK6hwxiLbhCEDGHgi2DfMp8kEWnAVPVzi6xht5jPNhVqILALRbQQ1nUjlP8UO+/y+WR4M36Yg==",
      "genericCaConnection": {
        "caConnectionAdapterConfigReference": "default_ca_config"
      },
      "genericProfile": {
        "profileAdapterConfigReference": "device_profile"
      }
    }
  }
}

في حال تعذّر إتمام العملية التي تستغرق وقتًا طويلاً:

{
  "name": "customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS/operations/$OPERATION",
  "metadata": {
    "@type": "type.googleapis.com/google.chrome.management.versions.v1.SignDataMetadata",
    "startTime": "2025-03-07T14:44:06.156385Z"
  },
  "done": true,
  "error": {
    "code": 3,
    "message": "The requested SignData LRO failed because the corresponding certificate provisioning process is in failure state CERTIFICATE_PROVISIONING_RESULT_ERROR_INVALID_SIGNATURE with the following error message: The proof of possession signature is invalid. [operationId=$OPERATION, cppId=$CERT_PROVISIONING_PROCESS, customerId=$CUSTOMER]"
  }
}

تحميل شهادة

حمِّل شهادة X.509 بتنسيق PEM. في نموذج الطلب، يُشار إلى الشهادة المُشفَّرة بتنسيق PEM باستخدام المتغيّر $CERTIFICATE_IN_PEM_FORMAT.

الطلب

curl -H "Authorization: Bearer $TOKEN" \
--json '{"certificatePem": "$CERTIFICATE_IN_PEM_FORMAT"}' \
https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS:uploadCertificate

الردّ

{}

الإبلاغ عن تعذُّر عملية توفير شهادة

وضع علامة على عملية توفير شهادة تشير إلى أنّها تعذّرت وضبط رسالة خطأ مناسبة يتم نشر رسالة الخطأ إلى عميل ChromeOS الذي بدأ عملية توفير الشهادة.

الطلب

curl -H "Authorization: Bearer $TOKEN" \
--json '{"errorMessage": "The CA could not issue the certificate."}' \
https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/certificateProvisioningProcesses/$CERT_PROVISIONING_PROCESS:setFailure

الردّ

{}