এই বিভাগটি ফ্লিট ইঞ্জিনের সাথে একীভূত হওয়ার ক্ষেত্রে প্রমাণীকরণ এবং অনুমোদনের ধারণাগুলি ব্যাখ্যা করে।
আপনি Google ক্লাউড কনসোলের মাধ্যমে Last Mile Fleet Solution দ্বারা প্রদত্ত ক্ষমতাগুলি কনফিগার করতে পারেন৷ ফ্লিট ইঞ্জিন SDK-এর জন্য JSON ওয়েব টোকেন (JWTs) ব্যবহার করা প্রয়োজন যেগুলি একটি উপযুক্ত পরিষেবা অ্যাকাউন্ট দ্বারা স্বাক্ষরিত।
ওভারভিউ
ফ্লিট ইঞ্জিনের বিরুদ্ধে প্রমাণীকরণ এবং অনুমোদনকারী গ্রাহকের ব্যাকএন্ডগুলি মানক অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র প্রক্রিয়া ব্যবহার করা উচিত।
ফ্লিট ইঞ্জিন এমন কলগুলিও গ্রহণ করে যেগুলি স্মার্টফোন এবং ব্রাউজারগুলির মতো স্বল্প-বিশ্বাসের পরিবেশ থেকে উদ্ভূত হয়৷ শুধুমাত্র বিশ্বস্ত পরিবেশের জন্য উপযুক্ত পরিষেবা অ্যাকাউন্ট গোপন কীগুলিকে সুরক্ষিত করতে, গ্রাহকদের ব্যাকএন্ডগুলি ফ্লিট ইঞ্জিনের জন্য নির্দিষ্ট অতিরিক্ত দাবি সহ স্বাক্ষরিত JSON ওয়েব টোকেন (JWT) তৈরি করবে বলে আশা করা হচ্ছে যা মোবাইল ফোনের মতো অবিশ্বস্ত পরিবেশে জারি করা যেতে পারে।
প্রমাণীকরণ নকশা নীতি
ফ্লিট ইঞ্জিনের প্রমাণীকরণ প্রবাহ নিম্নলিখিত নকশা নীতিগুলিকে অন্তর্ভুক্ত করে।
IAM ভূমিকাগুলি একজন প্রধানের জন্য অনুমোদিত সংস্থানগুলির অনুমতিগুলির একটি সেট সংজ্ঞায়িত করে৷ উদাহরণস্বরূপ, অ্যাডমিন ভূমিকাগুলিকে অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রের সাথে সবকিছু করার অনুমতি দেওয়া হয়, যেখানে অবিশ্বস্ত ড্রাইভার* ভূমিকা শুধুমাত্র গাড়ির অবস্থান আপডেট করার অনুমতি দেয় এবং প্রমাণীকরণ এবং অনুমোদনের জন্য JWT ব্যবহার করার জন্য সীমাবদ্ধ।
অবিশ্বস্ত পরিবেশের জন্য, জেডব্লিউটি দাবি করে যে কলার কাজ করতে পারে এমন সত্তাগুলিকে আরও সীমাবদ্ধ করে। এই নির্দিষ্ট কাজ বা ডেলিভারি যানবাহন হতে পারে.
আপনার কোড কম-বিশ্বাসের পরিবেশে চলমান একটি JWT ইস্যু করার জন্য প্রথমে একটি বিশ্বস্ত পরিবেশে চলমান আপনার কোডে কল করতে হবে।
ফ্লিট ইঞ্জিন একটি সম্পদের জন্য API কলগুলিতে নিম্নলিখিত নিরাপত্তা পরীক্ষা করে:
কলিং প্রিন্সিপালের সম্পদের উপর ক্রিয়া করার জন্য উপযুক্ত অনুমতি রয়েছে (রোল অ্যাসাইনমেন্টের মাধ্যমে)।
নন-প্রশাসক ভূমিকার জন্য অনুরোধে পাস করা JWT দাবিগুলি সংস্থানের জন্য প্রয়োজনীয় অনুমতি প্রদান করে।
প্রমাণীকরণ প্রবাহ
নিম্নলিখিত ক্রম চিত্রটি এই প্রমাণীকরণ প্রবাহের বিবরণ প্রদর্শন করে।
ফ্লিট অ্যাডমিনিস্ট্রেটর পরিষেবা অ্যাকাউন্ট তৈরি করে।
ফ্লিট অ্যাডমিনিস্ট্রেটর পরিষেবা অ্যাকাউন্টগুলিতে নির্দিষ্ট IAM ভূমিকা নির্ধারণ করে।
ফ্লিট অ্যাডমিনিস্ট্রেটর পরিষেবা অ্যাকাউন্ট এবং অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রের সাথে তাদের ব্যাকএন্ড কনফিগার করে।
ক্লায়েন্ট অ্যাপ গ্রাহক ব্যাকএন্ড থেকে একটি JWT অনুরোধ করে। অনুরোধকারী হতে পারে ড্রাইভার অ্যাপ, কনজিউমার অ্যাপ বা একটি মনিটরিং অ্যাপ।
গ্রাহক ব্যাকএন্ড সংশ্লিষ্ট পরিষেবা অ্যাকাউন্টের জন্য একটি JWT চিহ্ন এবং ইস্যু করে। ক্লায়েন্ট অ্যাপ JWT গ্রহণ করে।
ক্লায়েন্ট অ্যাপটি JWT ব্যবহার করে ফ্লিট ইঞ্জিনের সাথে সংযোগ স্থাপনের জন্য ডেটা পড়তে বা পরিবর্তন করার জন্য, সেটআপ পর্বের সময় এটিকে নির্ধারিত IAM ভূমিকার উপর নির্ভর করে।
ক্লাউড প্রকল্প সেটআপ
আপনার ক্লাউড প্রকল্প সেট আপ করতে, প্রথমে আপনার প্রকল্প তৈরি করুন এবং তারপর পরিষেবা অ্যাকাউন্ট তৈরি করুন৷
আপনার Google ক্লাউড প্রকল্প তৈরি করতে:
- Google ক্লাউড কনসোল ব্যবহার করে একটি Google ক্লাউড প্রকল্প তৈরি করুন।
- API এবং পরিষেবা ড্যাশবোর্ড ব্যবহার করে, স্থানীয় রাইডস এবং ডেলিভারি API সক্ষম করুন৷
পরিষেবা অ্যাকাউন্ট এবং আইএএম ভূমিকা
একটি পরিষেবা অ্যাকাউন্ট হল একটি বিশেষ ধরনের অ্যাকাউন্ট যা একজন ব্যক্তির পরিবর্তে একটি অ্যাপ্লিকেশন দ্বারা ব্যবহৃত হয়। সাধারণত, একটি পরিষেবা অ্যাকাউন্ট JWTs মিন্ট করতে ব্যবহৃত হয় যা ভূমিকার উপর নির্ভর করে বিভিন্ন সেট অনুমতি দেয়। অপব্যবহারের সম্ভাবনা কমাতে আপনি একাধিক পরিষেবা অ্যাকাউন্ট তৈরি করতে পারেন, প্রতিটিতে ন্যূনতম ভূমিকার সেট প্রয়োজন ()।
লাস্ট মাইল ফ্লিট সলিউশন নিম্নলিখিত ভূমিকা ব্যবহার করে:
ভূমিকা | বর্ণনা |
---|---|
ফ্লিট ইঞ্জিন ডেলিভারি বিশ্বস্ত ড্রাইভার ব্যবহারকারীroles/fleetengine.deliveryTrustedDriver | ডেলিভারি যানবাহন এবং কার্যগুলি তৈরি এবং আপডেট করার অনুমতি দেয়, যার মধ্যে ডেলিভারি গাড়ির অবস্থান এবং টাস্ক স্ট্যাটাস বা ফলাফল আপডেট করা সহ। এই ভূমিকার সাথে একটি পরিষেবা অ্যাকাউন্ট দ্বারা মিন্ট করা টোকেনগুলি সাধারণত আপনার ডেলিভারি ড্রাইভারের মোবাইল ডিভাইস বা আপনার ব্যাকএন্ড সার্ভার থেকে ব্যবহার করা হয়। |
ফ্লিট ইঞ্জিন ডেলিভারি অবিশ্বস্ত ড্রাইভার ব্যবহারকারীroles/fleetengine.deliveryUntrustedDriver | ডেলিভারি গাড়ির অবস্থান আপডেট করার অনুমতি দেয়। এই ভূমিকার সাথে একটি পরিষেবা অ্যাকাউন্ট দ্বারা মিন্ট করা টোকেনগুলি সাধারণত আপনার ডেলিভারি ড্রাইভারের মোবাইল ডিভাইস থেকে ব্যবহার করা হয়। |
ফ্লিট ইঞ্জিন ডেলিভারি ভোক্তা ব্যবহারকারীroles/fleetengine.deliveryConsumer | একটি ট্র্যাকিং আইডি ব্যবহার করে কাজগুলি অনুসন্ধান করার অনুমতি দেয়, এবং কাজের তথ্য পড়ার কিন্তু আপডেট না করার অনুমতি দেয়৷ এই ভূমিকার সাথে একটি পরিষেবা অ্যাকাউন্ট দ্বারা মিন্ট করা টোকেনগুলি সাধারণত ডেলিভারি গ্রাহকের ওয়েব ব্রাউজার থেকে ব্যবহার করা হয়। |
ফ্লিট ইঞ্জিন ডেলিভারি অ্যাডমিনroles/fleetengine.deliveryAdmin | বিতরণ সংস্থানগুলির জন্য পড়ার এবং লেখার অনুমতি দেয়। এই ভূমিকার অধ্যক্ষদের JWT ব্যবহার করার প্রয়োজন নেই এবং পরিবর্তে তাদের অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র ব্যবহার করা উচিত। কাস্টম JWT দাবি উপেক্ষা করা হয়. এই ভূমিকা বিশ্বস্ত পরিবেশে সীমাবদ্ধ করা উচিত (গ্রাহক ব্যাকএন্ড)। |
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-এ অ্যাক্সেস সীমাবদ্ধ করতে JWTs ব্যবহার করে। GitHub-এ উপলব্ধ Fleet Engine Auth Library, Fleet Engine JWT-এর নির্মাণকে সহজ করে এবং নিরাপদে তাদের স্বাক্ষর করে।
লাইব্রেরি নিম্নলিখিত সুবিধা প্রদান করে:
- ফ্লিট ইঞ্জিন টোকেন তৈরির প্রক্রিয়া সহজ করে।
- শংসাপত্রের ফাইলগুলি ব্যবহার করা ছাড়া টোকেন স্বাক্ষর করার পদ্ধতি প্রদান করে (যেমন একটি পরিষেবা অ্যাকাউন্টের ছদ্মবেশীকরণ।)
অনুমোদনের জন্য একটি JSON ওয়েব টোকেন (JWT) তৈরি করা
যখন Fleet Engine Auth Library ব্যবহার না করা হয়, JWTs কে সরাসরি আপনার কোডবেসের মধ্যে তৈরি করতে হবে। এর জন্য আপনাকে JWTs এবং ফ্লিট ইঞ্জিনের সাথে কীভাবে সম্পর্কযুক্ত তা সম্পর্কে গভীর ধারণা থাকতে হবে। এই কারণেই আমরা ফ্লিট ইঞ্জিন প্রমাণীকরণ লাইব্রেরির সুবিধা নেওয়ার সুপারিশ করছি।
ফ্লিট ইঞ্জিনের মধ্যে, JWTs স্বল্পস্থায়ী প্রমাণীকরণ প্রদান করে এবং নিশ্চিত করে যে ডিভাইসগুলি শুধুমাত্র সেই যানবাহন বা কাজগুলিকে সংশোধন করতে পারে যার জন্য তারা অনুমোদিত। JWT-এ একটি শিরোনাম এবং একটি দাবি বিভাগ থাকে। হেডার বিভাগে তথ্য রয়েছে যেমন ব্যবহার করার জন্য ব্যক্তিগত কী (পরিষেবা অ্যাকাউন্ট থেকে প্রাপ্ত) এবং এনক্রিপশন অ্যালগরিদম। দাবি বিভাগে তথ্য রয়েছে যেমন টোকেনের তৈরির সময়, টোকেনের বেঁচে থাকার সময়, টোকেন যে পরিষেবাগুলিতে অ্যাক্সেস দাবি করছে এবং অ্যাক্সেস ডাউন অ্যাক্সেসের জন্য অন্যান্য অনুমোদনের তথ্য; উদাহরণস্বরূপ, ডেলিভারি গাড়ির আইডি।একটি JWT হেডার বিভাগে নিম্নলিখিত ক্ষেত্র রয়েছে:
মাঠ | বর্ণনা |
---|---|
alg | ব্যবহার করার জন্য অ্যালগরিদম। `RS256`। |
typ | টোকেনের ধরন। `JWT`। |
kid | আপনার পরিষেবা অ্যাকাউন্টের ব্যক্তিগত কী আইডি। আপনি আপনার পরিষেবা অ্যাকাউন্ট JSON ফাইলের `private_key_id` ক্ষেত্রে এই মানটি খুঁজে পেতে পারেন। সঠিক স্তরের অনুমতি সহ একটি পরিষেবা অ্যাকাউন্ট থেকে একটি কী ব্যবহার করা নিশ্চিত করুন৷ |
একটি JWT দাবি বিভাগে নিম্নলিখিত ক্ষেত্র রয়েছে:
মাঠ | বর্ণনা |
---|---|
iss | আপনার পরিষেবা অ্যাকাউন্টের ইমেল ঠিকানা। |
sub | আপনার পরিষেবা অ্যাকাউন্টের ইমেল ঠিকানা। |
aud | আপনার পরিষেবা অ্যাকাউন্টের SERVICE_NAME, এই ক্ষেত্রে https://fleetengine.googleapis.com/ |
iat | টোকেন তৈরি করার সময় টাইমস্ট্যাম্প, 00:00:00 UTC, জানুয়ারী 1, 1970 থেকে অতিবাহিত সেকেন্ডের মধ্যে নির্দিষ্ট করা হয়েছে। স্কুয়ের জন্য 10 মিনিটের অনুমতি দিন। যদি টাইমস্ট্যাম্প অতীতে বা ভবিষ্যতে অনেক দূরে হয়, সার্ভার একটি ত্রুটি রিপোর্ট করতে পারে। |
exp | টোকেনের মেয়াদ শেষ হওয়ার সময় টাইমস্ট্যাম্প, 00:00:00 UTC, জানুয়ারী 1, 1970 থেকে অতিবাহিত সেকেন্ডের মধ্যে নির্দিষ্ট করা হয়। ভবিষ্যতে টাইমস্ট্যাম্প এক ঘণ্টার বেশি হলে অনুরোধ ব্যর্থ হয়। |
authorization | ব্যবহারের ক্ষেত্রের উপর নির্ভর করে, `ডেলিভারি ভেহিক্লিড`, `ট্র্যাকিংড`, `টাস্কিড` বা `টাস্কিড` থাকতে পারে। |
একটি JWT টোকেন মিন্ট করা মানে এটি স্বাক্ষর করা। JWT তৈরি এবং স্বাক্ষর করার জন্য নির্দেশাবলী এবং কোড নমুনার জন্য, OAuth ছাড়া পরিষেবা অ্যাকাউন্ট অনুমোদন দেখুন। তারপর আপনি gRPC কল বা ফ্লিট ইঞ্জিন অ্যাক্সেস করার জন্য ব্যবহৃত অন্যান্য পদ্ধতিতে একটি মিন্টেড টোকেন সংযুক্ত করতে পারেন।
JWT দাবি
লাস্ট মাইল ফ্লিট সলিউশন ব্যক্তিগত দাবি ব্যবহার করে। ব্যক্তিগত দাবি ব্যবহার করা নিশ্চিত করে যে শুধুমাত্র অনুমোদিত ক্লায়েন্টরা তাদের নিজস্ব ডেটা অ্যাক্সেস করতে পারে। উদাহরণস্বরূপ, যখন আপনার ব্যাকএন্ড একটি ডেলিভারি ড্রাইভারের মোবাইল ডিভাইসের জন্য একটি JSON ওয়েব টোকেন ইস্যু করে, তখন সেই টোকেনে সেই ড্রাইভারের ডেলিভারি গাড়ির আইডির মান সহ deliveryvehicleid
দাবি থাকা উচিত। তারপরে, ড্রাইভারের ভূমিকার উপর নির্ভর করে, টোকেনগুলি শুধুমাত্র নির্দিষ্ট ডেলিভারি গাড়ির আইডির জন্য অ্যাক্সেস সক্ষম করে এবং অন্য কোনও নির্বিচারে গাড়ির আইডি নয়।
লাস্ট মাইল ফ্লিট সলিউশন নিম্নলিখিত ব্যক্তিগত দাবিগুলি ব্যবহার করে:
-
deliveryvehicleid
- প্রতি-ডেলিভারি-গাড়ি API কল করার সময় ব্যবহার করুন। -
taskid
- প্রতি টাস্ক API কল করার সময় ব্যবহার করুন। -
taskids
-BatchCreateTasksAPI
কল করার সময় ব্যবহার করুন। এই দাবিটি অবশ্যই অ্যারে আকারে হতে হবে এবং অ্যারেতে অনুরোধটি সম্পূর্ণ করার জন্য প্রয়োজনীয় সমস্ত টাস্ক আইডি থাকা উচিত৷delivervehicleid
,trackingid
, বাtaskid
দাবি অন্তর্ভুক্ত করবেন না৷ -
trackingid
-GetTaskTrackingInfoAPI
কল করার সময় ব্যবহার করুন। অনুরোধে ট্র্যাকিং আইডির সাথে দাবি অবশ্যই মিলবে।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।
একটি মোবাইল ডিভাইস বা শেষ ব্যবহারকারীর কাছে পাঠানোর জন্য টোকেনটি স্বাক্ষর করার সময়, ডেলিভারি ড্রাইভার বা ভোক্তা ভূমিকার জন্য শংসাপত্র ফাইলটি ব্যবহার করতে ভুলবেন না। অন্যথায়, মোবাইল ডিভাইস বা শেষ ব্যবহারকারীর কাছে এমন তথ্য পরিবর্তন বা দেখার ক্ষমতা থাকবে যা তাদের অ্যাক্সেস থাকা উচিত নয়।