JSON Web Token (JWT) एक ओपन वेब स्टैंडर्ड है. इसका इस्तेमाल, क्लाइंट और सर्वर के बीच जानकारी के आदान-प्रदान की पुष्टि करने और उसे अनुमति देने के लिए किया जाता है. जब कोई ऐप्लिकेशन उपयोगकर्ता, भूमिका के क्रेडेंशियल से पहली बार साइन इन करता है, तो सर्वर एक एन्कोड किया गया, डिजिटल तौर पर हस्ताक्षर किया गया जेडब्लयूटी बनाता है और उसे वापस भेजता है. इसका इस्तेमाल बाद के अनुरोधों के लिए किया जाता है. इस प्रोसेस से, उपयोगकर्ता की पुष्टि की जाती है. साथ ही, उन्हें उनके खाते की भूमिका के आधार पर, रास्तों, सेवाओं, और संसाधनों को ऐक्सेस करने की अनुमति दी जाती है.
Fleet Engine को JSON Web Token (JWT) इस्तेमाल करने की ज़रूरत होती है. ऐसा एपीआई के तरीके को कॉल करने के लिए किया जाता है. ये कॉल कम भरोसेमंद एनवायरमेंट से किए जाते हैं: स्मार्टफोन और ब्राउज़र.
JWT आपके सर्वर पर बनता है. इस पर हस्ताक्षर किया जाता है, इसे एन्क्रिप्ट (सुरक्षित) किया जाता है, और इसे क्लाइंट को भेजा जाता है. ऐसा तब तक किया जाता है, जब तक इसकी समयसीमा खत्म नहीं हो जाती या यह मान्य नहीं रहता.
मुख्य जानकारी
- Fleet Engine के ख़िलाफ़ पुष्टि करने और अनुमति देने के लिए, ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल करें.
- JWT पर हस्ताक्षर करने के लिए, सही सेवा खाते का इस्तेमाल करें. Fleet Engine की बुनियादी बातें में, Fleet Engine serviceaccount की भूमिकाएं देखें.
एपीआई पासकोड के उलट, JWT कम समय के लिए मान्य होते हैं. साथ ही, ये सिर्फ़ उन कार्रवाइयों को सीमित करते हैं जिन्हें भूमिका को करने की अनुमति है. JWT के बारे में ज़्यादा जानकारी के लिए, Wikipedia पर JSON वेब टोकन लेख पढ़ें. ऐक्सेस की भूमिकाओं के बारे में ज़्यादा जानने के लिए, इस गाइड में सेवा खाते की भूमिकाएं देखें.
JWT के एलिमेंट
JWT में एक हेडर और एक दावा सेक्शन होता है. हेडर सेक्शन में, सेवा खातों से मिली निजी कुंजी और एन्क्रिप्शन एल्गोरिदम जैसी जानकारी होती है. दावे वाले सेक्शन में यह जानकारी होती है: JWT बनाने का समय, JWT की समयसीमा, वे सेवाएं जिन्हें JWT ऐक्सेस करने का दावा करता है, और ऐक्सेस को सीमित करने के लिए अनुमति से जुड़ी अन्य जानकारी. उदाहरण के लिए, डिलीवरी करने वाले वाहन का आईडी.
यहां दी गई टेबल में, JWT फ़ील्ड के बारे में सामान्य जानकारी दी गई है. साथ ही, यह भी बताया गया है कि Fleet Engine Cloud प्रोजेक्ट में इन फ़ील्ड की वैल्यू कहां मिल सकती हैं.
फ़ील्ड |
ब्यौरा |
|---|---|
alg |
इस्तेमाल किया जाने वाला एल्गोरिदम. `RS256`. |
टाइप |
टोकन का टाइप. `JWT`. |
बच्चे की प्रोफ़ाइल |
आपके सेवा खाते की निजी कुंजी का आईडी. यह वैल्यू, आपको सेवा खाते की JSON फ़ाइल के |
फ़ील्ड |
ब्यौरा |
|---|---|
iss |
आपके सेवा खाते का ईमेल पता. यह आपके सेवा खाते की JSON फ़ाइल के |
बदले में खेलने वाला खिलाड़ी |
आपके सेवा खाते का ईमेल पता. यह आपके सेवा खाते की JSON फ़ाइल के |
aud |
आपके सेवा खाते का |
iat |
यह टाइमस्टैंप, JWT बनाए जाने का समय दिखाता है. यह समय, 00:00:00 |
exp |
वह टाइमस्टैंप जब JWT खत्म हो जाता है. इसे |
ऑथराइज़ेशन |
इस्तेमाल के उदाहरण के आधार पर, इसमें अगर taskids तय किए जा रहे हैं, तो अनुमति का दायरा, इनमें से किसी एक फ़ॉर्म में एक ऐरे होना चाहिए: "taskids": ["task_id_one","task_id_two"]
या "taskids": ["*"] |
Fleet Engine JWT के दावे
Fleet Engine, निजी दावों का इस्तेमाल करता है. निजी दावों का इस्तेमाल करने से यह पक्का होता है कि सिर्फ़ अनुमति वाले क्लाइंट ही अपना डेटा ऐक्सेस कर सकते हैं.
उदाहरण के लिए, जब आपका सर्वर किसी ड्राइवर के मोबाइल डिवाइस के लिए JSON वेब टोकन जारी करता है, तो उसमें vehicleid दावा या deliveryvehicleid दावा होना चाहिए. साथ ही, उसमें ड्राइवर के वाहन के आईडी की वैल्यू होनी चाहिए. इसके बाद, ड्राइवर की भूमिका के आधार पर, JWT सिर्फ़ किसी खास वाहन के आईडी के लिए ऐक्सेस चालू करते हैं. ये किसी अन्य वाहन के आईडी के लिए ऐक्सेस चालू नहीं करते.
Fleet Engine, इन निजी दावों का इस्तेमाल करता है:
मांग के हिसाब से यात्राएं
-
vehicleid:- Driver SDK हमेशा इस दावे का इस्तेमाल करता है. भले ही, वह यात्रा या वाहन पर काम कर रहा हो. Fleet Engine का बैकएंड यह पक्का करता है कि बदलाव करने से पहले, वाहन को अनुरोध की गई यात्रा से जोड़ा गया हो.
- JWT में वाहन और यात्रा, दोनों से जुड़ी कार्रवाइयां शामिल हो सकती हैं. भले ही, इनकी ज़रूरत न हो. इससे JWT पर हस्ताक्षर करने की प्रोसेस को लागू करना आसान हो सकता है.
-
tripid:- Consumer SDK हमेशा इस दावे का इस्तेमाल करता है.
- JWT में वाहन और यात्रा, दोनों से जुड़ी कार्रवाइयां शामिल हो सकती हैं. भले ही, इनकी ज़रूरत न हो. इससे टोकन पर हस्ताक्षर करने की प्रोसेस को आसान बनाया जा सकता है.
शेड्यूल किए गए टास्क
-
deliveryvehicleidइसका इस्तेमाल, हर डिलीवरी वाहन के हिसाब से एपीआई को कॉल करते समय करें.
-
taskidइसका इस्तेमाल, टास्क के हिसाब से एपीआई कॉल करते समय करें.
-
taskidsBatchCreateTasksAPIसे कॉल करते समय इसका इस्तेमाल करें. यह दावा, ऐरे के फ़ॉर्म में होना चाहिए. साथ ही, ऐरे में वे सभी टास्क आईडी होने चाहिए जो अनुरोध को पूरा करने के लिए ज़रूरी हैं.delivervehicleid,trackingidयाtaskidजैसे दावे शामिल न करें. -
trackingidGetTaskTrackingInfoAPIको कॉल करते समय इसका इस्तेमाल करें. यह दावा, अनुरोध में दिए गए ट्रैकिंग आईडी से मेल खाना चाहिए.delivervehicleid,taskidयाtaskidsजैसे दावे शामिल न करें.
आगे क्या करना है
- पूरे पुष्टि करने के फ़्लो को समझने के लिए, Fleet Engine के सुरक्षा डिज़ाइन के बारे में पढ़ें.
- अपने सर्वर से JSON वेब टोकन जारी करने का तरीका जानें.