אסימון רשת מבוסס JSON (JWT) הוא תקן אינטרנט פתוח המשמש לאימות ומתן הרשאה לחילופי מידע בין לקוח לשרת. כשאפליקציה המשתמש נכנס קודם עם פרטי הכניסה של התפקיד המתאים, השרת יוצר ומחזיר JWT מקודד בחתימה דיגיטלית לשימוש בבקשות הבאות. התהליך הזה מאמת את המשתמש וגם מרשה לו לגשת למסלולים, ושירותים שונים על סמך התפקיד שלהם בחשבון.
לקריאות ל-methods של API מסביבות עם רמת אמינות נמוכה, Fleet Engine מחייב שימוש באסימוני JWT (JSON Web Tokens) שחתומים על ידי חשבון שירות מתאים. סביבות עם רמת אמון נמוכה כוללות סמארטפונים ודפדפנים. JWT נוצר בשרת שלכם, שהוא סביבה מהימנה לגמרי. ה-JWT נחתם, מוצפן ומוענק ללקוח לצורך אינטראקציות עתידיות עם השרת, עד שתוקף האסימון יפוג או שהוא כבר לא יהיה תקף. עבור לרשימת תפקידי חשבון השירות, ראו התפקידים בחשבון שירות ב-Fleet Engine במאמר Fleet Engine Basics.
לעומת זאת, הקצה העורפי צריך לבצע אימות ואישור מול Fleet Engine באמצעות Application Default Credentials על מנגנוני תשומת לב.
בניגוד למפתחות API, אסימוני JWT הם לטווח קצר ומגבילים פעולות רק שהתפקיד מורשה לבצע. מידע נוסף על אסימוני JWT זמין במאמר JSON Web? אסימונים בוויקיפדיה. למידע נוסף על תפקידי הגישה, ראו שירות התפקידים בחשבון במדריך הזה.
רכיבי JWT
אסימוני JWT מכילים כותרת וקטע הצהרה על זכויות יוצרים. קטע הכותרת מכיל מידע כמו המפתח הפרטי שהתקבל מחשבונות השירות ואלגוריתם ההצפנה. הקטע של התלונה מכיל מידע כמו ה-JWT ליצור זמן, חיים, את השירותים ש-JWT מצהיר עליהם גישה ומידע אחר על הרשאה להיקף הגישה; עבור כמו מזהה הרכב למשלוח.
בטבלה הבאה מפורטים פרטים תיאוריים על שדות JWT באופן כללי, וגם מידע ספציפי על המקומות שבהם אפשר למצוא את הערכים של השדות האלה בפרויקט Fleet Engine Cloud.
שדה |
תיאור |
---|---|
אלג |
האלגוריתם שבו צריך להשתמש. 'RS256'. |
הקלדה |
סוג האסימון. JWT. |
ילד |
מזהה המפתח הפרטי של חשבון השירות שלכם. אפשר למצוא את הערך הזה
השדה |
שדה |
תיאור |
---|---|
iss |
כתובת האימייל של חשבון השירות שלכם, שנמצאת בקטע
השדה |
sub |
כתובת האימייל של חשבון השירות שלכם, שנמצאת בקטע
השדה |
אוד |
|
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
:- ה-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 מהשרת שלכם.