JSON Web Token (JWT) เป็นมาตรฐานเว็บแบบเปิดที่ใช้สำหรับการตรวจสอบสิทธิ์ และอนุญาตการแลกเปลี่ยนข้อมูลระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ เมื่อแอป ให้ผู้ใช้ลงชื่อเข้าใช้ด้วยข้อมูลเข้าสู่ระบบของบทบาทที่เหมาะสมก่อน เซิร์ฟเวอร์จะสร้าง และแสดงผล JWT ที่เข้ารหัสและลงนามแบบดิจิทัลเพื่อใช้กับคำขอที่ตามมา กระบวนการนี้จะตรวจสอบสิทธิ์ผู้ใช้และให้สิทธิ์ผู้ใช้ในการเข้าถึงเส้นทาง บริการ และทรัพยากรตามบทบาทในบัญชี
สำหรับการเรียกเมธอด API จากสภาพแวดล้อมที่มีความน่าเชื่อถือต่ำ Fleet Engine จะต้องใช้ การใช้ JSON Web Token (JWT) ที่ลงนามโดยบัญชีบริการที่เหมาะสม สภาพแวดล้อมที่มีความน่าเชื่อถือต่ำรวมถึงสมาร์ทโฟนและเบราว์เซอร์ต่างๆ JWT สร้างขึ้นจากเซิร์ฟเวอร์ของคุณ ซึ่งเป็นสภาพแวดล้อมที่เชื่อถือได้ทั้งหมด JWT ลงชื่อ เข้ารหัส และส่งต่อไปยังไคลเอ็นต์สำหรับเซิร์ฟเวอร์ต่อๆ ไป การโต้ตอบต่างๆ จนกว่าหมดอายุหรือใช้ไม่ได้ สำหรับ รายการของบทบาทบัญชีบริการ โปรดดูบทบาทบัญชีบริการ Fleet Engine ในข้อมูลพื้นฐานเกี่ยวกับ Fleet Engine
ในทางกลับกัน แบ็กเอนด์ของคุณควรตรวจสอบสิทธิ์และให้สิทธิ์กับ Fleet Engine โดยใช้ Application Default Credentials แบบมาตรฐาน และกลไกต่างๆ
JWT มีอายุการใช้งานสั้น และจำกัดการดำเนินการเฉพาะคีย์ API เท่านั้น ซึ่งต่างจากคีย์ API ที่ได้รับมอบอำนาจให้ดำเนินการ ดูข้อมูลเพิ่มเติมเกี่ยวกับ JWT ได้ที่ JSON Web Tokens ใน Wikipedia โปรดดูรายละเอียดเกี่ยวกับบทบาทการเข้าถึงที่หัวข้อบริการ บทบาทของบัญชีในคู่มือนี้
องค์ประกอบ JWT
JWT มีส่วนหัวและส่วนการอ้างสิทธิ์ ส่วนหัวประกอบด้วย เช่น คีย์ส่วนตัวที่ได้รับจากบัญชีบริการ และ อัลกอริทึมการเข้ารหัส ส่วนการอ้างสิทธิ์มีข้อมูล เช่น ของ JWT สร้างเวลา เวลาว่าง บริการที่ JWT อ้าง การเข้าถึง และข้อมูลการให้สิทธิ์อื่นๆ เพื่อกำหนดขอบเขตการเข้าถึง สำหรับ เช่น รหัสยานพาหนะที่นำส่ง
ตารางต่อไปนี้ให้รายละเอียดโดยทั่วไปเกี่ยวกับฟิลด์ JWT รวมทั้งข้อมูลเฉพาะเกี่ยวกับตำแหน่งที่คุณสามารถหาค่าต่างๆ ในโปรเจ็กต์ Fleet Engine Cloud ของคุณ
ฟิลด์ |
คำอธิบาย |
---|---|
Alg |
อัลกอริทึมที่จะใช้ "RS256" |
typ |
ประเภทของโทเค็น "JWT" |
บุตรหลาน |
รหัสคีย์ส่วนตัวของบัญชีบริการ คุณสามารถค้นหาค่านี้ใน
ช่อง |
ฟิลด์ |
คำอธิบาย |
---|---|
คือ |
อีเมลของบัญชีบริการ ซึ่งดูได้ใน
ช่อง |
สำรอง |
อีเมลของบัญชีบริการ ซึ่งดูได้ใน
ช่อง |
Aud |
|
iat |
การประทับเวลาเมื่อสร้าง JWT ที่ระบุเป็นวินาที
ผ่านไปแล้วตั้งแต่ 00:00:00 |
exp |
การประทับเวลาเมื่อ JWT หมดอายุ โดยระบุเป็นวินาทีที่ผ่านไป
ตั้งแต่วันที่ |
การให้สิทธิ์ |
อาจมี หากระบุรหัสงาน ขอบเขตการให้สิทธิ์จะต้องเป็นอาร์เรย์ใน ในรูปแบบต่อไปนี้ "taskids": ["task_id_one","task_id_two"]
หรือ "taskids": ["*"] |
การอ้างสิทธิ์ JWT ของ Fleet Engine
Fleet Engine ใช้การอ้างสิทธิ์ส่วนตัว การใช้การอ้างสิทธิ์ส่วนตัวจะทำให้มั่นใจว่า ลูกค้าที่ได้รับอนุญาตสามารถเข้าถึงข้อมูลของตนเอง
เช่น เมื่อเซิร์ฟเวอร์ออกโทเค็นเว็บ JSON สำหรับอุปกรณ์เคลื่อนที่ของไดรเวอร์
อุปกรณ์ก็ควรมีการอ้างสิทธิ์ vehicleid
หรือ
ใบเคลม deliveryvehicleid
พร้อมค่ารหัสยานพาหนะของผู้ขับรายนั้น จากนั้นให้ทำดังนี้
JWT อนุญาตให้เข้าได้เฉพาะรถบางรุ่นเท่านั้นโดยขึ้นอยู่กับบทบาทคนขับ
บัตรประจำตัว ไม่ใช่รหัสยานพาหนะอื่นๆ ที่กำหนดเอง
Fleet Engine ใช้การกล่าวอ้างส่วนตัวดังต่อไปนี้
การเดินทางแบบออนดีมานด์
-
vehicleid
:- Driver SDK จะใช้คำกล่าวอ้างนี้เสมอ ไม่ว่าจะทำงานขณะเดินทาง หรือยานพาหนะ ระบบแบ็คเอนด์ของ Fleet Engine ทำให้มั่นใจได้ว่าพาหนะ ที่เชื่อมโยงกับการเดินทางที่ขอก่อนที่จะทำการแก้ไข
- JWT ครอบคลุมทั้งรถยนต์และการเดินทาง การดำเนินงานต่างๆ แม้ว่าจะไม่จำเป็นก็ตาม ซึ่งอาจทำให้การลงนาม JWT ทำได้ง่ายขึ้น การใช้งานของคุณ
-
tripid
:- Consumer SDK จะใช้คำกล่าวอ้างนี้เสมอ
- JWT ครอบคลุมการปฏิบัติการทั้งเกี่ยวกับยานพาหนะและการเดินทาง แม้ว่าจะไม่จำเป็นก็ตาม ซึ่งอาจทำให้ การลงนามโทเค็นทำได้ง่ายขึ้น การใช้งานของคุณ
งานที่กำหนดเวลาไว้
-
deliveryvehicleid
ใช้เมื่อเรียกใช้ API ของพาหนะการนำส่ง
-
taskid
ใช้เมื่อเรียกใช้ API ต่องาน
-
taskids
ใช้เมื่อโทร
BatchCreateTasksAPI
การอ้างสิทธิ์นี้ต้องอยู่ในรูปแบบอาร์เรย์ และอาร์เรย์ควรมีรหัสงานทั้งหมดที่จำเป็นต่อการดำเนินการ อีกครั้ง อย่าระบุdelivervehicleid
การอ้างสิทธิ์trackingid
หรือtaskid
รายการ -
trackingid
ใช้เมื่อเรียก
GetTaskTrackingInfoAPI
การอ้างสิทธิ์ต้องตรงกับการติดตาม รหัสในคำขอ อย่าระบุdelivervehicleid
การอ้างสิทธิ์taskid
หรือtaskids
รายการ
ขั้นตอนถัดไป
- อ่านเกี่ยวกับการออกแบบความปลอดภัยของ Fleet Engine เพื่อทำความเข้าใจเกี่ยวกับ ขั้นตอนการตรวจสอบสิทธิ์
- ดูวิธีออก JSON Web Token จากเซิร์ฟเวอร์