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

ينطبق على:yes icon IoT Edge 1.1 إصدارات أخرى:IoT Edge 1.2

ينطبق على:yes icon IoT Edge 1.2 إصدارات أخرى:IoT Edge 1.1

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

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

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

ملاحظة

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

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

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

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

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

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

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

Gateway certificate setup

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

تلميح

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

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

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

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

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

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

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

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

    • Windows: C:\ProgramData\iotedge\config.yaml
    • لينكس: /etc/iotedge/config.yaml
  2. ابحث عن قسم إعدادات الشهادة في الملف. قم بإلغاء التعليق على الأسطر الأربعة التي تبدأ بالشهادات : وقم بتوفير عناوين URI للملفات الثلاثة كقيم للخصائص التالية:

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

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

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

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

    • Windows: Restart-Service iotedge
    • لينكس: sudo systemctl restart iotedge
  1. على جهاز IoT Edge، افتح ملف التكوين: /etc/aziot/config.toml

    تلميح

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

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

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

    • شهادة: شهادة CA الجهاز
    • 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. في مدخل Azure، انتقل إلى مركز IoT.

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

  3. حدد Set modules.

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

  5. حدد التالي: المسارات.

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

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

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

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

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

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

  7. بمجرد إنشاء مسارك أو مساراتك، حدد مراجعة + إنشاء.

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

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

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

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

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

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

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