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

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

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

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

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

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

  • JWTগুলি পরিষেবা অ্যাকাউন্টের সাথে যুক্ত, তাই Fleet Engine-এ পাঠানো অনুরোধগুলি JWT-এ স্বাক্ষরকারী পরিষেবা অ্যাকাউন্টের সাথে নিহিতভাবে যুক্ত।

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

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

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

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

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

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

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

  • উপযুক্ত পরিষেবা অ্যাকাউন্ট এবং ভূমিকা ব্যবহার করুন । পরিষেবা অ্যাকাউন্ট এবং সংশ্লিষ্ট ভূমিকা নিশ্চিত করে যে টোকেন অনুরোধকারী ব্যবহারকারী সেই তথ্য দেখার জন্য অনুমোদিত যা টোকেন তাদের অ্যাক্সেস দেয়। বিশেষভাবে:
    • একটি মোবাইল ডিভাইসে পাস করার জন্য একটি JWT স্বাক্ষর করলে , ড্রাইভার বা গ্রাহক SDK ভূমিকার জন্য পরিষেবা অ্যাকাউন্টটি ব্যবহার করুন। অন্যথায়, মোবাইল ডিভাইসটি পরিবর্তন করতে পারে এবং ডেটা অ্যাক্সেস করতে পারে যার অ্যাক্সেস থাকা উচিত নয়৷
    • সুবিধাপ্রাপ্ত কলের জন্য JWT-তে স্বাক্ষর করলে , ADC বা 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_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 ক্লাউড আইএএম ভূমিকা ব্যবহার করে টোকেনে স্বাক্ষর করুন।

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

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

Google আপনাকে ব্যাকএন্ড সার্ভার অপারেশন প্রমাণীকরণের জন্য 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 ব্যবহারের তথ্যের জন্য, নিরাপত্তা ওভারভিউ দেখুন।