تكوين جهاز IoT Edge للعمل كبوابة شفافة

ينطبق على:نعم أيقونة IoT Edge 1.1

هام

كان تاريخ انتهاء دعم IoT Edge 1.1 هو 13 ديسمبر 2022. تحقق من دورة حياة المنتج من Microsoft للحصول على معلومات حول كيفية دعم هذا المنتج أو الخدمة أو التقنية أو API. لمزيد من المعلومات حول التحديث إلى أحدث إصدار من IoT Edge، راجع تحديث IoT Edge.

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

ملاحظة

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

لا يمكن لأجهزة انتقال البيانات من الخادم استخدام تحميل الملفات.

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

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

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

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

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

ملاحظة

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

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

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

جهاز Linux أو Windows مثبت عليه IoT Edge.

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

إعداد شهادة CA للجهاز

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

إعداد شهادة البوابة

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

تلميح

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

جهز الملفات التالية:

  • الشهادة الخاصة بالمرجع المصدق الجذر
  • شهادة المرجع المصدق الخاصة بالجهاز
  • مفتاح خاص ل CA للجهاز

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

إنشاء شهادات تجريبية

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

  1. للبدء، قم بإعداد البرامج النصية لإنشاء الشهادات على جهازك.
  2. إنشاء شهادة المرجع المصدق الجذر. في نهاية هذه الإرشادات، سيكون لديك ملف <path>/certs/azure-iot-test-only.root.ca.cert.pemشهادة المرجع المصدق الجذر .
  3. إنشاء شهادات CA لجهاز IoT Edge. في نهاية هذه الإرشادات، سيكون لديك شهادة <path>/certs/iot-edge-device-ca-<cert name>-full-chain.cert.pem CA للجهاز مفتاحها <path>/private/iot-edge-device-ca-<cert name>.key.pemالخاص .

نسخ الشهادات إلى الجهاز

  1. تحقق من أن الشهادة تفي بمتطلبات التنسيق.

  2. إذا قمت بإنشاء الشهادات على جهاز مختلف، فانسخها إلى جهاز IoT Edge. يمكنك استخدام محرك أقراص USB أو خدمة مثل Azure Key Vault أو مع وظيفة مثل نسخة ملف آمنة.

  3. انقل الملفات إلى الدليل المفضل للشهادات والمفاتيح. استخدم /var/aziot/certs للشهادات والمفاتيح /var/aziot/secrets .

  4. إنشاء الشهادات ودلائل المفاتيح وتعيين الأذونات. يجب تخزين الشهادات والمفاتيح في الدليل المفضل /var/aziot . استخدم /var/aziot/certs للشهادات والمفاتيح /var/aziot/secrets .

    # If the certificate and keys directories don't exist, create, set ownership, and set permissions
    sudo mkdir -p /var/aziot/certs
    sudo chown aziotcs:aziotcs /var/aziot/certs
    sudo chmod 755 /var/aziot/certs
    
    sudo mkdir -p /var/aziot/secrets
    sudo chown aziotks:aziotks /var/aziot/secrets
    sudo chmod 700 /var/aziot/secrets
    
  5. تغيير ملكية الشهادات والمفاتيح وأذوناتها.

    # Give aziotcs ownership to certificates
    # Read and write for aziotcs, read-only for others
    sudo chown -R aziotcs:aziotcs /var/aziot/certs
    sudo find /var/aziot/certs -type f -name "*.*" -exec chmod 644 {} \;
    
    # Give aziotks ownership to private keys
    # Read and write for aziotks, no permission for others
    sudo chown -R aziotks:aziotks /var/aziot/secrets
    sudo find /var/aziot/secrets -type f -name "*.*" -exec chmod 600 {} \;
    

تكوين الشهادات على الجهاز

  1. على جهاز IoT Edge، افتح ملف تكوين البرنامج الخفي للأمان.

    • Windows: C:\ProgramData\iotedge\config.yaml
    • Linux: /etc/iotedge/config.yaml
    • IoT Edge لنظام التشغيل Linux على Windows: /etc/iotedge/config.yaml

    تلميح

    إذا كنت تستخدم IoT Edge لنظام التشغيل Linux على Windows (EFLOW)، يتعين عليك الاتصال بالجهاز الظاهري EFLOW وتغيير الملف داخل الجهاز الظاهري. يمكنك الاتصال بجهاز EFLOW الظاهري باستخدام PowerShell cmdlet Connect-EflowVm ثم استخدام المحرر المفضل لديك.

  2. ابحث عن قسم إعدادات الشهادة في الملف. قم بإلغاء التعليق على الأسطر الأربعة بدءا من الشهادات: وقم بتوفير معرفات URL للملف إلى ملفاتك الثلاثة كقيم للخصائص التالية:

    • device_ca_cert: شهادة CA للجهاز
    • device_ca_pk: مفتاح خاص ل CA للجهاز
    • trusted_ca_certs: شهادة المرجع المصدق الجذر

    تأكد من عدم وجود مسافة بيضاء سابقة على الشهادات: السطر، ومن أن الأسطر الأخرى مسافة بادئة بمسافة اثنين.

  3. حفظ وإغلاق الملف.

  4. أعد تشغيل IoT Edge.

    • Windows: Restart-Service iotedge
    • Linux: sudo systemctl restart iotedge
    • IoT Edge لنظام التشغيل Linux على Windows: sudo systemctl restart iotedge

نشر edgeHub وتوجيه الرسائل

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

  • يتم نشر وحدة مركز IoT Edge على الجهاز.

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

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

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

لنشر وحدة مركز IoT Edge وتكوينها مع المسارات للتعامل مع الرسائل الواردة من أجهزة انتقال البيانات من الخادم، اتبع الخطوات التالية:

  1. في مدخل Azure، انتقل إلى مركز IoT.

  2. انتقل إلى الأجهزة ضمن قائمة إدارة الأجهزة وحدد جهاز IoT Edge الذي تريد استخدامه كبوابة.

  3. حدد Set modules.

  4. في صفحة Modules ، يمكنك إضافة أي وحدات نمطية تريد نشرها إلى جهاز البوابة. لأغراض هذه المقالة، نركز على تكوين ونشر وحدة edgeHub، والتي لا تحتاج إلى تعيينها بشكل صريح في هذه الصفحة.

  5. حدد Next: Routes.

  6. في صفحة المسارات ، تأكد من وجود مسار للتعامل مع الرسائل الواردة من أجهزة انتقال البيانات من الخادم. على سبيل المثال:

    • مسار يرسل جميع الرسائل، سواء من وحدة نمطية أو من جهاز انتقال البيانات من الخادم، إلى IoT Hub:

      • الاسم: allMessagesToHub
      • القيمة: FROM /messages/* INTO $upstream
    • مسار يرسل جميع الرسائل من جميع أجهزة انتقال البيانات من الخادم إلى IoT Hub:

      • الاسم: allDownstreamToHub
      • القيمة: FROM /messages/* WHERE NOT IS_DEFINED ($connectionModuleId) INTO $upstream

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

      لمزيد من المعلومات حول توجيه الرسائل، راجع توزيع الوحدات النمطية وإنشاء المسارات.

  7. بمجرد إنشاء المسار أو المسارات، حدد Review + create.

  8. في صفحة مراجعة+ إنشاء حدد إنشاء.

فتح المنافذ على جهاز البوابة

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

لكي يعمل سيناريو البوابة، يجب أن يكون أحد بروتوكولات IoT Edge Hub المدعومة على الأقل مفتوحا لنسبة استخدام الشبكة الواردة من أجهزة انتقال البيانات من الخادم. البروتوكولات المدعومة هي MQTT وAMQP وHTTPS وMQTT عبر WebSockets وAMQP عبر WebSockets.

المنفذ البروتوكول
8883 MQTT
5671 AMQP
443 HTTPS
MQTT+WS
AMQP+WS

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

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