אסימוני אינטרנט JSON

JSON Web Token (JWT) הוא תקן אינטרנט פתוח שמשמש לאימות אישור חילופי מידע בין לקוח לשרת. כשאפליקציה המשתמש נכנס קודם עם פרטי הכניסה של התפקיד המתאים, השרת יוצר ומחזיר JWT מקודד בחתימה דיגיטלית לשימוש בבקשות הבאות. התהליך הזה מאמת את המשתמש וגם מרשה לו לגשת למסלולים, ושירותים שונים על סמך התפקיד שלהם בחשבון.

כדי להשתמש ב-Fleet Engine, צריך להשתמש ב-JSON Web Tokens (JWT) חתומים חשבון שירות מתאים לקריאות לשיטה של API מרמת אמון נמוכה של סביבות. סביבות עם רמת אמון נמוכה כוללות סמארטפונים ודפדפנים. JWT נוצר בשרת שלכם, שהוא סביבה מהימנה לגמרי. ה-JWT חתום, מוצפן ומועבר ללקוח עבור השרת הבא אינטראקציות עד שהתוקף שלהן פג או שהוא לא בתוקף.

הקצה העורפי צריך לבצע אימות ואישור מול Fleet Engine באמצעות המנגנונים הרגילים של Application Default Credentials. יצרן להשתמש באסימוני JWT שחתמו על ידי חשבון שירות מתאים. עבור לרשימת תפקידי חשבון השירות, ראו התפקידים בחשבון שירות ב-Fleet Engine במאמר Fleet Engine Basics.

בניגוד למפתחות API, אסימוני JWT הם לטווח קצר ומגבילים פעולות רק שהתפקיד מורשה לבצע. מידע נוסף על אסימוני JWT זמין במאמר JSON Web? אסימונים בוויקיפדיה. למידע נוסף על תפקידי הגישה, ראו שירות התפקידים בחשבון במדריך הזה.

רכיבי JWT

אסימוני JWT מכילים כותרת וקטע הצהרה על זכויות יוצרים. קטע הכותרת מכיל כמו המפתח הפרטי שהתקבל מחשבונות השירות, של אלגוריתם ההצפנה. הקטע של התלונה מכיל מידע כמו ה-JWT ליצור זמן, חיים, את השירותים ש-JWT מצהיר עליהם גישה ומידע אחר על הרשאה להיקף הגישה; עבור למשל, מזהה הרכב למשלוח.

הטבלה הבאה מספקת פרטים תיאוריים על שדות JWT באופן כללי, וכן מידע ספציפי על המקומות שבהם אפשר למצוא את הערכים של בפרויקט שלך ב-Fleet Engine Cloud.

שדות של כותרות JWT

שדה

תיאור

אלג

האלגוריתם שבו צריך להשתמש. 'RS256'.

הקלדה

סוג האסימון. JWT.

ילד

מזהה המפתח הפרטי של חשבון השירות שלכם. אפשר למצוא את הערך הזה השדה private_key_id בקובץ JSON של חשבון השירות. יצרן להשתמש במפתח מחשבון שירות עם רמת ההרשאות המתאימה.

שדות של הצהרות JWT

שדה

תיאור

iss

כתובת האימייל של חשבון השירות שלכם, שנמצאת בקטע השדה client_email בקובץ JSON של חשבון השירות.

sub

כתובת האימייל של חשבון השירות שלכם, שנמצאת בקטע השדה client_email בקובץ JSON של חשבון השירות.

אוד

SERVICE_NAME של חשבון השירות שלך, במקרה הזה, https://fleetengine.googleapis.com/

iat

חותמת הזמן של מועד היצירה של ה-JWT, צוינה בשניות חלפו מאז 00:00:00 UTC, January 1, 1970. ממתינים 10 דקות להטיה. אם חותמת הזמן רחוקה מדי בעבר או בעתיד, המאפיין עלול לדווח על שגיאה.

ניסיון

חותמת הזמן של מועד התפוגה של ה-JWT, מצוינת בשניות שחלפו מאז 00:00:00 UTC, January 1, 1970. הבקשה תיכשל אם חותמת הזמן בעוד יותר משעה.

הרשאה

בהתאם לתרחיש לדוגמה, הוא עשוי להכיל deliveryvehicleid, trackingid, taskid או taskids.

הצהרות JWT של Fleet Engine

Fleet Engine משתמש בתלונות פרטיות. השימוש בתלונות פרטיות מבטיח שרק לקוחות מורשים יכולים לגשת לנתונים שלהם.

לדוגמה, כאשר השרת שלך מנפיק אסימון אינטרנט מסוג JSON לנייד של נהג המכשיר, הוא צריך להכיל את ההצהרה vehicleid או את תלונה deliveryvehicleid עם הערך של מזהה הרכב של הנהג. לאחר מכן: בהתאם לתפקיד הנהג, אסימוני JWT מאפשרים גישה רק לרכב הספציפי מזהה ולא מזהה רכב שרירותי אחר.

Fleet Engine משתמש בהצהרות הפרטיות הבאות:

נסיעות על פי דרישה

  • vehicleid
    • ה-SDK של הנהג תמיד משתמש בהצהרה הזו, גם במהלך נסיעה או לרכב. הקצה העורפי של Fleet Engine מבטיח שהרכב המשויך לנסיעה המבוקשת לפני ביצוע השינוי.
    • כספק שירות, עליך להשתמש בהצהרה הזו עם הסימן "*" כדי להתאים הכול כלי רכב. לתשומת ליבכם: ה-JWT יכול לכסות גם את הרכב וגם את הנסיעה. פעולות נוספות, גם אם אין בהן צורך, שעשויות לפשט את תהליך החתימה על שם ה-JWT יישום בפועל.
  • tripid
    • ערכת ה-SDK לצרכן תמיד משתמשת בהצהרה הזו.
    • כספק שירות אתה משתמש בהצהרה הזו עם סימן "*" כדי להתאים הכול נסיעות. שימו לב ש-JWT יכול לטפל גם בתפעול רכב וגם בנסיעות, גם אם לא נדרש, דבר שעשוי לפשט את חתימת האסימון יישום בפועל.

משימות מתוזמנות

  • deliveryvehicleid

    יש להשתמש באפשרות הזו בהתקשרות לכל רכב לאחר המסירה ממשקי API.

  • taskid

    שימוש בזמן קריאה לממשקי API לכל משימה.

  • taskids

    שימוש בזמן ביצוע שיחה BatchCreateTasksAPI ההצהרה חייבת להיות בצורת מערך, המערך צריך להכיל את כל מזהי המשימות שדרושים כדי להשלים את בקשה. אין לכלול delivervehicleid, trackingid או taskid תלונות.

  • trackingid

    לשימוש במהלך קריאה GetTaskTrackingInfoAPI התלונה חייבת להתאים למעקב המזהה בבקשה. אין לכלול delivervehicleid, taskid או taskids תלונות.

המאמרים הבאים