প্রমাণীকরণ এবং অনুমোদন

এই বিভাগটি ফ্লিট ইঞ্জিন বাস্তবায়নের ক্ষেত্রে প্রমাণীকরণ এবং অনুমোদনের ধারণাগুলি ব্যাখ্যা করে। আপনার ফ্লিট ইঞ্জিন ফাংশন কলগুলিকে সুরক্ষিত করার জন্য আপনাকে যে পদ্ধতিগুলি সম্পাদন করতে হবে তার বিবরণ এতে রয়েছে।

আপনি Google ক্লাউড কনসোলের মাধ্যমে Last Mile Fleet Solution দ্বারা প্রদত্ত ক্ষমতাগুলি কনফিগার করতে পারেন৷ এই API এবং SDK-এর জন্য JSON ওয়েব টোকেন (JWTs) ব্যবহার করতে হবে যা ক্লাউড কনসোল থেকে তৈরি পরিষেবা অ্যাকাউন্ট ব্যবহার করে স্বাক্ষর করা হয়েছে।

ওভারভিউ

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

কম-বিশ্বাসের পরিবেশ থেকে উদ্ভূত ফাংশন কলগুলিকে সুরক্ষিত করার জন্য, Google এমন একটি মেকানিজম ডিজাইন করেছে যাতে আপনার কোড আপনার ব্যাকএন্ড সার্ভারে একটি টোকেন তৈরি করে, যা একটি সম্পূর্ণ-বিশ্বস্ত পরিবেশ। প্রতিটি কল একটি সম্পূর্ণ নিরাপত্তা বিবরণ বহন করে যা তারপর একটি JWT-তে এনক্রিপ্ট করা হয় যা আপনি যেকোনো পরিবেশ থেকে কলের সাথে পাস করেন।

প্রমাণীকরণ নকশা নীতি

ফ্লিট ইঞ্জিনের প্রমাণীকরণ প্রবাহ নিম্নলিখিত নকশা নীতিগুলিকে অন্তর্ভুক্ত করে।

  • IAM ভূমিকা কলার জন্য অনুমোদিত কার্যকলাপের সুযোগ সংজ্ঞায়িত করে। উদাহরণস্বরূপ, সুপার ইউজার ভূমিকাকে সবকিছু করার অনুমতি দেওয়া হয়, যেখানে অবিশ্বস্ত ড্রাইভার ভূমিকাটি শুধুমাত্র ন্যূনতম অবস্থান আপডেট করার অনুমতি দেয়।

  • IAM ভূমিকাগুলি পরিষেবা অ্যাকাউন্টগুলির সাথে যুক্ত।

  • জেডব্লিউটি দাবি করে যে কলকারীরা কাজ করতে পারে সেগুলিকে আরও সীমাবদ্ধ করে। এই নির্দিষ্ট কাজ বা ডেলিভারি যানবাহন হতে পারে.

  • ফ্লিট ইঞ্জিনে পাঠানো অনুরোধে সবসময় একটি JWT থাকে।

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

  • ফ্লিট ইঞ্জিন নিম্নলিখিত নিরাপত্তা পরীক্ষা করে:

    1. পরিষেবা অ্যাকাউন্টের সাথে যুক্ত IAM ভূমিকাগুলি কলারকে API কল ইস্যু করার জন্য সঠিক অনুমোদন প্রদান করে।

    2. অনুরোধে পাস করা JWT দাবিগুলি কলকারীকে সত্তায় কাজ করার জন্য সঠিক অনুমোদন প্রদান করে।

প্রমাণীকরণ প্রবাহ

নিম্নলিখিত ক্রম চিত্রটি এই প্রমাণীকরণ প্রবাহের বিবরণ প্রদর্শন করে।

  1. ফ্লিট অ্যাডমিনিস্ট্রেটর পরিষেবা অ্যাকাউন্ট তৈরি করে।

  2. ফ্লিট অ্যাডমিনিস্ট্রেটর পরিষেবা অ্যাকাউন্টগুলিতে নির্দিষ্ট IAM ভূমিকা নির্ধারণ করে।

  3. ফ্লিট অ্যাডমিনিস্ট্রেটর পরিষেবা অ্যাকাউন্টগুলির সাথে তাদের ব্যাকএন্ড কনফিগার করে।

  4. ক্লায়েন্ট অ্যাপটি অংশীদারের ব্যাকএন্ড থেকে একটি JWT অনুরোধ করে। অনুরোধকারী হতে পারে ড্রাইভার অ্যাপ, কনজিউমার অ্যাপ বা একটি মনিটরিং অ্যাপ।

  5. ফ্লিট ইঞ্জিন সংশ্লিষ্ট পরিষেবা অ্যাকাউন্টের জন্য একটি JWT ইস্যু করে। ক্লায়েন্ট অ্যাপ JWT গ্রহণ করে।

  6. ক্লায়েন্ট অ্যাপটি JWT ব্যবহার করে ফ্লিট ইঞ্জিনের সাথে সংযোগ স্থাপনের জন্য ডেটা পড়তে বা পরিবর্তন করার জন্য, সেটআপ পর্বের সময় এটিকে নির্ধারিত IAM ভূমিকার উপর নির্ভর করে।

প্রমাণীকরণ ক্রম চিত্র

ক্লাউড প্রকল্প সেটআপ

আপনার ক্লাউড প্রকল্প সেট আপ করতে, প্রথমে আপনার প্রকল্প তৈরি করুন এবং তারপর পরিষেবা অ্যাকাউন্ট তৈরি করুন৷

আপনার Google ক্লাউড প্রকল্প তৈরি করতে:

  1. Google ক্লাউড কনসোল ব্যবহার করে একটি Google ক্লাউড প্রকল্প তৈরি করুন।
  2. API এবং পরিষেবা ড্যাশবোর্ড ব্যবহার করে, স্থানীয় রাইডস এবং ডেলিভারি API সক্ষম করুন৷

পরিষেবা অ্যাকাউন্ট এবং আইএএম ভূমিকা

একটি পরিষেবা অ্যাকাউন্ট হল একটি বিশেষ ধরনের অ্যাকাউন্ট যা একজন ব্যক্তির পরিবর্তে একটি অ্যাপ্লিকেশন দ্বারা ব্যবহৃত হয়। সাধারণত, একটি পরিষেবা অ্যাকাউন্ট JWTs মিন্ট করতে ব্যবহৃত হয় যা ভূমিকার উপর নির্ভর করে বিভিন্ন সেট অনুমতি দেয়। অপব্যবহারের সম্ভাবনা কমাতে আপনি একাধিক পরিষেবা অ্যাকাউন্ট তৈরি করতে পারেন, প্রতিটিতে ন্যূনতম ভূমিকার সেট প্রয়োজন।

লাস্ট মাইল ফ্লিট সলিউশন নিম্নলিখিত ভূমিকা ব্যবহার করে:

ভূমিকা বর্ণনা
ফ্লিট ইঞ্জিন ডেলিভারি বিশ্বস্ত ড্রাইভার ব্যবহারকারী

roles/fleetengine.deliveryTrustedDriver
ডেলিভারি যানবাহন এবং কার্যগুলি তৈরি এবং আপডেট করার অনুমতি দেয়, যার মধ্যে ডেলিভারি গাড়ির অবস্থান এবং টাস্ক স্ট্যাটাস বা ফলাফল আপডেট করা সহ। এই ভূমিকার সাথে একটি পরিষেবা অ্যাকাউন্ট দ্বারা মিন্ট করা টোকেনগুলি সাধারণত আপনার ডেলিভারি ড্রাইভারের মোবাইল ডিভাইস বা আপনার ব্যাকএন্ড সার্ভার থেকে ব্যবহার করা হয়।
ফ্লিট ইঞ্জিন ডেলিভারি অবিশ্বস্ত ড্রাইভার ব্যবহারকারী

roles/fleetengine.deliveryUntrustedDriver
ডেলিভারি গাড়ির অবস্থান আপডেট করার অনুমতি দেয়। এই ভূমিকার সাথে একটি পরিষেবা অ্যাকাউন্ট দ্বারা মিন্ট করা টোকেনগুলি সাধারণত আপনার ডেলিভারি ড্রাইভারের মোবাইল ডিভাইস থেকে ব্যবহার করা হয়।
ফ্লিট ইঞ্জিন ডেলিভারি ভোক্তা ব্যবহারকারী

roles/fleetengine.deliveryConsumer
একটি ট্র্যাকিং আইডি ব্যবহার করে কাজগুলি অনুসন্ধান করার অনুমতি দেয়, এবং কাজের তথ্য পড়ার কিন্তু আপডেট না করার অনুমতি দেয়৷ এই ভূমিকার সাথে একটি পরিষেবা অ্যাকাউন্ট দ্বারা মিন্ট করা টোকেনগুলি সাধারণত ডেলিভারি গ্রাহকের ওয়েব ব্রাউজার থেকে ব্যবহার করা হয়।
ফ্লিট ইঞ্জিন ডেলিভারি সুপার ইউজার

roles/fleetengine.deliverySuperUser
সমস্ত ডেলিভারি যানবাহন এবং কার্য API-কে অনুমতি দেয়। এই ভূমিকা সহ একটি পরিষেবা অ্যাকাউন্ট দ্বারা মিন্ট করা টোকেনগুলি সাধারণত আপনার ব্যাকএন্ড সার্ভার থেকে ব্যবহৃত হয়।
ফ্লিট ইঞ্জিন ডেলিভারি ফ্লিট রিডার

roles/fleetengine.deliveryFleetReader
ট্র্যাকিং আইডি ব্যবহার করে ডেলিভারি যান এবং কাজগুলি পড়ার এবং কাজগুলি অনুসন্ধান করার অনুমতি দেয়৷ এই ভূমিকার সাথে একটি পরিষেবা অ্যাকাউন্ট দ্বারা মিন্ট করা টোকেনগুলি সাধারণত একটি ডেলিভারি ফ্লিট অপারেটরের ওয়েব ব্রাউজার থেকে ব্যবহার করা হয়।

যে সংস্থাগুলি কর্পোরেট আইটি দ্বারা পরিচালিত ডিভাইসগুলির সাথে তাদের ডেলিভারি ড্রাইভারগুলিকে সজ্জিত করে তারা ফ্লিট ইঞ্জিন বিশ্বস্ত ড্রাইভার ব্যবহারকারীর ভূমিকা দ্বারা অফার করা নমনীয়তার সুবিধা নিতে পারে এবং মোবাইল অ্যাপে কিছু বা সমস্ত ফ্লিট ইঞ্জিন ইন্টারঅ্যাকশন একীভূত করতে বেছে নিতে পারে৷

Bring Your Own Device নীতিগুলিকে সমর্থন করে এমন সংস্থাগুলিকে Fleet Engine অবিশ্বস্ত ড্রাইভার ব্যবহারকারীর ভূমিকার নিরাপত্তার জন্য বেছে নেওয়া উচিত এবং ফ্লিট ইঞ্জিনে গাড়ির অবস্থান আপডেট পাঠানোর জন্য শুধুমাত্র মোবাইল অ্যাপের উপর নির্ভর করা উচিত। অন্যান্য সমস্ত মিথস্ক্রিয়া গ্রাহক ব্যাকএন্ড সার্ভার থেকে উদ্ভূত হওয়া উচিত।

ড্রাইভার এবং কনজিউমার SDK এই স্ট্যান্ডার্ড ভূমিকাগুলির চারপাশে তৈরি করা হয়। যাইহোক, কাস্টম রোল তৈরি করা সম্ভব যা অনুমতির একটি নির্বিচারে সেট একসাথে বান্ডিল করার অনুমতি দেয়। একটি প্রয়োজনীয় অনুমতি অনুপস্থিত হলে ড্রাইভার এবং ভোক্তা SDK ত্রুটি বার্তা প্রদর্শন করবে৷ ফলস্বরূপ, আমরা দৃঢ়ভাবে কাস্টম ভূমিকার পরিবর্তে উপরে উপস্থাপিত ভূমিকাগুলির মানক সেট ব্যবহার করার পরামর্শ দিই৷

একটি পরিষেবা অ্যাকাউন্ট তৈরি করা

আপনি Google ক্লাউড কনসোলে IAM & Admin > Service Accounts ট্যাব ব্যবহার করে একটি পরিষেবা অ্যাকাউন্ট তৈরি করতে পারেন। ভূমিকা ড্রপ-ডাউন তালিকা থেকে, ফ্লিট ইঞ্জিন নির্বাচন করুন এবং পরিষেবা অ্যাকাউন্টে ভূমিকাগুলির মধ্যে একটি বরাদ্দ করুন। প্রতিটি ভূমিকার সাথে সম্পর্কিত অ্যাকাউন্টটি নির্দেশ করা ভাল অনুশীলন। উদাহরণস্বরূপ, পরিষেবা অ্যাকাউন্টটিকে একটি অর্থপূর্ণ নাম দিন।

সুবিধার জন্য, আপনার যদি অবিশ্বস্ত ক্লায়েন্টদের জন্য JWTs মিন্ট করার প্রয়োজন হয়, পরিষেবা অ্যাকাউন্ট টোকেন ক্রিয়েটর রোলে ব্যবহারকারীদের যোগ করা তাদের gcloud কমান্ড লাইন টুলের সাথে মিন্ট টোকেন করতে দেয়।

gcloud projects add-iam-policy-binding project-id \
       --member=user:my-user@example.com \
       --role=roles/iam.serviceAccountTokenCreator

যেখানে my-user@example.com হল gcloud ( gcloud auth list --format='value(account)' ) দিয়ে প্রমাণীকরণ করতে ব্যবহৃত ইমেল।

ফ্লিট ইঞ্জিন প্রমাণীকরণ লাইব্রেরি

ফ্লিট ইঞ্জিন ফ্লিট ইঞ্জিন API-এ অ্যাক্সেস সীমাবদ্ধ করতে JWT ব্যবহার করে। Github-এ উপলব্ধ নতুন Fleet Engine Auth Library, Fleet Engine JWT-এর নির্মাণকে সহজ করে এবং নিরাপদে স্বাক্ষর করে।

লাইব্রেরি নিম্নলিখিত সুবিধা প্রদান করে:

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

অনুমোদনের জন্য একটি JSON ওয়েব টোকেন (JWT) তৈরি করা

যখন Fleet Engine Auth Library ব্যবহার না করা হয়, JWTs কে সরাসরি আপনার কোডবেসের মধ্যে তৈরি করতে হবে। এর জন্য আপনাকে JWTs এবং ফ্লিট ইঞ্জিনের সাথে কীভাবে সম্পর্কযুক্ত তা সম্পর্কে গভীর ধারণা থাকতে হবে। এই কারণেই আমরা ফ্লিট ইঞ্জিন প্রমাণীকরণ লাইব্রেরির সুবিধা নেওয়ার সুপারিশ করছি।

ফ্লিট ইঞ্জিনের মধ্যে, JWTs স্বল্পস্থায়ী প্রমাণীকরণ প্রদান করে এবং নিশ্চিত করে যে ডিভাইসগুলি শুধুমাত্র সেই যানবাহন বা কাজগুলিকে সংশোধন করতে পারে যার জন্য তারা অনুমোদিত। JWT-এ একটি শিরোনাম এবং একটি দাবি বিভাগ থাকে। হেডার বিভাগে তথ্য রয়েছে যেমন ব্যবহার করার জন্য ব্যক্তিগত কী (পরিষেবা অ্যাকাউন্ট থেকে প্রাপ্ত) এবং এনক্রিপশন অ্যালগরিদম। দাবি বিভাগে তথ্য রয়েছে যেমন টোকেনের তৈরির সময়, টোকেনের বেঁচে থাকার সময়, টোকেন যে পরিষেবাগুলিতে অ্যাক্সেস দাবি করছে এবং অ্যাক্সেস ডাউন অ্যাক্সেসের জন্য অন্যান্য অনুমোদনের তথ্য; উদাহরণস্বরূপ, ডেলিভারি গাড়ির আইডি।

একটি JWT হেডার বিভাগে নিম্নলিখিত ক্ষেত্র রয়েছে:

মাঠ বর্ণনা
alg ব্যবহার করার জন্য অ্যালগরিদম। `RS256`।
টাইপ টোকেনের ধরন। `JWT`।
বাচ্চা আপনার পরিষেবা অ্যাকাউন্টের ব্যক্তিগত কী আইডি। আপনি আপনার পরিষেবা অ্যাকাউন্ট JSON ফাইলের `private_key_id` ক্ষেত্রে এই মানটি খুঁজে পেতে পারেন। সঠিক স্তরের অনুমতি সহ একটি পরিষেবা অ্যাকাউন্ট থেকে একটি কী ব্যবহার করা নিশ্চিত করুন৷

একটি JWT দাবি বিভাগে নিম্নলিখিত ক্ষেত্র রয়েছে:

মাঠ বর্ণনা
iss আপনার পরিষেবা অ্যাকাউন্টের ইমেল ঠিকানা।
উপ আপনার পরিষেবা অ্যাকাউন্টের ইমেল ঠিকানা।
aud আপনার পরিষেবা অ্যাকাউন্টের SERVICE_NAME, এই ক্ষেত্রে https://fleetengine.googleapis.com/
iat টোকেন তৈরি করার সময় টাইমস্ট্যাম্প, 00:00:00 UTC, জানুয়ারী 1, 1970 থেকে অতিবাহিত সেকেন্ডের মধ্যে নির্দিষ্ট করা হয়েছে। স্কুয়ের জন্য 10 মিনিটের অনুমতি দিন। যদি টাইমস্ট্যাম্প অতীতে বা ভবিষ্যতে অনেক দূরে হয়, সার্ভার একটি ত্রুটি রিপোর্ট করতে পারে।
exp টোকেনের মেয়াদ শেষ হওয়ার সময় টাইমস্ট্যাম্প, 00:00:00 UTC, জানুয়ারী 1, 1970 থেকে অতিবাহিত সেকেন্ডের মধ্যে নির্দিষ্ট করা হয়। ভবিষ্যতে টাইমস্ট্যাম্প এক ঘণ্টার বেশি হলে অনুরোধ ব্যর্থ হয়।
অনুমোদন ব্যবহারের ক্ষেত্রের উপর নির্ভর করে, `ডেলিভারি ভেহিক্লিড`, `ট্র্যাকিংড`, `টাস্কিড` বা `টাস্কিড` থাকতে পারে।

একটি JWT টোকেন মিন্ট করা মানে এটি স্বাক্ষর করা। JWT তৈরি এবং স্বাক্ষর করার জন্য নির্দেশাবলী এবং কোড নমুনার জন্য, OAuth ছাড়া পরিষেবা অ্যাকাউন্ট অনুমোদন দেখুন। তারপর আপনি gRPC কল বা ফ্লিট ইঞ্জিন অ্যাক্সেস করার জন্য ব্যবহৃত অন্যান্য পদ্ধতিতে একটি মিন্টেড টোকেন সংযুক্ত করতে পারেন।

JWT দাবি

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

লাস্ট মাইল ফ্লিট সলিউশন নিম্নলিখিত ব্যক্তিগত দাবিগুলি ব্যবহার করে:

  • deliveryvehicleid - প্রতি-ডেলিভারি-গাড়ি API কল করার সময় ব্যবহার করুন।
  • taskid - প্রতি টাস্ক API কল করার সময় ব্যবহার করুন।
  • taskids - BatchCreateTasksAPI কল করার সময় ব্যবহার করুন। এই দাবিটি অবশ্যই অ্যারে আকারে হতে হবে এবং অ্যারেতে অনুরোধটি সম্পূর্ণ করার জন্য প্রয়োজনীয় সমস্ত টাস্ক আইডি থাকা উচিত৷ delivervehicleid , trackingid , বা taskid দাবি অন্তর্ভুক্ত করবেন না৷
  • trackingid - SearchTasksAPI কল করার সময় ব্যবহার করুন। অনুরোধে ট্র্যাকিং আইডির সাথে দাবি অবশ্যই মিলবে। delivervehicleid , taskid বা taskids দাবি অন্তর্ভুক্ত করবেন না।

আপনি যখন আপনার ব্যাকএন্ড সার্ভার থেকে API কল করছেন তখন টোকেনে অবশ্যই উপযুক্ত দাবি থাকতে হবে, তবে আপনি deliveryvehicleid , taskid এবং trackingid দাবির জন্য একটি তারকাচিহ্নের বিশেষ মান ("*") ব্যবহার করতে পারেন। অ্যাস্টারিস্ক ("*") taskids দাবিতেও ব্যবহার করা যেতে পারে, তবে এটি অবশ্যই অ্যারের একমাত্র উপাদান হতে হবে।

আপনি যদি OAuth 2.0 অ্যাক্সেস টোকেন ব্যবহার না করে সরাসরি টোকেন বহনকারী হিসাবে একটি JSON তৈরি করতে এবং স্বাক্ষর করতে চান, তাহলে পরিচয় বিকাশকারী ডকুমেন্টেশনে OAuth ছাড়া পরিষেবা অ্যাকাউন্ট অনুমোদনের নির্দেশাবলী পড়ুন।

একটি gRPC কলে টোকেন সংযুক্ত করার পদ্ধতি কল করার জন্য ব্যবহৃত ভাষা এবং কাঠামোর উপর নির্ভর করে। একটি HTTP কলে একটি টোকেন নির্দিষ্ট করার পদ্ধতি হল একটি বাহক টোকেন সহ একটি অনুমোদন শিরোনাম অন্তর্ভুক্ত করা যার মান হল টোকেন, যেমনটি পৃথক চালান ট্র্যাকিং বা ফ্লিট পারফরম্যান্স ব্যবহারের ক্ষেত্রে অনুমোদনের নোটগুলিতে উল্লেখ করা হয়েছে।

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

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

নিম্নলিখিত উদাহরণটি আপনার ড্রাইভার অ্যাপের জন্য একটি টোকেন দেখায়:

    {
      "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"
       }
    }
  • হেডারে kid ক্ষেত্রের জন্য, আপনার পরিষেবা অ্যাকাউন্টের ব্যক্তিগত কী আইডি নির্দিষ্ট করুন। আপনি আপনার পরিষেবা অ্যাকাউন্ট JSON ফাইলের private_key_id ক্ষেত্রে এই মানটি খুঁজে পেতে পারেন।
  • iss এবং sub ক্ষেত্রগুলির জন্য, আপনার পরিষেবা অ্যাকাউন্টের ইমেল ঠিকানা উল্লেখ করুন। আপনি আপনার পরিষেবা অ্যাকাউন্ট JSON ফাইলের client_email ক্ষেত্রে এই মানটি খুঁজে পেতে পারেন।
  • aud ফিল্ডের জন্য, https://SERVICE_NAME/ নির্দিষ্ট করুন।
  • iat ক্ষেত্রের জন্য, টোকেন তৈরি করার সময় টাইমস্ট্যাম্প নির্দিষ্ট করুন, 00:00:00 UTC, জানুয়ারী 1, 1970 থেকে অতিবাহিত সেকেন্ডে। স্কুয়ের জন্য 10 মিনিটের অনুমতি দিন। যদি টাইমস্ট্যাম্প অতীতে বা ভবিষ্যতে অনেক দূরে হয়, সার্ভার একটি ত্রুটি রিপোর্ট করতে পারে।
  • exp ক্ষেত্রের জন্য, টোকেনের মেয়াদ শেষ হওয়ার সময় টাইমস্ট্যাম্প নির্দিষ্ট করুন, 00:00:00 UTC, জানুয়ারি 1, 1970 থেকে সেকেন্ডে। প্রস্তাবিত মান হল iat + 3600।

একটি মোবাইল ডিভাইস বা শেষ ব্যবহারকারীর কাছে পাঠানোর জন্য টোকেনটি স্বাক্ষর করার সময়, ডেলিভারি ড্রাইভার বা ভোক্তা ভূমিকার জন্য শংসাপত্র ফাইলটি ব্যবহার করতে ভুলবেন না। অন্যথায়, মোবাইল ডিভাইস বা শেষ ব্যবহারকারীর কাছে এমন তথ্য পরিবর্তন বা দেখার ক্ষমতা থাকবে যা তাদের অ্যাক্সেস থাকা উচিত নয়।