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.
שדה |
תיאור |
---|---|
אלג |
האלגוריתם שבו צריך להשתמש. 'RS256'. |
הקלדה |
סוג האסימון. JWT. |
ילד |
מזהה המפתח הפרטי של חשבון השירות שלכם. אפשר למצוא את הערך הזה
השדה |
שדה |
תיאור |
---|---|
iss |
כתובת האימייל של חשבון השירות שלכם, שנמצאת בקטע
השדה |
sub |
כתובת האימייל של חשבון השירות שלכם, שנמצאת בקטע
השדה |
אוד |
|
iat |
חותמת הזמן של מועד היצירה של ה-JWT, צוינה בשניות
חלפו מאז 00:00:00 |
ניסיון |
חותמת הזמן של מועד התפוגה של ה-JWT, מצוינת בשניות שחלפו
מאז |
הרשאה |
בהתאם לתרחיש לדוגמה, הוא עשוי להכיל אם מציינים מזהי משימות, היקף ההרשאה חייב להיות מערך מהצורות הבאות: "taskids": ["task_id_one","task_id_two"]
או "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
תלונות.
המאמרים הבאים
- כדאי לקרוא על תכנון האבטחה ב-Fleet Engine כדי להבין את כל הפרטים. תהליך האימות.
- בקישור הבא מוסבר איך מנפיקים אסימוני אינטרנט JSON מהשרת שלכם.