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

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

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

JWT কীভাবে কাজ করে

মোবাইল ফোন এবং ওয়েব ব্রাউজারের মতো অবিশ্বস্ত পরিবেশের জন্য, আপনার ব্যাকএন্ড সার্ভার JWT ইস্যু করে যা নিম্নরূপ কাজ করে:

  • আপনার ক্লায়েন্ট কোডটি একটি কম-বিশ্বাসযোগ্য পরিবেশে চলমান, যা সম্পূর্ণরূপে বিশ্বস্ত পরিবেশে চলমান আপনার সার্ভার কোডকে উপযুক্ত JWT কে ফ্লিট ইঞ্জিনে প্রেরণের জন্য অনুরোধ করার আহ্বান জানায়।

  • JWT গুলি পরিষেবা অ্যাকাউন্টের সাথে যুক্ত, তাই ফ্লিট ইঞ্জিনে পাঠানো অনুরোধগুলি JWT স্বাক্ষরকারী পরিষেবা অ্যাকাউন্টের সাথে পরোক্ষভাবে যুক্ত।

  • JWT দাবি করে যে ক্লায়েন্ট যেসব সম্পদ ব্যবহার করে কাজ করতে পারে, যেমন নির্দিষ্ট যানবাহন, ভ্রমণ বা কাজ, সেগুলো আরও সীমিত করে।

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

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

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

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

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

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

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

চাহিদা অনুযায়ী ভ্রমণের জন্য

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

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

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

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

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

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

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

ফ্লিট অপারেশনের জন্য JWT উদাহরণ

এই বিভাগটি ফ্লিট অপারেশনের একটি সাধারণ দৃশ্যকল্পের জন্য একটি JWT উদাহরণ প্রদান করে।

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

নিচের উদাহরণটি হল একটি টোকেন যা একটি অপারেটর দ্বারা ব্যবহৃত একটি ওয়েব-ভিত্তিক অ্যাপ থেকে বহরের সমস্ত কাজ এবং যানবাহন ট্র্যাক করে। এই ক্রিয়াকলাপগুলির জন্য প্রয়োজনীয় অনুমতি ক্লায়েন্ট অ্যাপ্লিকেশনগুলির চেয়ে বেশি। এই টোকেন ব্যবহার করবে এমন ক্লায়েন্ট-সাইড বাস্তবায়নের জন্য জাভাস্ক্রিপ্ট ফ্লিট ট্র্যাকিং লাইব্রেরি সেট আপ করুন দেখুন:

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

   {
      "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": "*",
       }
    }

ব্যাকএন্ড সার্ভার অপারেশনের জন্য বিকল্প প্রমাণীকরণ পদ্ধতি

ব্যাকএন্ড সার্ভারের ক্রিয়াকলাপ প্রমাণীকরণের জন্য গুগল আপনাকে ADC ব্যবহার করার পরামর্শ দেয়। যদি আপনি ADC ব্যবহার করতে না পারেন এবং 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_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": "*"
       }
    }
  

এরপর কি?

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