ক্রোম ম্যানেজমেন্ট সার্টিফিকেট প্রভিশনিং API-এর জন্য কোড নমুনা

এপিআই বৈশিষ্ট্যগুলির একটি ওভারভিউয়ের জন্য সার্ট প্রভিশনিং API এ যান।

এই পৃষ্ঠার সমস্ত অনুরোধ নিম্নলিখিত ভেরিয়েবল ব্যবহার করে:

  • $TOKEN - OAuth2 টোকেন বা স্ব-স্বাক্ষরিত JWT
  • $CUSTOMER - গ্রাহকের ID বা আক্ষরিক my_customer
  • $CERT_PROVISIONING_PROCESS - শংসাপত্র প্রভিশনিং প্রক্রিয়ার আইডি যা শংসাপত্র প্রভিশনিং অ্যাডাপ্টারে প্রাথমিক পাব/সাব মেসেজে প্রেরণ করা হয়েছিল
  • $OPERATION - দীর্ঘদিন ধরে চলমান অপারেশনের আইডি

একটি শংসাপত্র বিধান প্রক্রিয়া পান

একটি সার্টিফিকেট প্রভিশনিং প্রসেস রিসোর্স পান। সার্টিফিকেট প্রভিশনিং প্রসেসের অবস্থার উপর নির্ভর করে, 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"
  }
}

একটি শংসাপত্র বিধান প্রক্রিয়া দাবি করুন

একটি শংসাপত্র প্রভিশনিং অ্যাডাপ্টার একটি শংসাপত্র বিধান প্রক্রিয়া দাবি করে৷ যদি একাধিক অ্যাডাপ্টার দৃষ্টান্ত সমান্তরালভাবে চলমান থাকে, তাহলে এটি নিশ্চিত করে যে শংসাপত্রের বিধানকরণ প্রক্রিয়া একই অ্যাডাপ্টারের উদাহরণ দ্বারা পরিচালিত হয়। শুধুমাত্র একটি অ্যাডাপ্টারের উদাহরণ থাকলে এই পদক্ষেপটিও প্রয়োজনীয়।

অনুরোধ

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

প্রতিক্রিয়া

শংসাপত্রের বিধান প্রক্রিয়া আগে দাবি করা না হলে, একটি খালি প্রতিক্রিয়া ফিরে আসে।

{}

যদি শংসাপত্রের ব্যবস্থা করার প্রক্রিয়াটি ইতিমধ্যেই অন্য অ্যাডাপ্টারের উদাহরণ দ্বারা দাবি করা হয়ে থাকে, তাহলে claim অনুরোধটি একটি 400 খারাপ অনুরোধ ত্রুটির সাথে ব্যর্থ হবে৷

দখল স্বাক্ষর একটি প্রমাণ অনুরোধ

শংসাপত্রের বিধান প্রক্রিয়ায় সর্বজনীন কী-এর সাথে সম্পর্কিত ব্যক্তিগত কী সহ নির্দিষ্ট স্বাক্ষর অ্যালগরিদম ব্যবহার করে কিছু ডেটা স্বাক্ষর করার জন্য একটি শংসাপত্রের অনুরোধকারী ক্লায়েন্টকে অনুরোধ করুন। $DATA_TO_SIGN ক্লায়েন্ট দ্বারা স্বাক্ষরিত বেস64-এনকোড করা ডেটা উপস্থাপন করে।

অনুরোধ

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

প্রতিক্রিয়া

প্রতিক্রিয়াটিতে একটি অপারেশন রয়েছে যার মেটাডেটা ক্ষেত্রটি একটি 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 ক্ষেত্রটি একটি SignDataMetadata প্রোটো বার্তা দিয়ে পপুলেট করা হয়। যদি উপস্থিত থাকে, তাহলে একটি অপারেশনের response একটি SignDataResponse প্রোটো বার্তা দিয়ে তৈরি করা হয়।

দীর্ঘমেয়াদী অপারেশন এখনও চলমান থাকলে:

{
  "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]"
  }
}

একটি শংসাপত্র আপলোড করুন

PEM ফর্ম্যাটে X.509 শংসাপত্র আপলোড করুন। নমুনা অনুরোধে 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

প্রতিক্রিয়া

{}