JSON वेब टोकन जारी करना

इस दस्तावेज़ में वेब टोकन को चालू करने के लिए, JSON वेब टोकन जारी करने का तरीका बताया गया है और मोबाइल-आधारित ऐप्लिकेशन, फ़्लीट इंजन डेटा को ऐक्सेस कर सकते हैं. अगर आपने ऐसा नहीं किया है पहले ही, फ़्लीट इंजन में सुरक्षा में जाकर JSON वेब टोकन पढ़ें सेक्शन में जाएं. फ़्लीट इंजन सेवा के साथ, आप इनमें से किसी एक में JWTs जारी कर सकते हैं इन तरीकों से मदद पाएं:

  • अनुमति वाली लाइब्रेरी का इस्तेमाल करना—Google आपको यह तरीका इस्तेमाल करने का सुझाव देता है जब आपका कोड बेस Java में लिखा होता है. यह लाइब्रेरी इनके लिए JWT जारी करने का काम करती है इस्तेमाल के ऐसे सभी मामले जिनकी आपको सेवा के साथ ज़रूरत पड़ सकती है और लागू करने की प्रक्रिया को आसान बनाता है.
  • अपने JWT बनाएं—अगर आप हमारी JWT लाइब्रेरी का इस्तेमाल नहीं कर सकते, तो आपको ये करने होंगे इन्हें अपने कोड बेस में बनाएं. इस सेक्शन में, आपको कई हर स्थिति के लिए, JWT के उदाहरण.

JWT कैसे काम करते हैं

मोबाइल फ़ोन और वेब ब्राउज़र जैसे गैर-भरोसेमंद एनवायरमेंट के लिए, आपका बैकएंड सर्वर JWT के साथ काम करता है, जो इस तरह से काम करता है:

  • आपके सर्वर पर, कम भरोसेमंद एनवायरमेंट वाले कॉल में चल रहा क्लाइंट कोड सही JWT का अनुरोध करने के लिए, पूरी तरह से भरोसेमंद एनवायरमेंट में चल रहा कोड फ़्लीट इंजन को पास करने के लिए.

  • JWT, सेवा खातों से जुड़े होते हैं. इसलिए, Fleet Engine को भेजे गए अनुरोध, उस सेवा खाते से जुड़े होते हैं जिसने JWT पर हस्ताक्षर किया है.

  • JWT के दावे, उन संसाधनों को और सीमित करते हैं जिनका इस्तेमाल क्लाइंट कर सकता है. जैसे कि ख़ास वाहन, यात्राएं या टास्क.

Java के लिए, अनुमति देने वाली लाइब्रेरी का इस्तेमाल करना

Java के लिए Fleet Engine की अनुमति देने वाली लाइब्रेरी का इस्तेमाल करने के लिए, GitHub रिपॉज़िटरी पर जाएं. लाइब्रेरी से फ़्लीट इंजन को आसानी से बनाया जा सकता है JWTs और उन्हें सुरक्षित रूप से साइन करता है. इससे यह जानकारी मिलती है:

  • प्रोजेक्ट डिपेंडेंसी के एलान
  • मांग पर यात्राओं या मांग पर होने वाली यात्राओं के लिए, सेवा खाते से जुड़ी सभी भूमिकाओं की पूरी सूची शेड्यूल किए गए टास्क
  • क्रेडेंशियल फ़ाइलों का इस्तेमाल करने के अलावा, टोकन पर हस्ताक्षर करने के अन्य तरीके भी शामिल हैं. जैसे, किसी सेवा खाते की पहचान चुराना
  • gRPC स्टब या Google API Codegen (GAPIC) क्लाइंट लाइब्रेरी से किए गए आउटबाउंड अनुरोधों में, हस्ताक्षर किए गए टोकन अटैच करता है
  • हस्ताक्षर करने वाले लोगों को Fleet Engine क्लाइंट लाइब्रेरी के साथ इंटिग्रेट करने के बारे में निर्देश

अगर अपने कोड से JWT जारी किया जाता है, तो

अगर आप Java के लिए प्राधिकरण लाइब्रेरी का उपयोग नहीं कर सकते, तो आपको JWTs आपका कोड बेस है. इस सेक्शन में, अपनी ऑडियंस बनाने के लिए कुछ दिशा-निर्देश दिए गए हैं टोकन. फ़्लीट इंजन में सुरक्षा सेक्शन में, JSON वेब टोकन देखें का इस्तेमाल करें. सेवा खाता देखें भूमिकाएं: Fleet Engine की ओर से इस्तेमाल की जाने वाली सेवा खाते से जुड़ी भूमिकाओं के लिए. यहां जाएं: यहां दिए गए सेक्शन में, ऑन-डिमांड ट्रिप या JWT के उदाहरणों की सूची देखी जा सकती है शेड्यूल किए गए टास्क.

सामान्य दिशा-निर्देश

  • सही सेवा खातों और भूमिकाओं का इस्तेमाल करें. सेवा खाता और असोसिएटेड भूमिका से यह पक्का होता है कि टोकन का अनुरोध करने वाला उपयोगकर्ता वह जानकारी देख सकता है जिसका ऐक्सेस टोकन उन्हें ऐक्सेस देता है. खास तौर पर:
    • अगर किसी मोबाइल डिवाइस पर JWT पास करने के लिए साइन किया जा रहा है, तो इस सेवा का इस्तेमाल करें ड्राइवर या उपभोक्ता SDK टूल की भूमिका के लिए. या फिर, मोबाइल डिवाइस उस डेटा को बदल और ऐक्सेस कर सकता है जिसका ऐक्सेस उसके पास नहीं होना चाहिए.
    • अगर खास कॉल के लिए JWT पर हस्ताक्षर किया जा रहा है, तो एडीसी या JWT का इस्तेमाल करते समय, Fleet Engine एडमिन की सही भूमिका वाले सेवा खाते का इस्तेमाल करें. ऐसा न करने पर, कार्रवाई नहीं हो पाती.
  • सिर्फ़ बनाए गए टोकन शेयर करें. टोकन बनाने के लिए इस्तेमाल किए गए क्रेडेंशियल कभी शेयर न करें.
  • gRPC कॉल के लिए, टोकन को अटैच करने का तरीका कॉल करने के लिए इस्तेमाल की गई भाषा और फ़्रेमवर्क. किसी निर्देश को एचटीटीपी कॉल का टोकन, बियरर के साथ Authorization हेडर को शामिल करता है एक टोकन है, जिसका मान टोकन है.
  • समयसीमा खत्म होने का समय दिखाएं. आपके सर्वर को टोकन के खत्म होने का समय दिखाना चाहिए. आम तौर पर, यह समय सेकंड में दिखाया जाता है.
  • अगर आपको JSON को सीधे टोकन बेयरर के तौर पर बनाकर साइन करना है, तो तो OAuth 2.0 ऐक्सेस टोकन का इस्तेमाल करने के बजाय, सेवा पहचान की पुष्टि में OAuth के बिना खाते की अनुमति देना डेवलपर का दस्तावेज़.

मांग पर यात्राएं बुक करने के लिए

  • JWT पेलोड बनाते समय, अनुमति में एक और दावा जोड़ें vehicleid या tripid कुंजी वाला सेक्शन, वाहन की वैल्यू पर सेट किया गया वह आईडी या ट्रिप आईडी जिसके लिए कॉल किया जा रहा है.

शेड्यूल किए गए टास्क के लिए

  • जब आपका सर्वर अन्य एपीआई को कॉल करता है, तो टोकन में उचित दावा. इसके लिए, ये काम किए जा सकते हैं:
    • हर बटन की वैल्यू को * पर सेट करें.
    • उपयोगकर्ता को सभी 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 का उदाहरण देता है.

सभी टास्क और गाड़ियों को ट्रैक करने वाले टोकन का उदाहरण

इस उदाहरण में, एक टोकन है जो इसमें मौजूद सभी टास्क और वाहनों को ट्रैक करता है किसी ऑपरेटर के इस्तेमाल किए गए वेब-आधारित ऐप्लिकेशन से फ़्लीट. ज़रूरी अनुमतियां इन कार्रवाइयों के लिए, क्लाइंट ऐप्लिकेशन से ज़्यादा है. यहां जाएं: क्लाइंट-साइड के लिए JavaScript फ़्लीट ट्रैकिंग लाइब्रेरी सेट अप करना इस तरह लागू करें:

  • Fleet Engine Delivery Fleet Reader Cloud 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": "*",
       }
    }

बैकएंड सर्वर की कार्रवाइयों के लिए, पुष्टि करने का दूसरा तरीका

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

आगे क्या करना है