โทเค็นเว็บ JSON

JSON Web Token (JWT) เป็นมาตรฐานเว็บแบบเปิดที่ใช้สำหรับการตรวจสอบสิทธิ์และ การให้สิทธิ์แลกเปลี่ยนข้อมูลระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ เมื่อแอป ให้ผู้ใช้ลงชื่อเข้าใช้ด้วยข้อมูลเข้าสู่ระบบของบทบาทที่เหมาะสมก่อน เซิร์ฟเวอร์จะสร้าง และแสดงผล JWT ที่เข้ารหัสและลงนามแบบดิจิทัลเพื่อใช้กับคำขอที่ตามมา กระบวนการนี้จะตรวจสอบสิทธิ์ผู้ใช้และให้สิทธิ์ผู้ใช้ในการเข้าถึงเส้นทาง บริการ และทรัพยากรตามบทบาทในบัญชี

Fleet Engine กำหนดให้ใช้ JSON Web Token (JWT) ที่ลงนามโดย บัญชีบริการที่เหมาะสมสำหรับการเรียกเมธอด API จาก low-Trust สภาพแวดล้อมการทำงาน สภาพแวดล้อมที่มีความน่าเชื่อถือต่ำรวมถึงสมาร์ทโฟนและเบราว์เซอร์ต่างๆ JWT จะทำงานในเซิร์ฟเวอร์ของคุณ ซึ่งเป็นสภาพแวดล้อมที่เชื่อถือได้อย่างสมบูรณ์ JWT ลงชื่อ เข้ารหัส และส่งต่อไปยังไคลเอ็นต์สำหรับเซิร์ฟเวอร์ต่อๆ ไป การโต้ตอบต่างๆ จนกว่าหมดอายุหรือใช้ไม่ได้

แบ็กเอนด์ของคุณควรตรวจสอบสิทธิ์และให้สิทธิ์กับ Fleet Engine โดยใช้ กลไก Application Default Credentials แบบมาตรฐาน สร้าง อย่าลืมใช้ JWT ที่ลงชื่อโดยบัญชีบริการที่เหมาะสม สำหรับ รายการของบทบาทบัญชีบริการ โปรดดูบทบาทบัญชีบริการ Fleet Engine ในข้อมูลพื้นฐานเกี่ยวกับ Fleet Engine

JWT มีระยะเวลาการใช้งานสั้นและจำกัดการดำเนินการเฉพาะคีย์ API เท่านั้น ที่ได้รับมอบอำนาจให้ดำเนินการ ดูข้อมูลเพิ่มเติมเกี่ยวกับ JWT ได้ที่ JSON Web Tokens ใน Wikipedia โปรดดูรายละเอียดเกี่ยวกับบทบาทการเข้าถึงที่หัวข้อบริการ บทบาทของบัญชีในคู่มือนี้

องค์ประกอบ JWT

JWT มีส่วนหัวและส่วนการอ้างสิทธิ์ ส่วนหัวประกอบด้วย เช่น คีย์ส่วนตัวที่ได้รับจากบัญชีบริการ และ อัลกอริทึมการเข้ารหัส ส่วนการอ้างสิทธิ์มีข้อมูล เช่น ของ JWT สร้างเวลา เวลาว่าง บริการที่ JWT อ้าง การเข้าถึง และข้อมูลการให้สิทธิ์อื่นๆ เพื่อกำหนดขอบเขตการเข้าถึง สำหรับ เช่น รหัสยานพาหนะที่นำส่ง

ตารางต่อไปนี้ให้รายละเอียดโดยทั่วไปเกี่ยวกับฟิลด์ JWT รวมทั้งข้อมูลเฉพาะเกี่ยวกับตำแหน่งที่คุณสามารถหาค่าต่างๆ ในโปรเจ็กต์ Fleet Engine Cloud ของคุณ

ช่องส่วนหัว JWT

ฟิลด์

คำอธิบาย

Alg

อัลกอริทึมที่จะใช้ "RS256"

typ

ประเภทของโทเค็น "JWT"

บุตรหลาน

รหัสคีย์ส่วนตัวของบัญชีบริการ คุณสามารถค้นหาค่านี้ใน ช่อง private_key_id ของไฟล์ JSON ของบัญชีบริการ สร้าง คุณต้องใช้คีย์จากบัญชีบริการที่มีระดับสิทธิ์ที่ถูกต้อง

ช่องการอ้างสิทธิ์ JWT

ฟิลด์

คำอธิบาย

คือ

อีเมลของบัญชีบริการ ซึ่งดูได้ใน ช่อง client_email ของไฟล์ JSON ของบัญชีบริการ

สำรอง

อีเมลของบัญชีบริการ ซึ่งดูได้ใน ช่อง client_email ของไฟล์ JSON ของบัญชีบริการ

Aud

SERVICE_NAME ของบัญชีบริการ ในกรณีนี้คือ https://fleetengine.googleapis.com/

Iiat

การประทับเวลาเมื่อสร้าง JWT ที่ระบุเป็นวินาที ผ่านไปแล้วตั้งแต่ 00:00:00 UTC, January 1, 1970 โปรดรอ 10 นาทีสำหรับการเอียง หากการประทับเวลาอยู่ในอดีตหรือในอนาคตมากเกินไป เซิร์ฟเวอร์อาจรายงานข้อผิดพลาด

หมดอายุ

การประทับเวลาเมื่อ JWT หมดอายุ โดยระบุเป็นวินาทีที่ผ่านไป ตั้งแต่วันที่ 00:00:00 UTC, January 1, 1970 คำขอล้มเหลวหาก จะนานกว่า 1 ชั่วโมงในอนาคต

การให้สิทธิ์

อาจมี deliveryvehicleid ขึ้นอยู่กับกรณีการใช้งาน trackingid, taskid หรือ taskids

คำกล่าวอ้างของ Fleet Engine JWT

Fleet Engine ใช้การอ้างสิทธิ์ส่วนตัว การใช้การอ้างสิทธิ์ส่วนตัวจะทำให้มั่นใจว่า ลูกค้าที่ได้รับอนุญาตสามารถเข้าถึงข้อมูลของตนเอง

เช่น เมื่อเซิร์ฟเวอร์ออกโทเค็นเว็บ JSON สำหรับอุปกรณ์เคลื่อนที่ของไดรเวอร์ อุปกรณ์ก็ควรมีการอ้างสิทธิ์ vehicleid หรือ ใบเคลม deliveryvehicleid พร้อมค่ารหัสยานพาหนะของผู้ขับรายนั้น จากนั้นให้ทำดังนี้ JWT อนุญาตให้เข้าได้เฉพาะรถบางรุ่นเท่านั้นโดยขึ้นอยู่กับบทบาทคนขับ บัตรประจำตัว ไม่ใช่รหัสยานพาหนะอื่นๆ ที่กำหนดเอง

Fleet Engine ใช้การกล่าวอ้างส่วนตัวดังต่อไปนี้

การเดินทางแบบออนดีมานด์

  • vehicleid
    • Driver SDK จะใช้คำกล่าวอ้างนี้เสมอ ไม่ว่าจะทำงานขณะเดินทาง หรือยานพาหนะ ระบบแบ็คเอนด์ของ Fleet Engine ทำให้มั่นใจได้ว่าพาหนะ ที่เชื่อมโยงกับการเดินทางที่ขอก่อนที่จะทำการแก้ไข
    • ในฐานะผู้ให้บริการ คุณใช้การอ้างสิทธิ์นี้กับเครื่องหมาย "*" เพื่อจับคู่ทั้งหมด รถยนต์ โปรดทราบว่า JWT ครอบคลุมทั้งยานพาหนะและการเดินทาง การดำเนินงานต่างๆ แม้ว่าจะไม่จำเป็นก็ตาม ซึ่งอาจทำให้การลงนาม JWT ทำได้ง่ายขึ้น การใช้งานของคุณ
  • tripid
    • Consumer SDK จะใช้คำกล่าวอ้างนี้เสมอ
    • ในฐานะผู้ให้บริการ คุณใช้การอ้างสิทธิ์นี้กับ "*" เพื่อจับคู่ทั้งหมด การเดินทาง โปรดทราบว่า JWT ครอบคลุมการขับขี่ยานพาหนะและการเดินทาง แม้ว่าจะไม่จำเป็นก็ตาม ซึ่งอาจทำให้ การลงนามโทเค็นทำได้ง่ายขึ้น การใช้งานของคุณ

งานที่กำหนดเวลาไว้

  • deliveryvehicleid

    ใช้เมื่อโทรต่อยานพาหนะ 1 คัน API

  • taskid

    ใช้เมื่อเรียกใช้ API ต่องาน

  • taskids

    ใช้เมื่อโทร BatchCreateTasksAPI การอ้างสิทธิ์นี้ต้องอยู่ในรูปแบบอาร์เรย์ และอาร์เรย์ควรมีรหัสงานทั้งหมดที่จำเป็นต่อการดำเนินการ อีกครั้ง อย่าระบุ delivervehicleid การอ้างสิทธิ์ trackingid หรือ taskid รายการ

  • trackingid

    ใช้เมื่อเรียก GetTaskTrackingInfoAPI การอ้างสิทธิ์ต้องตรงกับการติดตาม รหัสในคำขอ อย่าระบุ delivervehicleid การอ้างสิทธิ์ taskid หรือ taskids รายการ

ขั้นตอนถัดไป