تكوين جهاز 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 Hub. تستخدم هذه المقالة مصطلح بوابة IoT Edge للإشارة إلى جهاز 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 نفسه.

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

إشعار

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

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

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

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

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

إعداد شهادة المرجع المصدق للجهاز

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

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

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

تلميح

يتم أيضا شرح عملية تثبيت شهادة المرجع المصدق الجذر وشهادة المرجع المصدق للجهاز على جهاز 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، افتح ملف التكوين: /etc/aziot/config.toml. إذا كنت تستخدم IoT Edge ل Linux على Windows، يتعين عليك الاتصال بجهاز EFLOW الظاهري باستخدام Connect-EflowVm PowerShell cmdlet.

    تلميح

    إذا لم يكن ملف التكوين موجودا على جهازك حتى الآن، فاستخدم /etc/aziot/config.toml.edge.template كقالب لإنشاء واحد.

  2. ابحث عن المعلمة trust_bundle_cert . قم بإلغاء التعليق على هذا السطر وتوفير URI للملف إلى ملف شهادة المرجع المصدق الجذر على جهازك.

  3. ابحث عن [edge_ca] قسم من الملف. قم بإلغاء التعليق على الأسطر الثلاثة في هذا القسم وقم بتوفير معرفات URI للملف إلى الشهادة والملفات الرئيسية كقيم للخصائص التالية:

    • الشهادة: شهادة المرجع المصدق للجهاز
    • pk: مفتاح خاص ل CA للجهاز
  4. احفظ الملف وأغلقه.

  5. تطبيق التغييرات.

    sudo iotedge config apply
    

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

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

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

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

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

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

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

  1. في مدخل Microsoft Azure توجه إلى مركز IoT.

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

  3. حدد Set modules.

  4. في صفحة الوحدات النمطية ، يمكنك إضافة أي وحدات نمطية تريد نشرها إلى جهاز البوابة. لأغراض هذه المقالة، نركز على تكوين ونشر الوحدة النمطية 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 لمعرفة الخطوات التالية في إعداد سيناريو البوابة الشفافة.