رمز JSON المميّز للويب (JWT) هو معيار ويب مفتوح يُستخدَم لمصادقة ومنح الإذن بعمليات تبادل المعلومات بين العميل والخادم. عندما يسجِّل مستخدم التطبيق الدخول لأول مرة باستخدام بيانات اعتماد الدور المناسبة، ينشئ الخادم ويعرض رمز JWT مشفَّرًا وموقَّعًا رقميًا لاستخدامه مع الطلبات اللاحقة. تُجري هذه العملية مصادقة المستخدم وتفوّضه للوصول إلى المسارات والخدمات والموارد استنادًا إلى دور حسابه.
بالنسبة إلى طلبات بيانات واجهة برمجة التطبيقات من البيئات ذات مستوى الثقة المنخفض، تتطلّب أداة Fleet Engine استخدام رموز JSON المميّزة للويب (JWT) التي تم توقيعها من خلال حساب خدمة مناسب. وتشمل البيئات ذات الثقة المنخفضة الهواتف الذكية والمتصفّحات. يبدأ JWT على خادمك، وهو بيئة موثوق بها بالكامل. يتم توقيع ملف JWT وتشفيره ونقله إلى العميل للتفاعلات التالية مع الخادم إلى أن تنتهي صلاحيته أو يصبح غير صالح.
يجب أن تتم مصادقة الخلفية وتفويضها ضد Fleet Engine باستخدام آليات بيانات الاعتماد التلقائية للتطبيق العادية. احرص على استخدام ملفّات JWT التي تم توقيعها من خلال حساب خدمة مناسب. للاطّلاع على قائمة بأدوار حسابات الخدمة، راجِع أدوار حساب خدمة Fleet Engine في أساسيات Fleet Engine.
في المقابل، يجب أن تتم المصادقة والتفويض في الخلفية باستخدام بيانات الاعتماد التلقائية للتطبيق المعمول بها في Fleet Engine.
على عكس مفاتيح واجهة برمجة التطبيقات، تكون تصاريح JWT صالحة لفترة قصيرة وتقتصر على العمليات التي يُسمح للدور بتنفيذها فقط. لمزيد من المعلومات عن رموز JWT، يُرجى الاطّلاع على مقالة رموز JSON المميّزة للويب على Wikipedia. لمعرفة التفاصيل عن أدوار الوصول، يُرجى الاطّلاع على أدوار حسابات الخدمة في هذا الدليل.
عناصر رمز JWT
تحتوي الرموز المميّزة JWT على قسمَي العنوان والمطالبة. يحتوي قسم العنوان على معلومات، مثل المفتاح الخاص الذي تم الحصول عليه من حسابات الخدمة، و خوارزمية التشفير. يحتوي قسم المطالبة على معلومات مثل وقت إنشاء ملف JWT ومدة صلاحيته والخدمات التي يطالب ملف JWT بالوصول إليها ومعلومات التفويض الأخرى لتحديد نطاق الوصول، على سبيل المثال، رقم تعريف مركبة التسليم.
يقدّم الجدول التالي تفاصيل وصفية عن حقول JWT بشكل عام، بالإضافة إلى معلومات محدّدة عن الأماكن التي يمكنك العثور فيها على قيم هذه الحقول في مشروع Fleet Engine Cloud.
الحقل |
الوصف |
---|---|
alg |
الخوارزمية المُراد استخدامها `RS256`. |
typ |
نوع الرمز المميّز `JWT` |
طفلة |
معرّف المفتاح الخاص لحساب الخدمة. يمكنك العثور على هذه القيمة في حقل
|
الحقل |
الوصف |
---|---|
iss |
عنوان البريد الإلكتروني لحساب الخدمة، والذي يمكن العثور عليه في الحقل
|
sub |
عنوان البريد الإلكتروني لحساب الخدمة، والذي يمكن العثور عليه في الحقل
|
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
استخدِم هذا المفتاح عند الاتصال بواجهات برمجة التطبيقات الخاصة بكل مركبة تسليم.
-
taskid
استخدِم هذا الإجراء عند طلب بيانات من واجهات برمجة التطبيقات لكل مهمة.
-
taskids
استخدِم هذا الرمز عند الاتصال بالرقم التالي:
BatchCreateTasksAPI
. يجب أن تكون هذه المطالبة في شكل صفيف، ويجب أن يحتوي الصفيف على جميع أرقام تعريف المهام اللازمة لإكمال الطلب. لا تُدرِج مطالباتdelivervehicleid
أوtrackingid
أوtaskid
. -
trackingid
استخدِم هذا الرمز عند الاتصال بالرقم
GetTaskTrackingInfoAPI
. يجب أن تتطابق المطالبة مع رقم تعريف التتبُّع في الطلب. لا تُدرِج مطالباتdelivervehicleid
أوtaskid
أوtaskids
.
الخطوات التالية
- يمكنك الاطّلاع على تصميم أمان Fleet Engine لفهم عملية تكامل مصادقة العميل بالكامل.
- تعرَّف على كيفية إصدار رموز الويب المميّزة بتنسيق JSON من خادمك.