مصادقة جهاز انتقال البيانات من الخادم إلى Azure IoT Hub
ينطبق على: IoT Edge 1.5 IoT Edge 1.4
هام
IoT Edge 1.5 LTS وIoT Edge 1.4 LTS هي إصدارات مدعومة. IoT Edge 1.4 LTS هو نهاية العمر الافتراضي في 12 نوفمبر 2024. إذا كنت تستخدم إصدارا سابقا، فشاهد تحديث IoT Edge.
في سيناريو البوابة الشفافة، تحتاج أجهزة انتقال البيانات من الخادم (تسمى أحيانا الأجهزة التابعة) إلى هويات في IoT Hub مثل أي جهاز آخر. تتناول هذه المقالة خيارات مصادقة جهاز انتقال البيانات من الخادم إلى IoT Hub، ثم توضح كيفية إعلان اتصال البوابة.
إشعار
يصدر جهاز انتقال البيانات من الخادم البيانات مباشرة إلى الإنترنت أو إلى أجهزة البوابة (تمكين IoT Edge أو عدم تمكينه). يمكن أن يكون الجهاز التابع جهاز انتقال البيانات من الخادم أو جهاز بوابة في طوبولوجيا متداخلة.
هناك ثلاث خطوات عامة لإعداد اتصال بوابة شفافة ناجح. تتناول هذه المقالة الخطوة الثانية:
- قم بتكوين جهاز البوابة كخادم بحيث يمكن لأجهزة انتقال البيانات من الخادم الاتصال به بشكل آمن. قم بإعداد البوابة لتلقي الرسائل من أجهزة انتقال البيانات من الخادم وتوجيهها إلى الوجهة المناسبة. للحصول على هذه الخطوات، راجع تكوين جهاز IoT Edge للعمل كبوابة شفافة.
- إنشاء هوية جهاز لجهاز انتقال البيانات من الخادم بحيث يمكنه المصادقة باستخدام IoT Hub. تكوين جهاز انتقال البيانات من الخادم لإرسال رسائل عبر جهاز البوابة.
- قم بتوصيل جهاز انتقال البيانات من الخادم بجهاز البوابة وابدأ في إرسال الرسائل. للحصول على هذه الخطوات، راجع توصيل جهاز انتقال البيانات من الخادم إلى بوابة Azure IoT Edge.
يمكن مصادقة أجهزة انتقال البيانات من الخادم باستخدام موزع IoT باستخدام إحدى الطرق الثلاث: مفاتيح متماثلة (يشار إليها أحيانا بمفاتيح الاختصار المشتركة)، أو X.509 شهادات موقعة ذاتيا، أو شهادة X.509 أو شهادات موقعة من المنشئ. تشبه خطوات المصادقة الخطوات المستخدمة لإعداد أي جهاز غير IoT-Edge مع موزع IoT، مع اختلافات صغيرة لإعلان علاقة البوابة.
التزويد التلقائي لأجهزة انتقال البيانات من الخادم باستخدام Azure IoT Hub Device Provisioning Service (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 الخاص بك باستخدام إما مدخل Microsoft Azure أو Azure CLI أو ملحق IoT للتعليمات البرمجية لـ Visual Studio. تذكر أنه يجب تحديد أجهزة انتقال البيانات من الخادم في IoT Hub كأجهزة IoT عادية، وليس أجهزة IoT Edge.
عند إنشاءك لمعرف الجهاز الجديد، قم بتوفير المعلومات التالية:
قم بإنشاء معرف لجهازك.
اختر مفتاح المحتوي كنوع المصادقة.
حدد تعيين جهاز أصل وحدد جهاز بوابة IoT Edge الذي سيتصل به جهاز انتقال البيانات من الخادم هذا. يمكنك دائما تغيير الأصل لاحقا.
إشعار
تعيين الجهاز الأصل المستخدم ليكون خطوة اختيارية لأجهزة انتقال البيانات من الخادم التي تستخدم مصادقة المفتاح المتماثل. ومع ذلك، بدءا من الإصدار 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 للمصادقة.
باستخدام شهادة CA الخاصة بك، قم بإنشاء شهادتي جهاز (أساسي وثانوي) لجهاز انتقال البيانات من الخادم.
إذا لم يكن لديك مرجع مصدق لإنشاء شهادات X.509، يمكنك استخدام البرامج النصية لشهادة العرض التوضيحي ل IoT Edge لإنشاء شهادات جهاز انتقال البيانات من الخادم. اتبع الخطوات لإنشاء شهادات موقعة ذاتيا. استخدم نفس شهادة المرجع المصدق الجذر التي أنشأت الشهادات لجهاز البوابة.
إذا قمت بإنشاء الشهادات الخاصة بك، فتأكد من تعيين اسم موضوع شهادة الجهاز إلى معرف الجهاز الذي تستخدمه عند تسجيل جهاز IoT في Azure IoT Hub. هذا الإعداد مطلوب للمصادقة.
قم باسترداد بصمة الإصبع SHA-1 (تسمى بصمة الإبهام في واجهة موزع IoT ) من كل شهادة، وهي سلسلة أحرف سداسية عشرية من 40 حرفا. استخدم الأمر openssl التالي لعرض الشهادة والعثور على بصمة الإصبع:
Windows:
openssl x509 -in <path to primary device certificate>.cert.pem -text -fingerprint
Linux:
openssl x509 -in <path to primary device certificate>.cert.pem -text -fingerprint | sed 's/[:]//g'
قم بتشغيل هذا الأمر مرتين، مرة للشهادة الأساسية ومرة للشهادة الثانوية. يمكنك توفير بصمات الأصابع لكلتا الشهادتين عند تسجيل جهاز IoT جديد باستخدام شهادات X.509 الموقعة ذاتيا.
انتقل إلى موزع IoT في مدخل Microsoft Azure، ثم أنشئ معرّف جهاز IoT جديد بالقيم التالية:
- أدخل معرف الجهاز الذي يتطابق مع اسم موضوع شهادات جهازك.
- حدد X.509 Self-Signed كنوع المصادقة.
- ألصق السلاسل السداسية عشرية التي قمت بنسخها من الشهادات الأساسية والثانوية للجهاز الخاص بك.
- حدد تعيين جهاز أصل واختر جهاز بوابة IoT Edge الذي سيتصل به جهاز انتقال البيانات من الخادم هذا. يمكنك دائما تغيير الأصل لاحقا.
انسخ كل من شهادات الجهاز الأساسي والثانوي ومفاتيحها إلى أي موقع على جهاز انتقال البيانات من الخادم. انقل أيضا نسخة من شهادة المرجع المصدق الجذر المشتركة التي أنشأت كل من شهادة جهاز البوابة وشهادات جهاز انتقال البيانات من الخادم.
ستشير إلى ملفات الشهادات هذه في أي تطبيقات على جهاز انتقال البيانات من الخادم التي تتصل ب IoT Hub. يمكنك استخدام خدمة مثل Azure Key Vault أو وظيفة مثل بروتوكول النسخ الآمن لنقل ملفات الشهادة.
اعتمادا على لغتك المفضلة، راجع عينات حول كيفية الإشارة إلى شهادات X.509 في تطبيقات IoT:
- C#: إعداد أمان X.509 في مركز Azure IoT
- ج: iotedge_downstream_device_sample.c
- Node.js: simple_sample_device_x509.js
- Java: SendEventX509.java
- Python: send_message_x509.py
يمكنك أيضا استخدام ملحق 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 التي تستخدمها لتوقيع الشهادات لجهاز انتقال البيانات من الخادم. أي جهاز يستخدم شهادة التي تم إصدارها بواسطة شهادة المرجع المصدق الجذري أو أي من الشهادات الوسيطة الخاصة به سيتم السماح له بالمصادقة.
يستند هذا القسم إلى سلسلة البرامج التعليمية لشهادة IoT Hub X.509. راجع فهم تشفير المفتاح العام والبنية الأساسية للمفتاح العام X.509 لإدخال هذه السلسلة.
باستخدام شهادة CA الخاصة بك، قم بإنشاء شهادتي جهاز (أساسي وثانوي) لجهاز انتقال البيانات من الخادم.
إذا لم يكن لديك مرجع مصدق لإنشاء شهادات X.509، يمكنك استخدام البرامج النصية لشهادة العرض التوضيحي ل IoT Edge لإنشاء شهادات جهاز انتقال البيانات من الخادم. اتبع الخطوات لإنشاء شهادات موقعة من CA. استخدم نفس شهادة المرجع المصدق الجذر التي أنشأت الشهادات لجهاز البوابة.
اتبع الإرشادات الموجودة في قسم إثبات إثبات الحيازة في إعداد أمان X.509 في مركز Azure IoT. في هذا المقطع، بإمكانك تنفيذ الخطوات التالية:
قم بتحميل شهادة المرجع المصدق الجذري. إذا كنت تستخدم شهادات العرض التوضيحي، فإن المرجع المصدق الجذر هو <path>/certs/azure-iot-test-only.root.ca.cert.pem.
تأكد من أنك تملك شهادة المرجع المصدق الجذر هذه.
اتبع الإرشادات الموجودة في قسم إنشاء جهاز في مركز IoT في إعداد أمان X.509 في مركز Azure IoT. في هذا المقطع، بإمكانك تنفيذ الخطوات التالية:
قم بإضافة جهاز جديد. أدخل اسما صغيرا لمعرف الجهاز، واختر نوع المصادقة X.509 CA الموقع.
قم بتعيين جهاز أصل. حدد تعيين جهاز أصل واختر جهاز بوابة IoT Edge الذي سيوفر الاتصال ب IoT Hub.
قم بإنشاء سلسلة شهادات لجهاز انتقال البيانات من الخادم الخاص بك. استخدم شهادة المرجع المصدق الجذري نفسها التي قمت بتحميلها إلى مركز IoT لإنشاء هذه السلسلة. استخدم معرف الجهاز المكتوب بحروف صغيرة نفسه الذي أعطيته لمعرف جهازك في المدخل.
انسخ شهادة الجهاز والمفاتيح إلى أي موقع على جهاز انتقال البيانات من الخادم. انقل أيضا نسخة من شهادة المرجع المصدق الجذر المشتركة التي أنشأت كل من شهادة جهاز البوابة وشهادات جهاز انتقال البيانات من الخادم.
ستشير إلى هذه الملفات في أي تطبيقات على جهاز انتقال البيانات من الخادم يتصل ب IoT Hub. يمكنك استخدام خدمة مثل Azure Key Vault أو وظيفة مثل بروتوكول النسخ الآمن لنقل ملفات الشهادة.
اعتمادا على لغتك المفضلة، راجع عينات حول كيفية الإشارة إلى شهادات X.509 في تطبيقات IoT:
- C#: إعداد أمان X.509 في مركز Azure IoT
- ج: iotedge_downstream_device_sample.c
- Node.js: simple_sample_device_x509.js
- Java: SendEventX509.java
- Python: send_message_x509.py
يمكنك أيضا استخدام ملحق IoT ل Azure CLI لإكمال نفس عملية إنشاء الجهاز. يستخدم المثال التالي الأمر az iot hub device-identity لإنشاء جهاز IoT جديد مع مصادقة موقعة X.509 CA وتعيين جهاز أصل:
az iot hub device-identity create -n {iothub name} -d {device ID} --device-scope {deviceScope of gateway device} --am x509_ca
تلميح
يمكنك سرد خصائص الجهاز بما في ذلك نطاق الجهاز باستخدام az iot hub device-identity list --hub-name {iothub name}
.
بعد ذلك، قم باسترداد سلسلة الاتصال وتعديلها بحيث يعرف جهازك الاتصال عبر بوابته.
استرداد سلسلة الاتصال وتعديلها
بعد إنشاء معرّف جهاز IoT في المدخل، يمكنك استرداد مفاتيحه الأساسية أو الثانوية. يجب تضمين أحد هذه المفاتيح في سلسلة الاتصال التي تستخدمها التطبيقات للاتصال ب IoT Hub. لمصادقة مفتاح المحتوى، يوفر IoT Hub سلسلة الاتصال التي تم تشكيلها بالكامل في تفاصيل الجهاز لراحتك. تحتاج إلى إضافة معلومات إضافية حول جهاز البوابة إلى سلسلة الاتصال.
تحتاج سلاسل الاتصال لأجهزة انتقال البيانات من الخادم إلى المكونات التالية:
- موزع IoT التي يتصل بها الجهاز:
Hostname={iothub 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
أو:
HostName=myiothub.azure-devices.net;DeviceId=myDownstreamDevice;x509=true;GatewayHostName=myGatewayDevice
بفضل العلاقة الأصل/التابع، يمكنك تبسيط سلسلة الاتصال عن طريق استدعاء البوابة مباشرة كمضيف الاتصال. على سبيل المثال:
HostName=myGatewayDevice;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz
ستستخدم هذه سلسلة الاتصال المعدلة في المقالة التالية من سلسلة البوابة الشفافة.
الخطوات التالية
عند هذه النقطة، لديك جهاز IoT Edge مسجل مع مركز IoT الخاص بك وتم تكوينه كبوابة شفافة. لديك أيضا جهاز انتقال البيانات من الخادم مسجل مع مركز IoT الخاص بك ويشير إلى جهاز البوابة الخاص به.
بعد ذلك، تحتاج إلى تكوين جهاز انتقال البيانات من الخادم للثقة في جهاز البوابة والاتصال به بشكل آمن. تابع إلى المقالة التالية في سلسلة البوابة الشفافة، قم بتوصيل جهاز انتقال البيانات من الخادم إلى بوابة Azure IoT Edge.