JSON ওয়েব টোকেন ইস্যু করুন

ফ্লিট ইঞ্জিন ডেটাতে আপনার ওয়েব এবং মোবাইল-ভিত্তিক অ্যাপ্লিকেশানগুলি অ্যাক্সেস সক্ষম করার অংশ হিসাবে JSON ওয়েব টোকেনগুলি কীভাবে ইস্যু করা যায় তা এই নথিতে রয়েছে৷ আপনি যদি ইতিমধ্যে এটি না করে থাকেন, তাহলে ফ্লিট ইঞ্জিন বিভাগে নিরাপত্তার অধীনে JSON ওয়েব টোকেন পড়ুন। ফ্লিট ইঞ্জিন পরিষেবার সাথে, আপনি নিম্নলিখিত উপায়গুলির মধ্যে একটিতে JWT ইস্যু করতে পারেন:

  • অনুমোদন লাইব্রেরি ব্যবহার করুন — আপনার কোডবেস জাভাতে লেখা হলে Google আপনাকে এই পদ্ধতিটি ব্যবহার করার পরামর্শ দেয়। এই লাইব্রেরিটি পরিষেবার সাথে আপনার প্রয়োজন হতে পারে এমন সমস্ত ব্যবহারের ক্ষেত্রে JWT ইস্যু করা পরিচালনা করে এবং আপনার বাস্তবায়নকে ব্যাপকভাবে সহজ করে।
  • আপনার নিজস্ব JWT তৈরি করুন — আপনি যদি আমাদের JWT লাইব্রেরি ব্যবহার করতে না পারেন, তাহলে আপনাকে এগুলিকে আপনার নিজস্ব কোডবেসে তৈরি করতে হবে। এই বিভাগটি প্রতিটি দৃশ্যের জন্য JWT-এর বিভিন্ন উদাহরণ প্রদান করে।

জাভা জন্য অনুমোদন লাইব্রেরি ব্যবহার করুন

জাভার জন্য ফ্লিট ইঞ্জিন অনুমোদন লাইব্রেরি ব্যবহার করতে, GitHub সংগ্রহস্থলে যান। লাইব্রেরি ফ্লিট ইঞ্জিন JWT-এর নির্মাণকে সহজ করে এবং নিরাপদে তাদের স্বাক্ষর করে। এটি নিম্নলিখিত প্রদান করে:

  • প্রকল্প নির্ভরতা ঘোষণা
  • অন-ডিমান্ড ট্রিপ বা নির্ধারিত কাজের জন্য সমস্ত পরিষেবা অ্যাকাউন্ট ভূমিকার সম্পূর্ণ তালিকা
  • শংসাপত্রের ফাইলগুলি ব্যবহার করা ব্যতীত টোকেন স্বাক্ষর করার পদ্ধতি, যেমন একটি পরিষেবা অ্যাকাউন্টের ছদ্মবেশীকরণ
  • একটি gRPC স্টাব বা একটি GAPIC ক্লায়েন্ট থেকে করা আউটবাউন্ড অনুরোধে স্বাক্ষরিত টোকেন সংযুক্ত করে
  • ফ্লিট ইঞ্জিন ক্লায়েন্ট লাইব্রেরির সাথে স্বাক্ষরকারীদের একীভূত করার নির্দেশাবলী

আপনি যদি আপনার কোড থেকে JWT ইস্যু করেন

আপনি যখন জাভার জন্য অনুমোদন লাইব্রেরি ব্যবহার করতে পারবেন না, তখন আপনাকে অবশ্যই আপনার নিজের কোডবেসে JWT প্রয়োগ করতে হবে। এই বিভাগে আপনার নিজের টোকেন তৈরি করার জন্য কয়েকটি নির্দেশিকা প্রদান করে। পরিষেবা অ্যাকাউন্টের ভূমিকা এবং JWT ক্ষেত্র এবং দাবিগুলির একটি তালিকার জন্য ফ্লিট ইঞ্জিনে নিরাপত্তা বিভাগের অধীনে JSON ওয়েব টোকেনগুলি দেখুন। অন-ডিমান্ড ট্রিপ বা নির্ধারিত কাজের জন্য JWT উদাহরণগুলির একটি তালিকার জন্য নিম্নলিখিত বিভাগটি দেখুন।

সাধারণ নির্দেশিকা

  • উপযুক্ত ভূমিকা ব্যবহার করুন । এটি নিশ্চিত করে যে টোকেনের অনুরোধকারী ব্যবহারকারী সেই তথ্য দেখার জন্য অনুমোদিত যা টোকেন তাদের অ্যাক্সেস দেয়। বিশেষভাবে:
    • একটি মোবাইল ডিভাইসে পাস করার জন্য JWT স্বাক্ষর করার সময়, ড্রাইভার বা গ্রাহক SDK ভূমিকার জন্য পরিষেবা অ্যাকাউন্ট ব্যবহার করুন । অন্যথায়, মোবাইল ডিভাইসের অবস্থা পরিবর্তন করার ক্ষমতা থাকবে যা থাকা উচিত নয়।
    • একইভাবে, বিশেষ সুবিধাপ্রাপ্ত কলের জন্য ব্যবহার করার জন্য JWT-তে স্বাক্ষর করার সময়, সঠিক ফ্লিট ইঞ্জিন অ্যাডমিন ভূমিকা সহ পরিষেবা অ্যাকাউন্টটি ব্যবহার করা নিশ্চিত করুন। অন্যথায়, অপারেশন ব্যর্থ হবে।
  • শুধুমাত্র তৈরি করা টোকেন শেয়ার করুন । টোকেন তৈরি করতে ব্যবহৃত শংসাপত্রগুলি কখনই শেয়ার করবেন না।
  • gRPC কলের জন্য , টোকেন সংযুক্ত করার পদ্ধতি কল করার জন্য ব্যবহৃত ভাষা এবং কাঠামোর উপর নির্ভর করে। একটি HTTP কলে একটি টোকেন নির্দিষ্ট করার পদ্ধতি হল একটি ধারক টোকেন সহ একটি Authorization শিরোনাম অন্তর্ভুক্ত করা যার মান হল টোকেন।
  • মেয়াদ শেষ হওয়ার সময় ফেরত দিন। আপনার সার্ভারকে অবশ্যই টোকেনের মেয়াদ শেষ হওয়ার সময় ফেরত দিতে হবে, সাধারণত সেকেন্ডে।
  • OAuth 2.0 অ্যাক্সেস টোকেন ব্যবহার না করে সরাসরি টোকেন বাহক হিসাবে JSON তৈরি এবং স্বাক্ষর করতে , পরিচয় বিকাশকারী ডকুমেন্টেশনে OAuth ছাড়া পরিষেবা অ্যাকাউন্ট অনুমোদনের নির্দেশাবলী পড়ুন।

অন-ডিমান্ড ট্রিপের জন্য

  • JWT পেলোড তৈরি করার সময়, যে গাড়ির আইডি বা ট্রিপ আইডির জন্য কল করা হচ্ছে তার মূল্যের সাথে কী vehicleid বা tripid সেট করে অনুমোদন বিভাগে একটি অতিরিক্ত দাবি যোগ করুন।

নির্ধারিত কাজের জন্য

  • যখন আপনার সার্ভার অন্যান্য API কল করে, তখন টোকেনগুলিতে অবশ্যই উপযুক্ত দাবি থাকতে হবে। এই জন্য, আপনি নিম্নলিখিত করতে পারেন:
    • প্রতিটি কী এর মান * তে সেট করুন।
    • ব্যবহারকারীকে সমস্ত taskids এবং deliveryvehicleids অ্যাক্সেস দিন৷ এটি করার জন্য, আপনি taskid এবং deliveryvehicleid কী সহ অনুমোদন বিভাগে একটি অতিরিক্ত দাবি যোগ করুন।
    • taskids দাবিতে তারকাচিহ্ন ( * ) ব্যবহার করার সময়, এটি অবশ্যই অ্যারের একমাত্র উপাদান হতে হবে।

অন-ডিমান্ড ট্রিপের জন্য JWT উদাহরণ

আপনি যদি অন-ডিমান্ড ট্রিপ ব্যবহার করেন তাহলে এই বিভাগটি সাধারণ পরিস্থিতির জন্য JWT উদাহরণ প্রদান করে।

ব্যাকএন্ড সার্ভার অপারেশনের জন্য উদাহরণ টোকেন

{
  "alg": "RS256",
  "typ": "JWT",
  "kid": "private_key_id_of_provider_service_account"
}
.
{
  "iss": "provider@yourgcpproject.iam.gserviceaccount.com",
  "sub": "provider@yourgcpproject.iam.gserviceaccount.com",
  "aud": "https://fleetengine.googleapis.com/",
  "iat": 1511900000,
  "exp": 1511903600,
  "authorization": {
     "vehicleid": "*",
     "tripid": "*"
   }
}

ড্রাইভার অ্যাপ অপারেশনের জন্য উদাহরণ টোকেন

{
  "alg": "RS256",
  "typ": "JWT",
  "kid": "private_key_id_of_driver_service_account"
}
.
{
  "iss": "driver@yourgcpproject.iam.gserviceaccount.com",
  "sub": "driver@yourgcpproject.iam.gserviceaccount.com",
  "aud": "https://fleetengine.googleapis.com/",
  "iat": 1511900000,
  "exp": 1511903600,
  "authorization": {
     "vehicleid": "driver_12345"
   }
}

একটি ভোক্তা অ্যাপ অপারেশনের জন্য উদাহরণ টোকেন

{
  "alg": "RS256",
  "typ": "JWT",
  "kid": "private_key_id_of_consumer_service_account"
}
.
{
  "iss": "consumer@yourgcpproject.iam.gserviceaccount.com",
  "sub": "consumer@yourgcpproject.iam.gserviceaccount.com",
  "aud": "https://fleetengine.googleapis.com/",
  "iat": 1511900000,
  "exp": 1511903600,
  "authorization": {
     "tripid": "trip_54321"
   }
}

নির্ধারিত কাজের জন্য JWT উদাহরণ

আপনি যদি নির্ধারিত কাজগুলি ব্যবহার করেন তবে এই বিভাগটি সাধারণ পরিস্থিতিগুলির জন্য JWT উদাহরণ প্রদান করে।

ব্যাকএন্ড সার্ভার অপারেশনের জন্য উদাহরণ টোকেন

    {
      "alg": "RS256",
      "typ": "JWT",
      "kid": "private_key_id_of_provider_service_account"
    }
    .
    {
      "iss": "provider@yourgcpproject.iam.gserviceaccount.com",
      "sub": "provider@yourgcpproject.iam.gserviceaccount.com",
      "aud": "https://fleetengine.googleapis.com/",
      "iat": 1511900000,
      "exp": 1511903600,
      "authorization": {
         "taskid": "*"
       }
    }

একটি ব্যাকএন্ড সার্ভার ব্যাচের জন্য উদাহরণ টোকেন টাস্ক অপারেশন তৈরি করুন

    {
      "alg": "RS256",
      "typ": "JWT",
      "kid": "private_key_id_of_provider_service_account"
    }
    .
    {
      "iss": "provider@yourgcpproject.iam.gserviceaccount.com",
      "sub": "provider@yourgcpproject.iam.gserviceaccount.com",
      "aud": "https://fleetengine.googleapis.com/",
      "iat": 1511900000,
      "exp": 1511903600,
      "authorization": {
         "taskids": ["*"]
       }
    }

একটি ব্যাকএন্ড সার্ভার প্রতি-ডেলিভারি-গাড়ির অপারেশনের জন্য উদাহরণ টোকেন

    {
      "alg": "RS256",
      "typ": "JWT",
      "kid": "private_key_id_of_provider_service_account"
    }
    .
    {
      "iss": "provider@yourgcpproject.iam.gserviceaccount.com",
      "sub": "provider@yourgcpproject.iam.gserviceaccount.com",
      "aud": "https://fleetengine.googleapis.com/",
      "iat": 1511900000,
      "exp": 1511903600,
      "authorization": {
         "deliveryvehicleid": "*"
       }
    }

ড্রাইভার অ্যাপের উদাহরণ টোকেন

    {
      "alg": "RS256",
      "typ": "JWT",
      "kid": "private_key_id_of_delivery_driver_service_account"
    }
    .
    {
      "iss": "driver@yourgcpproject.iam.gserviceaccount.com",
      "sub": "driver@yourgcpproject.iam.gserviceaccount.com",
      "aud": "https://fleetengine.googleapis.com/",
      "iat": 1511900000,
      "exp": 1511903600,
      "authorization": {
         "deliveryvehicleid": "driver_12345"
       }
    }

একটি ভোক্তা অ্যাপের জন্য উদাহরণ টোকেন

    {
      "alg": "RS256",
      "typ": "JWT",
      "kid": "private_key_id_of_delivery_consumer_service_account"
    }
    .
    {
      "iss": "consumer@yourgcpproject.iam.gserviceaccount.com",
      "sub": "consumer@yourgcpproject.iam.gserviceaccount.com",
      "aud": "https://fleetengine.googleapis.com/",
      "iat": 1511900000,
      "exp": 1511903600,
      "authorization": {
         "trackingid": "shipment_12345"
       }
    }

সমস্ত কাজ এবং যানবাহন ট্র্যাক করার জন্য উদাহরণ টোকেন

নিম্নলিখিত উদাহরণ হল একটি টোকেন যা বহরের সমস্ত কাজ এবং যানবাহন ট্র্যাক করে৷ ক্লায়েন্ট-সাইড বাস্তবায়নের জন্য জাভাস্ক্রিপ্ট ফ্লিট ট্র্যাকিং লাইব্রেরি সেট আপ দেখুন যা এই টোকেনটি ব্যবহার করবে:

  • Fleet Engine Delivery Fleet Reader ক্লাউড আইএএম ভূমিকা ব্যবহার করে টোকেনে স্বাক্ষর করুন।

   {
      "alg": "RS256",
      "typ": "JWT",
      "kid": "private_key_id_of_consumer_service_account"
    }
    .
    {
      "iss": "superuser@yourgcpproject.iam.gserviceaccount.com",
      "sub": "superuser@yourgcpproject.iam.gserviceaccount.com",
      "aud": "https://fleetengine.googleapis.com/",
      "iat": 1511900000,
      "exp": 1511903600,
      "scope": "https://www.googleapis.com/auth/xapi",
      "authorization": {
         "taskid": "*",
         "deliveryvehicleid": "*",
       }
    }

এরপর কি

  • আপনার সেটআপ যাচাই করুন যাতে আপনি একটি ট্রায়াল ভেহিকল তৈরি করতে পারেন এবং নিশ্চিত করতে পারেন যে আপনার টোকেনগুলি উদ্দেশ্য অনুযায়ী কাজ করছে