مشاركة عبر


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

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

هام

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

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

إشعار

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

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

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

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

التزويد التلقائي لأجهزة انتقال البيانات من الخادم باستخدام خدمة توفير جهاز Azure IoT Hub (DPS) غير مدعوم.

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

قم بإنهاء الخطوات في تكوين جهاز IoT Edge ليكون بمثابة بوابة شفافة.

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

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

تسجيل الجهاز باستخدام IoT Hub

اختر الطريقة التي تريد أن يصادق بها جهاز انتقال البيانات من الخادم باستخدام IoT Hub:

  • مصادقة المفتاح المتماثل: ينشئ IoT Hub مفتاحا تضعه على جهاز انتقال البيانات من الخادم. عند مصادقة الجهاز، يتحقق IoT Hub من تطابق المفتاحين. لا تحتاج إلى إنشاء شهادات إضافية لاستخدام مصادقة المفتاح المتماثل.

    هذه الطريقة أسرع للبدء إذا كنت تختبر البوابات في سيناريو تطوير أو اختبار.

  • مصادقة X.509 الموقعة ذاتيا: تسمى أحيانا مصادقة بصمة الإبهام، لأنك تشارك بصمة الإبهام من شهادة X.509 للجهاز مع IoT Hub.

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

  • مصادقة X.509 CA الموقعة: قم بتحميل شهادة المرجع المصدق الجذر إلى IoT Hub. عندما تقدم الأجهزة شهادة X.509 الخاصة بها للمصادقة، يتحقق IoT Hub من أنها تنتمي إلى سلسلة ثقة موقعة من قبل نفس شهادة المرجع المصدق الجذر.

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

مصادقة مفتاح المحتوى

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

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

عند إنشاءك لمعرف الجهاز الجديد، قم بتوفير المعلومات التالية:

  • قم بإنشاء معرف لجهازك.

  • اختر مفتاح المحتوي كنوع المصادقة.

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

    لقطة شاشة لكيفية إنشاء معرف جهاز مع تخويل مفتاح متماثل في مدخل Microsoft Azure.

    إشعار

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

    يمكنك تكوين مركز IoT Edge للعودة إلى السلوك السابق عن طريق تعيين AuthenticationMode متغير البيئة إلى القيمة CloudAndScope.

يمكنك أيضا استخدام ملحق IoT ل Azure CLI لإكمال نفس العملية. يستخدم المثال التالي الأمر az iot hub device-identity لإنشاء جهاز IoT جديد مع مصادقة مفتاح متماثل وتعيين جهاز أصل:

az iot hub device-identity create -n {iothub name} -d {new device ID} --device-scope {deviceScope of parent device}

تلميح

يمكنك سرد خصائص الجهاز بما في ذلك نطاق الجهاز باستخدام az iot hub device-identity list --hub-name {iothub name}.

بعد ذلك، قم باسترداد سلسلة الاتصال وتعديلها بحيث يعرف جهازك الاتصال عبر بوابته.

مصادقة X.509 الموقعة ذاتيا

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

  1. باستخدام شهادة CA الخاصة بك، قم بإنشاء شهادتي جهاز (أساسي وثانوي) لجهاز انتقال البيانات من الخادم.

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

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

  2. قم باسترداد بصمة الإصبع SHA-1 (تسمى بصمة الإبهام في واجهة موزع IoT ) من كل شهادة، وهي سلسلة أحرف سداسية عشرية من 40 حرفا. استخدم الأمر openssl التالي لعرض الشهادة والعثور على بصمة الإصبع:

    • نوافذ:

      openssl x509 -in <path to primary device certificate>.cert.pem -text -fingerprint
      
    • لينكس:

      openssl x509 -in <path to primary device certificate>.cert.pem -text -fingerprint | sed 's/[:]//g'
      

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

  3. انتقل إلى IoT Hub في مدخل Microsoft Azure وأنشئ هوية جهاز IoT جديدة بالقيم التالية:

    • أدخل معرف الجهاز الذي يتطابق مع اسم موضوع شهادات جهازك.
    • حدد X.509 Self-Signed كنوع المصادقة.
    • ألصق السلاسل السداسية عشرية التي قمت بنسخها من الشهادات الأساسية والثانوية للجهاز الخاص بك.
    • حدد تعيين جهاز أصل واختر جهاز بوابة IoT Edge الذي يتصل به جهاز انتقال البيانات من الخادم هذا. يمكنك دائما تغيير الأصل لاحقا.

    لقطة شاشة توضح كيفية إنشاء معرف جهاز بتخويل موقع ذاتيا X.509 في مدخل Microsoft Azure.

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

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

  5. اعتمادا على لغتك المفضلة، راجع عينات حول كيفية الإشارة إلى شهادات X.509 في تطبيقات IoT:

يمكنك أيضا استخدام ملحق IoT ل Azure CLI لإكمال نفس عملية إنشاء الجهاز. يستخدم المثال التالي الأمر az iot hub device-identity لإنشاء جهاز IoT جديد مع مصادقة موقعة ذاتيا X.509 وتعيين جهاز أصل:

az iot hub device-identity create -n {iothub name} -d {device ID} --device-scope {deviceScope of gateway device} --am x509_thumbprint --ptp {primary thumbprint} --stp {secondary thumbprint}

تلميح

يمكنك سرد خصائص الجهاز بما في ذلك نطاق الجهاز باستخدام az iot hub device-identity list --hub-name {iothub name}.

بعد ذلك، قم باسترداد سلسلة الاتصال وتعديلها بحيث يعرف جهازك الاتصال عبر بوابته.

مصادقة X.509 CA الموقعة

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

للحصول على مقدمة حول استخدام شهادات المرجع المصدق X.509 للمصادقة في IoT Hub، راجع فوائد مصادقة شهادة المرجع المصدق X.509.

لإعداد مصادقة X.509 CA الموقعة لجهاز انتقال البيانات من الخادم، اتبع الخطوات التالية:

  1. احصل على شهادة المرجع المصدق X.509 التي يمكنك استخدامها لتوقيع شهادات لجهاز انتقال البيانات من الخادم. للحصول على مثال حول كيفية إعداد المصادقة الموقعة على المرجع المصدق X.509، راجع سيناريو المثال التالي.

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

  3. سجل شهادة المرجع المصدق X.509 في مركز IoT. لمعرفة المزيد، اتبع الخطوات في تسجيل شهادة المرجع المصدق التابعة إلى مركز IoT الخاص بك.

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

  5. سجل الجهاز باستخدام IoT Hub لاستخدام المصادقة الموقعة X.509 CA. لمزيد من المعلومات، راجع إنشاء هويات الجهاز وإدارتها.

  6. اعتمادا على لغتك المفضلة، راجع عينات حول كيفية الإشارة إلى شهادات X.509 في تطبيقات IoT:

استرداد سلسلة الاتصال وتعديلها

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

تحتاج سلسلة الاتصال لجهاز انتقال البيانات من الخادم إلى الأجزاء التالية:

  • مركز IoT الذي يتصل به الجهاز: Hostname=<Iot-Hub-Name>.azure-devices.net
  • معرف الجهاز المسجل مع الموزع: DeviceID=<Device-ID>
  • أسلوب المصادقة، إما مفتاح متماثل أو شهادة X.509.
    • لمصادقة المفتاح المتماثل، أدخل إما المفتاح الأساسي أو الثانوي: SharedAccessKey=<Key>
    • لمصادقة شهادة X.509، قم بتوفير علامة: x509=true
  • جهاز البوابة الذي يتصل الجهاز من خلاله. أدخل قيمة اسم المضيف من ملف تكوين جهاز بوابة IoT Edge: GatewayHostName=<Gateway-Hostname>

تبدو سلسلة الاتصال الكاملة مثل هذا المثال:

HostName=myiothub.azure-devices.net;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz;GatewayHostName=myGatewayDevice

أو لمصادقة شهادة X.509:

HostName=myiothub.azure-devices.net;DeviceId=myDownstreamDevice;x509=true;GatewayHostName=myGatewayDevice

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

HostName=myGatewayDevice;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz

استخدم سلسلة الاتصال المعدلة هذه في المقالة التالية في سلسلة البوابة الشفافة.

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

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

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