الاتصال جهاز انتقال البيانات من الخادم إلى بوابة Azure IoT Edge

ينطبق على:علامة اختيار IoT Edge 1.5 IoT Edge 1.5 علامة اختيار IoT Edge 1.4 IoT Edge 1.4

هام

IoT Edge 1.5 LTS وIoT Edge 1.4 LTS هي إصدارات مدعومة. IoT Edge 1.4 LTS هو نهاية العمر الافتراضي في 12 نوفمبر 2024. إذا كنت تستخدم إصدارا سابقا، فشاهد تحديث IoT Edge.

هنا، تجد إرشادات لإنشاء اتصال موثوق به بين أجهزة انتقال البيانات من الخادم وبوابات IoT Edge الشفافة. في سيناريو بوابة شفافة، يمكن لجهاز واحد أو أكثر تمرير رسائلهم عبر جهاز بوابة واحد يحافظ على الاتصال بموزع IoT. هنا، تشير مصطلحات البوابة وبوابة IoT Edge إلى جهاز IoT Edge تم تكوينه كبوابة شفافة.

إشعار

يصدر جهاز انتقال البيانات من الخادم البيانات مباشرة إلى الإنترنت أو إلى أجهزة البوابة (تمكين IoT Edge أو عدم تمكينه). يمكن أن يكون الجهاز التابع جهاز انتقال البيانات من الخادم أو جهاز بوابة في طوبولوجيا متداخلة.

هناك ثلاث خطوات عامة لإعداد اتصال بوابة شفافة ناجح. توضح هذه المقالة الخطوة الثالثة.

  1. قم بتكوين جهاز البوابة كخادم بحيث يمكن لأجهزة انتقال البيانات من الخادم الاتصال به بشكل آمن. قم بإعداد البوابة لتلقي الرسائل من أجهزة انتقال البيانات من الخادم وتوجيهها إلى الوجهة المناسبة. للحصول على هذه الخطوات، راجع تكوين جهاز IoT Edge للعمل كبوابة شفافة.

  2. إنشاء هوية جهاز لجهاز انتقال البيانات من الخادم بحيث يمكنه المصادقة باستخدام IoT Hub. تكوين جهاز انتقال البيانات من الخادم لإرسال رسائل عبر جهاز البوابة. للحصول على هذه الخطوات، راجع مصادقة جهاز انتقال البيانات من الخادم إلى Azure IoT Hub.

  3. الاتصال جهاز انتقال البيانات من الخادم إلى جهاز البوابة وابدأ في إرسال الرسائل.

تساعدك هذه المقالة على فهم مكونات اتصال جهاز انتقال البيانات من الخادم، مثل:

  • أمان طبقة النقل (TLS) وأساسيات الشهادة.
  • مكتبات TLS التي تعمل عبر أنظمة تشغيل مختلفة تتعامل مع الشهادات بشكل مختلف.

ثم يمكنك التنقل عبر نماذج Azure IoT، بلغتك المفضلة، للحصول على جهازك لإرسال رسائل إلى البوابة.

المتطلبات الأساسية

احصل على ما يلي لإعداد جهاز انتقال البيانات من الخادم:

  • جهاز انتقال البيانات من الخادم.

    يمكن أن يكون هذا الجهاز أي تطبيق أو نظام أساسي له هوية تم إنشاؤها باستخدام خدمة سحابة Azure IoT Hub. في كثير من الحالات، تستخدم هذه التطبيقات SDK لجهاز Azure IoT. يمكن أن يكون جهاز انتقال البيانات من الخادم أيضا تطبيقا يعمل على جهاز بوابة IoT Edge نفسه.

    لاحقا، توفر هذه المقالة خطوات توصيل جهاز IoT كجهاز انتقال البيانات من الخادم. إذا كنت تفضل استخدام جهاز IoT Edge كجهاز انتقال البيانات من الخادم، فشاهد الاتصال أجهزة Azure IoT Edge معا لإنشاء تسلسل هرمي (حافة متداخلة).

  • ملف شهادة المرجع المصدق الجذر.

    تم استخدام هذا الملف لإنشاء شهادة CA للجهاز في تكوين جهاز IoT Edge للعمل كبوابة شفافة، والتي تتوفر على جهاز انتقال البيانات من الخادم.

    يستخدم جهاز انتقال البيانات من الخادم الخاص بك هذه الشهادة للتحقق من هوية جهاز البوابة. تتحقق هذه الشهادة الموثوق بها من صحة اتصالات أمان طبقة النقل (TLS) بجهاز البوابة. راجع تفاصيل الاستخدام في قسم توفير شهادة المرجع المصدق الجذر.

  • سلسلة الاتصال معدل يشير إلى جهاز البوابة.

    يتم شرح كيفية تعديل سلسلة الاتصال في مصادقة جهاز انتقال البيانات من الخادم إلى Azure IoT Hub.

إشعار

يمكن لأجهزة IoT المسجلة في IoT Hub استخدام توائم الوحدة النمطية لعزل العمليات أو الأجهزة أو الوظائف المختلفة على جهاز واحد. تدعم بوابات IoT Edge اتصالات وحدة انتقال البيانات من الخادم، باستخدام مصادقة المفتاح المتماثل ولكن ليس مصادقة شهادة X.509.

فهم TLS وأساسيات الشهادة

التحدي المتمثل في توصيل أجهزة انتقال البيانات من الخادم بأمان إلى IoT Edge هو تماما مثل أي اتصال عميل/خادم آمن آخر يحدث عبر الإنترنت. يتصل العميل والخادم بأمان عبر الإنترنت باستخدام أمان طبقة النقل (TLS). تم إنشاء TLS باستخدام بنيات البنية الأساسية للمفتاح العام القياسية (PKI) تسمى الشهادات. بروتوكول أمان طبقة النقل هو مواصفات تشارك إلى حد ما ويتناول مجموعة واسعة من المواضيع المتعلقة بتأمين نقطتي النهاية. يلخص هذا القسم المفاهيم المتعلقة لتوصيل أجهزتك بأمان إلى بوابة IoT Edge.

عندما يتصل عميل بخادم، يقدم الخادم سلسلة من الشهادات، تسمى سلسلة شهادات الخادم. تتألف سلسلة الشهادات عادة من شهادة المرجع المصدق الجذر (CA) وشهادة CA وسيطة واحدة أو أكثر وأخيرا شهادة الخادم نفسه. يكتسب الخادم ثقة العميل بعد تحقق الأخير من سلسلة شهادات الخادم بأكملها. يسمى التحقق من صحة العميل لسلسلة شهادات الخادم التحقق من صحة سلسلة الخادم. يتحدى العميل الخادم لإثبات حيازة المفتاح الخاص المرتبط بشهادة الخادم في عملية تسمى إثبات الحيازة. يطلق على الجمع بين التحقق من صحة سلسلة الخادم وإثبات الحيازة مصادقة الخادم. للتحقق من صحة سلسلة شهادات الخادم، يحتاج العميل نسخة من شهادة المرجع المصدق الجذري الذي تم استخدامه لإنشاء (أو إصدار) شهادة الخادم. عادة عند الاتصال بمواقع الويب، يأتي المتصفح مكونا مسبقا بشهادات CA شائعة الاستخدام بحيث يكون لدى العميل عملية سلسة.

عندما يتصل جهاز بموزع Azure IoT، يكون الجهاز هو العميل وخدمة سحابة موزع IoT هي الخادم. يتم دعم خدمة سحابة IoT Hub بواسطة شهادة المرجع المصدق الجذر تسمى Baltimore CyberTrust Root، وهي متاحة للجمهور وتستخدم على نطاق واسع. منذ تم بالفعل تثبيت شهادة المرجع المصدق لموزع IoT على معظم الأجهزة، تقوم العديد من تطبيقات بروتوكول أمان طبقة النقل مثل (OpenSSL، Schannel، LibreSSL) باستخدامه تلقائيا أثناء التحقق من صحة شهادة الخادم. ومع ذلك، قد يكون لدى الجهاز الذي يتصل بنجاح ب IoT Hub مشكلات في محاولة الاتصال ببوابة IoT Edge.

عندما يتصل جهاز ببوابة IoT Edge، يصبح جهاز انتقال البيانات من الخادم هو العميل وجهاز البوابة هو الخادم. يسمح لك Azure IoT Edge بإنشاء سلاسل شهادات البوابة كيفما يرونها مناسبة. يمكنك اختيار استخدام شهادة CA عامة، مثل Baltimore، أو استخدام شهادة CA الجذر الموقعة ذاتيا (أو الداخلية). في الغالب ما يكون لشهادات المرجع المصدق العامة تكلفة مقترنة بها، لذلك يتم استخدامها عادة في سيناريوهات الإنتاج. ويفضل استخدام شهادات المرجع المصدق الموقعة ذاتيا للتطوير والاختبار. الشهادات التجريبية هي شهادات المرجع المصدق الجذر الموقعة ذاتيا.

عند استخدام شهادة المرجع المصدق الجذر الموقع ذاتيا لبوابة IoT Edge، يجب تثبيتها على كافة أجهزة انتقال البيانات من الخادم التي تحاول الاتصال بالبوابة أو توفيرها لها.

لقطة شاشة لإعداد شهادة البوابة.

لمعرفة المزيد حول شهادات IoT Edge وبعض الآثار المترتبة على الإنتاج، راجع تفاصيل استخدام شهادة IoT Edge.

توفير شهادة المرجع المصدق الجذري

للتحقق من شهادات جهاز البوابة، يحتاج جهاز انتقال البيانات من الخادم إلى نسخته الخاصة من شهادة المرجع المصدق الجذري. إذا استخدمت البرامج النصية المتوفرة في مستودع IoT Edge git لإنشاء شهادات اختبار، فستسمى شهادة المرجع المصدق الجذر azure-iot-test-only.root.ca.cert.pem.

إذا لم تكن قد قمت بذلك بالفعل، فانقل ملف الشهادة هذا إلى أي دليل على جهاز انتقال البيانات من الخادم. يمكنك نقل الملف إما عن طريق تثبيت شهادة المرجع المصدق في مخزن شهادات نظام التشغيل أو (للغات معينة) عن طريق الرجوع إلى الشهادة داخل التطبيقات باستخدام Azure IoT SDKs.

يمكنك استخدام خدمة مثل Azure Key Vault أو وظيفة مثل بروتوكول النسخ الآمن لنقل ملف الشهادة.

عملية تثبيت الشهادات في نظام التشغيل

بمجرد أن تكون شهادة المرجع المصدق الجذر على جهاز انتقال البيانات من الخادم، تأكد من أن التطبيقات التي تتصل بالبوابة يمكنها الوصول إلى الشهادة.

تثبيت شهادة المرجع المصدق الجذري في مخزن شهادات نظام التشغيل يسمح بشكل عام لمعظم التطبيقات باستخدام شهادة المرجع المصدق الجذر. هناك بعض الاستثناءات، مثل تطبيقات NodeJS التي لا تستخدم مخزن شهادات نظام التشغيل ولكن بدلا من ذلك تستخدم مخزن الشهادات الداخلية لوقت تشغيل Node. إذا لم تتمكن من تثبيت الشهادة على مستوى نظام التشغيل، فانتقل إلى استخدام الشهادات مع Azure IoT SDKs.

تثبيت شهادة المرجع المصدق الجذر على Ubuntu أو Windows.

تعتبر الأوامر التالية مثال على كيفية تثبيت شهادة CA على مضيف أوبونتو. يفترض هذا المثال أنك تستخدم شهادة azure-iot-test-only.root.ca.cert.pem من مقالات المتطلبات الأساسية، وأنك قمت بنسخ الشهادة إلى موقع على جهاز انتقال البيانات من الخادم.

sudo cp <file path>/azure-iot-test-only.root.ca.cert.pem /usr/local/share/ca-certificates/azure-iot-test-only.root.ca.cert.pem.crt
sudo update-ca-certificates

يجب عليك أن تشاهد رسالة تقول: «تحديث الشهادات في /etc/ssl/certs... تمت إضافة 1، تمت إزالة 0، اكتملت».

استخدام الشهادات مع Azure IoT SDKs

تتصل Azure IoT SDKs بجهاز IoT Edge باستخدام نماذج تطبيقات بسيطة. هدف العينات هو توصيل عميل الجهاز وإرسال رسائل القياس عن بعد إلى البوابة، ثم إغلاق الاتصال والخروج.

قبل استخدام العينات على مستوى التطبيق، احصل على العناصر التالية:

  • تم تعديل سلسلة الاتصال IoT Hub، من جهاز انتقال البيانات من الخادم، للإشارة إلى جهاز البوابة.

  • أي شهادات مطلوبة لمصادقة جهاز انتقال البيانات من الخادم إلى IoT Hub. لمزيد من المعلومات، راجع مصادقة جهاز انتقال البيانات من الخادم إلى Azure IoT Hub.

  • المسار الكامل إلى شهادة المرجع المصدق الجذر التي نسختها وحفظتها في مكان ما على جهاز انتقال البيانات من الخادم.

    على سبيل المثال: <file path>/azure-iot-test-only.root.ca.cert.pem.

أنت الآن جاهز لاستخدام الشهادات مع عينة باللغة التي تختارها:

يوفر هذا القسم نموذج تطبيق لتوصيل عميل جهاز Azure IoT NodeJS ببوابة IoT Edge. بالنسبة لتطبيقات NodeJS، يجب تثبيت شهادة المرجع المصدق الجذر على مستوى التطبيق كما هو موضح هنا. لا تستخدم تطبيقات NodeJS مخزن شهادات النظام.

  1. احصل على عينة edge_downstream_device.js من SDK لجهاز Azure IoT لنماذج Node.js repo.
  2. تأكد من أن لديك جميع المتطلبات الأساسية لتشغيل العينة عن طريق مراجعة ملف readme.md .
  3. في ملف edge_downstream_device.js، قم بتحديث connectionString والمتغيرات edge_ca_cert_path .
  4. راجع وثائق SDK للحصول على إرشادات حول كيفية تشغيل العينة على جهازك.

لفهم العينة التي تقوم بتشغيلها، فإن القصاصة البرمجية التالية هي كيفية قراءة SDK للعميل لملف الشهادة واستخدامه لإنشاء اتصال TLS آمن:

// Provide the Azure IoT device client via setOptions with the X509
// Edge root CA certificate that was used to setup the Edge runtime
var options = {
    ca : fs.readFileSync(edge_ca_cert_path, 'utf-8'),
};

اختبار اتصال البوابة

استخدم هذا الأمر النموذجي على جهاز انتقال البيانات من الخادم لاختبار إمكانية الاتصال بجهاز البوابة:

openssl s_client -connect mygateway.contoso.com:8883 -CAfile <CERTDIR>/certs/azure-iot-test-only.root.ca.cert.pem -showcerts

يختبر هذا الأمر الاتصال عبر MQTTS (المنفذ 8883). إذا كنت تستخدم بروتوكولا مختلفا، فاضبط الأمر حسب الضرورة ل AMQPS (5671) أو HTTPS (443).

قد يكون إخراج هذا الأمر طويلا، بما في ذلك معلومات حول جميع الشهادات في السلسلة. إذا كان الاتصال ناجحا، فسترى سطرا مثل Verification: OK أو Verify return code: 0 (ok).

لقطة شاشة لكيفية التحقق من اتصال البوابة.

استكشاف أخطاء اتصال البوابة وإصلاحها

إذا كان اتصال جهاز انتقال البيانات من الخادم بجهاز البوابة الخاص به غير مستقر، ففكر في هذه الأسئلة للحل.

  • هل اسم مضيف البوابة في سلسلة الاتصال هو نفس قيمة اسم المضيف في ملف تكوين IoT Edge على جهاز البوابة؟
  • هل اسم مضيف البوابة قابل للحل إلى عنوان IP؟ يمكنك حل الاتصالات المتقطعة إما باستخدام DNS أو عن طريق إضافة إدخال ملف مضيف على جهاز انتقال البيانات من الخادم.
  • هل منافذ الاتصال مفتوحة في جدار الحماية الخاص بك؟ يجب أن يكون الاتصال استنادا إلى البروتوكول المستخدم (MQTTS:8883/AMQPS:5671/HTTPS:433) ممكنا بين جهاز انتقال البيانات من الخادم وIoT Edge الشفاف.

الخطوات التالية

تعرف على كيف يمكن ل IoT Edge توسيع قدرات عدم الاتصال إلى أجهزة انتقال البيانات من الخادم.