التشغيل السريع - توفير جهاز محاكاة لشهادة X.509
في هذا التشغيل السريع، يمكنك إنشاء جهاز محاكاة على جهاز Windows. تم تكوين جهاز المحاكاة لاستخدام شهادة شهادة X.509 للمصادقة. بعد تكوين جهازك، يمكنك توفيره إلى مركز IoT باستخدام خدمة توفير جهاز Azure IoT Hub.
إذا لم تكن على دراية بعملية التوفير، فراجع نظرة عامة على التوفير. التأكد أيضاً من إكمال الخطوات في Set up IoT Hub Device Provisioning Service with the Azure portal قبل المتابعة.
يوضح هذا التشغيل السريع حلاً لمحطة عمل تستند إلى Windows. ومع ذلك، يمكنك أيضاً تنفيذ الإجراءات على Linux. للحصول على مثال Linux، راجع البرنامج التعليمي: توفير زمن الانتقال الجغرافي.
المتطلبات الأساسية
في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
إكمال الخطوات في إعداد خدمة تزويد الأجهزة بمركز IoT باستخدام مدخل Microsoft Azure.
المتطلبات الأساسية التالية هي لبيئة تطوير Windows. بالنسبة إلى Linux أو macOS، راجع القسم المناسب في إعداد بيئة التطوير في وثائق SDK.
تثبيت Visual Studio 2022 مع تمكين حمل العمل "تطوير سطح المكتب مع C++". يتم أيضا دعم Visual Studio 2015 وVisual Studio 2017 وVisual Studio 19. بالنسبة إلى Linux أو macOS، راجع القسم المناسب في إعداد بيئة التطوير في وثائق SDK.
تثبيت أحدث نظام بناء CMake. تأكد من التحقق من الخيار الذي يضيف CMake القابل للتنفيذ إلى المسار الخاص بك.
هام
تأكد من تثبيت المتطلبات الأساسية لبرنامج Visual Studio (حمل عمل Visual Studio و"تطوير سطح المكتب باستخدام C ++") على جهازك، قبل بدء تثبيت
CMake
. بمجرد أن يتم وضع المتطلبات الأساسية، ويتم التحقق من التنزيل، قم بتثبيت نظام بنية CMake. انتبه أيضًا إلى أن الإصدارات الأقدم من نظام بنية CMake تفشل في إنشاء ملف الحل المستخدم في هذه المقالة. تأكد من استخدام أحدث إصدار من CMake.
المتطلبات الأساسية التالية هي لبيئة تطوير Windows. بالنسبة إلى Linux أو macOS، راجع القسم المناسب في إعداد بيئة التطوير في وثائق SDK.
قم بتثبيت .NET SDK 6.0 أو أحدث على جهازك المستند إلى Windows. يمكنك استخدام الأمر التالي للتحقق من الإصدار الخاص بك.
dotnet --info
المتطلبات الأساسية التالية هي لبيئة تطوير Windows. بالنسبة إلى Linux أو macOS، راجع القسم المناسب في إعداد بيئة التطوير في وثائق SDK.
- قم بتثبيت Node.js v4.0 أو إصدار أحدث على جهازك.
المتطلبات الأساسية التالية هي لبيئة تطوير Windows.
- Python 3.6 أو إصدار أحدث على جهازك.
المتطلبات الأساسية التالية هي لبيئة تطوير Windows. بالنسبة إلى Linux أو macOS، راجع القسم المناسب في إعداد بيئة التطوير في وثائق SDK.
تثبيت Java SE Development Kit 8 أو إصدار أحدث على جهازك.
تنزيل وتثبيت Maven.
تثبيت آخر إصدار من Git. تأكد من إضافة Git إلى متغيرات البيئة التي يمكن الوصول إليها من نافذة الأمر. راجع أدوات عميل Software Freedom Conservancy's Git للحصول على أحدث إصدار من أدوات
git
للتثبيت، والتي تتضمن Git Bash، وهو تطبيق سطر الأوامر الذي يمكن استخدامه للتفاعل مع مستودع Git المحلي خاصتك.تأكد من تثبيت OpenSSL على جهازك. على Windows، يتضمن تثبيت Git تثبيت OpenSSL. يمكنك الوصول إلى OpenSSL من موجه Git Bash. للتحقق من تثبيت OpenSSL، افتح موجه Git Bash وأدخل
openssl version
.إشعار
ما لم تكن على دراية ب OpenSSL وقمت بتثبيته بالفعل على جهاز Windows، نوصي باستخدام OpenSSL من موجه Git Bash. بدلا من ذلك، يمكنك اختيار تنزيل التعليمات البرمجية المصدر وإنشاء OpenSSL. لمعرفة المزيد، راجع صفحة تنزيلات OpenSSL. أو يمكنك تنزيل OpenSSL الذي تم إنشاؤه مسبقا من جهة خارجية. لمعرفة المزيد، راجع OpenSSL wiki. لا تقدم Microsoft أي ضمانات حول صلاحية الحزم التي تم تنزيلها من جهات خارجية. إذا اخترت إنشاء OpenSSL أو تنزيله، فتأكد من إمكانية الوصول إلى ثنائي OpenSSL في المسار الخاص بك ومن
OPENSSL_CNF
تعيين متغير البيئة إلى مسار ملف openssl.cnf .افتح كلا من موجه أوامر Windows ومطالبة Git Bash.
تفترض الخطوات الواردة في هذا التشغيل السريع أنك تستخدم جهاز Windows وتثبيت OpenSSL المثبت كجزء من Git. يمكنك استخدام موجه Git Bash لإصدار أوامر OpenSSL وموجه أوامر Windows لكل شيء آخر. إذا كنت تستخدم Linux، يمكنك إصدار جميع الأوامر من Bash shell.
جهز بيئة التطوير الخاصة بك
في هذا القسم، تقوم بإعداد بيئة تطوير تستخدم لإنشاء Azure IoT C SDK. يحاول نموذج التعليمات البرمجية توفير الجهاز أثناء تسلسل التمهيد للجهاز.
افتح مستعرض ويب، ثم انتقل إلى صفحة الإصدار من SDK Azure IoT C.
حدد علامة التبويب علامات في الجزء العلوي من الصفحة.
انسخ اسم العلامة لأحدث إصدار من Azure IoT C SDK.
في موجه أوامر Windows، قم بتشغيل الأوامر التالية لاستنساخ أحدث إصدار من Azure IoT Device SDK لمستودع C GitHub. استبدل
<release-tag>
بالعلامة التي نسختها في الخطوة السابقة، على سبيل المثال:lts_01_2023
.git clone -b <release-tag> https://github.com/Azure/azure-iot-sdk-c.git cd azure-iot-sdk-c git submodule update --init
توقع أن تستغرق هذه العملية عدة دقائق لإكمالها.
عند اكتمال العملية، قم بتشغيل الأوامر التالية من دليل
azure-iot-sdk-c
:mkdir cmake cd cmake
يستخدم نموذج التعليمات البرمجية شهادة X.509 لتوفير المصادقة عبر مصادقة X.509. قم بتشغيل الأمر التالي لإنشاء إصدار من SDK خاص بمنصة التطوير الخاصة بك، والتي تتضمن عميل توفير الجهاز. يتم إنشاء حل Visual Studio للجهاز المحاكي في
cmake
الدليل.عند تحديد المسار المستخدم مع
-Dhsm_custom_lib
في الأمر التالي، تأكد من استخدام المسار المطلق إلى المكتبة في الدليل الذيcmake
قمت بإنشائه مسبقا. يفترض المسار المعروض أنك قمت باستنساخ C SDK في الدليل الجذر لمحرك الأقراص C. إذا كنت تستخدم دليلا آخر، فاضبط المسار وفقا لذلك.
تلميح
إذا cmake
لم يعثر على المحول البرمجي C++، فقد تحصل على أخطاء في الإنشاء أثناء تشغيل الأمر أعلاه. إذا حدث ذلك، فحاول تشغيل الأمر في موجه الأوامر Visual Studio.
عند نجاح البناء، تبدو أسطر الإخراج القليلة الأخيرة مشابهة للإخراج التالي:
-- Building for: Visual Studio 17 2022 -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22000. -- The C compiler identification is MSVC 19.32.31329.0 -- The CXX compiler identification is MSVC 19.32.31329.0 ... -- Configuring done -- Generating done -- Build files have been written to: C:/azure-iot-sdk-c/cmake
في موجه أوامر Windows، استنسخ مستودع Azure IoT SDK ل C# GitHub باستخدام الأمر التالي:
git clone https://github.com/Azure/azure-iot-sdk-csharp.git
في موجه أوامر Windows، استنسخ Azure IoT SDK لمستودع GitHub Node.js باستخدام الأمر التالي:
git clone https://github.com/Azure/azure-iot-sdk-node.git
في موجه أوامر Windows، استنسخ Azure IoT Device SDK لمستودع Python GitHub باستخدام الأمر التالي:
git clone -b v2 https://github.com/Azure/azure-iot-sdk-python.git --recursive
إشعار
العينات المستخدمة في هذا البرنامج التعليمي موجودة في فرع v2 من مستودع azure-iot-sdk-python. يتوفر الإصدار 3 من Python SDK للاستخدام في الإصدار التجريبي.
في موجه أوامر Windows، استنسخ مستودع Azure IoT Samples ل Java GitHub باستخدام الأمر التالي:
git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
بادر بالانتقال إلى الدليل
azure-iot-sdk-java
الجذر وبناء المشروع لتنزيل جميع الحزم المطلوبة.cd azure-iot-sdk-java mvn install -DskipTests=true
إنشاء شهادة جهاز X.509 موقعة ذاتياً
في هذا القسم، يمكنك استخدام OpenSSL لإنشاء شهادة X.509 موقعة ذاتيا ومفتاح خاص. يتم تحميل هذه الشهادة إلى مثيل خدمة التزويد الخاص بك والتحقق منها بواسطة الخدمة.
تنبيه
استخدم الشهادات التي تم إنشاؤها باستخدام OpenSSL في هذا التشغيل السريع لاختبار التطوير فقط. لا تستخدم هذه الشهادات في الإنتاج. تنتهي صلاحية هذه الشهادات بعد 30 يوما وقد تحتوي على كلمات مرور ذات تعليمات برمجية مضمنة، مثل 1234. للتعرف على الحصول على الشهادات المناسبة للاستخدام في الإنتاج، راجع كيفية الحصول على شهادة المرجع المصدق X.509 في وثائق Azure IoT Hub.
نفذ الخطوات الواردة في هذا القسم في موجه Git Bash.
في موجه Git Bash، انتقل إلى دليل حيث تريد إنشاء شهاداتك.
شغّل الأمر التالي:
winpty openssl req -outform PEM -x509 -sha256 -newkey rsa:4096 -keyout device-key.pem -out device-cert.pem -days 30 -extensions usr_cert -addext extendedKeyUsage=clientAuth -subj "//CN=my-x509-device"
هام
لا تكون الشرطة الإضافية المائلة للأمام المكتوبة مع اسم الموضوع (
//CN=my-x509-device
) ضرورية سوى لتخطي السلسة التي تحتوي على Git في منصات نظام Windows.عند مطالبتك بإدخال عبارة المرور PEM:، استخدم عبارة المرور
1234
.عند مطالبتك بالتحقق - إدخال عبارة المرور PEM:، استخدم عبارة المرور
1234
مرةً أخرى.يجب الآن إنشاء ملف شهادة مفتاح عام (device-cert.pem) وملف المفتاح الخاص (device-key.pem) في الدليل حيث قمت بتشغيل
openssl
الأمر.تم تعيين اسم الموضوع الشائع لملف الشهادة (CN) إلى
my-x509-device
. بالنسبة للتسجيلات المستندة إلى X.509، يتم تعيين معرف التسجيل إلى الاسم الشائع. معرف التسجيل هو سلسلة غير حساسة لحالة الأحرف الأبجدية الرقمية بالإضافة إلى الأحرف الخاصة:'-'
،'.'
، ،'_'
.':'
يجب أن يكون الحرف الأخير أبجديا رقميا أو شرطة ('-'
). يجب أن يلتزم الاسم الشائع بهذا التنسيق. يدعم DPS معرفات التسجيل التي يصل طولها إلى 128 حرفا؛ ومع ذلك، فإن الحد الأقصى لطول الاسم الشائع للموضوع في شهادة X.509 هو 64 حرفا. لذلك، يقتصر معرف التسجيل على 64 حرفا عند استخدام شهادات X.509.ملف الشهادة مرمز ب Base 64. لعرض الاسم الشائع للموضوع (CN) والخصائص الأخرى لملف الشهادة، أدخل الأمر التالي:
Certificate: Data: Version: 3 (0x2) Serial Number: 77:3e:1d:e4:7e:c8:40:14:08:c6:09:75:50:9c:1a:35:6e:19:52:e2 Signature Algorithm: sha256WithRSAEncryption Issuer: CN = my-x509-device Validity Not Before: May 5 21:41:42 2022 GMT Not After : Jun 4 21:41:42 2022 GMT Subject: CN = my-x509-device Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (4096 bit) Modulus: 00:d2:94:37:d6:1b:f7:43:b4:21:c6:08:1a:d6:d7: e6:40:44:4e:4d:24:41:6c:3e:8c:b2:2c:b0:23:29: ... 23:6e:58:76:45:18:03:dc:2e:9d:3f:ac:a3:5c:1f: 9f:66:b0:05:d5:1c:fe:69:de:a9:09:13:28:c6:85: 0e:cd:53 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 63:C0:B5:93:BF:29:F8:57:F8:F9:26:44:70:6F:9B:A4:C7:E3:75:18 X509v3 Authority Key Identifier: keyid:63:C0:B5:93:BF:29:F8:57:F8:F9:26:44:70:6F:9B:A4:C7:E3:75:18 X509v3 Extended Key Usage: TLS Web Client Authentication Signature Algorithm: sha256WithRSAEncryption 82:8a:98:f8:47:00:85:be:21:15:64:b9:22:b0:13:cc:9e:9a: ed:f5:93:b9:4b:57:0f:79:85:9d:89:47:69:95:65:5e:b3:b1: ... cc:b2:20:9a:b7:f2:5e:6b:81:a1:04:93:e9:2b:92:62:e0:1c: ac:d2:49:b9:36:d2:b0:21
يتطلب نموذج التعليمات البرمجية مفتاحا خاصا غير مشفر. قم بتشغيل الأمر التالي لإنشاء مفتاح خاص غير مشفر:
عند مطالبتك بإدخال عبارة المرور ل device-key.pem:، استخدم نفس عبارة المرور التي قمت بها سابقا،
1234
.
اترك موجه Git Bash مفتوحا. تحتاج إليها لاحقا في هذا التشغيل السريع.
تم إعداد نموذج التعليمات البرمجية C# لاستخدام شهادات X.509 المخزنة في ملف PKCS#12 محمي بكلمة مرور (certificate.pfx
). لا تزال بحاجة إلى ملف شهادة المفتاح العام بتنسيق PEM (device-cert.pem
) الذي قمت بإنشائه للتو لإنشاء إدخال تسجيل فردي لاحقا في هذا التشغيل السريع.
لإنشاء الملف المنسق PKCS12 المتوقع من قبل العينة، أدخل الأمر التالي:
عند مطالبتك بإدخال عبارة المرور ل device-key.pem:، استخدم نفس عبارة المرور التي قمت بها سابقا،
1234
.عند مطالبتك بإدخال تصدير كلمة المرور: استخدم كلمة المرور
1234
.عند سؤالك التحقق - أدخل تصدير كلمة المرور:، استخدم كلمة المرور
1234
مرة أخرى.يجب الآن إنشاء ملف شهادة بتنسيق PKCS12 (certificate.pfx) في الدليل حيث قمت بتشغيل
openssl
الأمر.انسخ ملف الشهادة المنسق PKCS12 إلى دليل المشروع لعينة توفير جهاز X.509. المسار المحدد مرتبط بالموقع الذي قمت بتنزيل نموذج المستودع فيه.
cp certificate.pfx ./azure-iot-sdk-csharp/provisioning/device/samples/"Getting Started"/X509Sample
لا تحتاج إلى مطالبة Git Bash لبقية هذا التشغيل السريع. ومع ذلك، قد ترغب في إبقائها مفتوحة للتحقق من شهادتك إذا واجهت مشاكل في الخطوات اللاحقة.
يتطلب نموذج التعليمات البرمجية مفتاحا خاصا غير مشفر. قم بتشغيل الأمر التالي لإنشاء مفتاح خاص غير مشفر:
عند مطالبتك بإدخال عبارة المرور ل device-key.pem:، استخدم نفس عبارة المرور التي قمت بها سابقا،
1234
.انسخ شهادة الجهاز والمفتاح الخاص غير المشفرة إلى دليل المشروع لعينة توفير جهاز X.509. المسار المحدد مرتبط بالموقع الذي قمت بتنزيل SDK فيه.
cp device-cert.pem ./azure-iot-sdk-node/provisioning/device/samples cp unencrypted-device-key.pem ./azure-iot-sdk-node/provisioning/device/samples
لا تحتاج إلى مطالبة Git Bash لبقية هذا التشغيل السريع. ومع ذلك، قد ترغب في إبقائها مفتوحة للتحقق من شهادتك إذا واجهت مشاكل في الخطوات اللاحقة.
انسخ شهادة الجهاز والمفتاح الخاص إلى دليل المشروع لعينة توفير جهاز X.509. المسار المحدد مرتبط بالموقع الذي قمت بتنزيل SDK فيه.
cp device-cert.pem ./azure-iot-sdk-python/samples/async-hub-scenarios cp device-key.pem ./azure-iot-sdk-python/samples/async-hub-scenarios
لا تحتاج إلى مطالبة Git Bash لبقية هذا التشغيل السريع. ومع ذلك، قد ترغب في إبقائها مفتوحة للتحقق من شهادتك إذا واجهت مشاكل في الخطوات اللاحقة.
يتطلب نموذج التعليمات البرمجية ل Java مفتاحا خاصا غير مشفر. قم بتشغيل الأمر التالي لإنشاء مفتاح خاص غير مشفر:
عند مطالبتك بإدخال عبارة المرور ل device-key.pem:، استخدم نفس عبارة المرور التي قمت بها سابقا،
1234
.
اترك موجه Git Bash مفتوحا. تحتاج إليها لاحقا في هذا التشغيل السريع.
إنشاء تسجيل جهاز
تدعم خدمة توفير أجهزة Azure IoT نوعين من التسجيلات:
- مجموعات التسجيل: تُستخدم لتسجيل أجهزة متعددة ذات صلة.
- التسجيلات الفردية: تُستخدم لتسجيل جهاز واحد.
توضح هذه المقالة طريقة تسجيل فردي لجهاز واحد ليتم إمداده بمركز IoT.
سجل الدخول إلى مدخل Microsoft Azure وانتقل إلى مثيل خدمة تزويد الأجهزة.
حدد إدارة التسجيلات من قسم الإعدادات في قائمة التنقل.
حدد علامة التبويب التسجيلات الفردية، ثم حدد إضافة تسجيل فردي.
في صفحة Registration + provisioning لصفحة Add enrollment ، قم بتوفير المعلومات التالية لتكوين تفاصيل التسجيل:
الحقل الوصف شهاده حدد X.509 client certificates كآلية التصديق. إعدادات شهادة X.509 تحميل شهادة واحدة أو شهادتين سيتم استخدامها للتحقق من الجهاز لهذا التسجيل. حالة التوفير حدد المربع تمكين هذا التسجيل إذا كنت تريد أن يكون هذا التسجيل متوفرا لتوفير جهازه. قم بإلغاء تحديد هذا المربع إذا كنت تريد تعطيل التسجيل. يمكنك تغيير هذا الإعداد لاحقا. نهج إعادة التزويد اختر نهج إعادة توفير يعكس الطريقة التي تريد أن تتعامل بها DPS مع الأجهزة التي تطلب إعادة التزويد. لمزيد من المعلومات، راجع نهج إعادة التوفير. حدد Next: IoT hubs.
في علامة التبويب IoT hubs في صفحة Add enrollment ، قم بتوفير المعلومات التالية لتحديد مراكز IoT التي يمكن للتسجيل توفير الأجهزة إليها:
الحقل الوصف مراكز IoT المستهدفة حدد واحدا أو أكثر من مراكز IoT المرتبطة، أو أضف ارتباطا جديدا إلى مركز IoT. لمعرفة المزيد حول ربط مراكز IoT بمثيل DPS، راجع كيفية ربط مراكز IoT وإدارتها. نهج التخصيص إذا حددت أكثر من مركز IoT مرتبط واحد، فحدد الطريقة التي تريد بها تعيين الأجهزة إلى المراكز المختلفة. لمعرفة المزيد حول نهج التخصيص، راجع كيفية استخدام نهج التخصيص.
إذا حددت مركز IoT مرتبطا واحدا فقط، نوصي باستخدام نهج التوزيع المرجح بالتساوي.حدد Next: Device settings
في علامة التبويب Device settings في صفحة Add enrollment ، قم بتوفير المعلومات التالية لتحديد كيفية تكوين الأجهزة التي تم توفيرها حديثا:
الحقل الوصف معرف الجهاز قم بتوفير معرف الجهاز الذي سيتم تعيينه إلى الجهاز المقدم في IoT Hub. إذا لم توفر معرف جهاز، استخدام معرف التسجيل. IoT Edge تحقق من تمكين IoT Edge على الأجهزة المتوفرة إذا كان الجهاز المقدم سيشغل Azure IoT Edge. قم بإلغاء تحديد هذا المربع إذا كان هذا التسجيل لجهاز غير ممكن ل IoT Edge. علامات الجهاز استخدم مربع النص هذا لتوفير أي علامات تريد تطبيقها على توأم الجهاز للجهاز الذي تم توفيره. الخصائص المطلوبة استخدم مربع النص هذا لتوفير أي خصائص مطلوبة تريد تطبيقها على توأم الجهاز للجهاز الذي تم توفيره. لمزيد من المعلومات، راجع فهم واستخدام الجهاز المزدوج في IoT Hub.
حدّد Next: Review + create.
في علامة التبويب Review + create ، تحقق من جميع القيم الخاصة بك ثم حدد Create.
إعداد وتشغيل التعليمات البرمجية لتوفير الجهاز
في هذا القسم، يمكنك تحديث نموذج التعليمات البرمجية لإرسال تسلسل تمهيد الجهاز إلى مثيل خدمة توفير الجهاز. يؤدي تسلسل التمهيد هذا إلى التعرف على الجهاز وتعيينه إلى مركز IoT المرتبط بمثيل DPS.
في هذا القسم، يمكنك استخدام موجه Git Bash وVisual Studio IDE.
تكوين التعليمات البرمجية لإعدادات تشغيل الجهاز
في هذا المقطع، يمكنك تحديث نموذج التعليمات البرمجية مع معلومات مثيل خدمة تكوين إعدادات تشغيل الجهاز.
في مدخل Azure، حدد علامة تبويب Overview لخدمة تكوين إعدادات تشغيل الجهاز لديك.
انسخ قيمة ID Scope.
شغّل Visual Studio وافتح ملف الحل الجديد الذي تمَّ إنشاؤه في
cmake
الدليل الذي أنشأته في جذر مخزن azure-lot-sdk-c git. ملف الحل اسمهazure_iot_sdks.sln
.في مستكشف الحلول ل Visual Studio، انتقل إلى Provision_Samples > prov_dev_client_sample > Source Files وافتح prov_dev_client_sample.c.
ابحث عن الثابت
id_scope
، واستبدل القيمة بقيمة نطاق المعرف التي نسختها في الخطوة 2.static const char* id_scope = "0ne00000A0A";
ابحث عن تعريف الدالة
main()
في نفس الملف. تأكد منhsm_type
تعيين المتغير إلىSECURE_DEVICE_TYPE_X509
.SECURE_DEVICE_TYPE hsm_type; //hsm_type = SECURE_DEVICE_TYPE_TPM; hsm_type = SECURE_DEVICE_TYPE_X509; //hsm_type = SECURE_DEVICE_TYPE_SYMMETRIC_KEY;
احفظ تغييراتك.
انقر بزر الماوس الأيمن فوق مشروع prov_dev_client_sample وحدد تعيين كمشروع بدء التشغيل.
تكوين التعليمات البرمجية المتبقية لوحدة أمان الأجهزة المخصصة
تختلف تفاصيل التفاعل مع التخزين الفعلي المستند إلى الأجهزة الآمنة وفقًا للأجهزة. ونتيجة لذلك، يتم ترميز الشهادة والمفتاح الخاص المستخدم من قبل الجهاز المحاكي في هذا التشغيل السريع في التعليمات البرمجية كعب الروتين المخصص لوحدة أمان الأجهزة (HSM).
لتحديث رمز كعب HSM المخصص لمحاكاة هوية الجهاز بالمعرف my-x509-device
:
في مستكشف الحلول ل Visual Studio، انتقل إلى Provision_Samples > custom_hsm_example > Source Files وافتح custom_hsm_example.c.
قم بتحديث قيمة
COMMON_NAME
سلسلة ثابت السلسلة باستخدام الاسم الشائع الذي استخدمته عند إنشاء شهادة الجهاز،my-x509-device
.static const char* const COMMON_NAME = "my-x509-device";
قم بتحديث قيمة السلسلة للسلسلة
CERTIFICATE
الثابتة باستخدام شهادة الجهاز، device-cert.pem، التي قمت بإنشاءها مسبقا.يجب أن يتبع بناء جملة نص الشهادة في النموذج النمط التالي دون مسافات إضافية أو تحليل تم بواسطة Visual Studio.
static const char* const CERTIFICATE = "-----BEGIN CERTIFICATE-----\n" "MIIFOjCCAyKgAwIBAgIJAPzMa6s7mj7+MA0GCSqGSIb3DQEBCwUAMCoxKDAmBgNV\n" ... "MDMwWhcNMjAxMTIyMjEzMDMwWjAqMSgwJgYDVQQDDB9BenVyZSBJb1QgSHViIENB\n" "-----END CERTIFICATE-----";
يمكن أن يكون تحديث قيمة السلسلة هذه يدويا عرضة للخطأ. لإنشاء بناء الجملة المناسب، يمكنك نسخ الأمر التالي ولصقه في موجه Git Bash، واضغط على ENTER. ينشئ هذا الأمر بناء الجملة للقيمة
CERTIFICATE
الثابتة للسلسلة ويكتبها في الإخراج.sed -e 's/^/"/;$ !s/$/""\\n"/;$ s/$/"/' device-cert.pem
انسخ والصق نص شهادة الإخراج للقيمة الثابتة.
قم بتحديث قيمة
PRIVATE_KEY
سلسلة الثابت باستخدام المفتاح الخاص غير المشفرة لشهادة جهازك، unencrypted-device-key.pem.يجب أن يتبع بناء جملة نص المفتاح الخاص النمط التالي بدون مسافات إضافية أو تحليل تم بواسطة Visual Studio.
static const char* const PRIVATE_KEY = "-----BEGIN RSA PRIVATE KEY-----\n" "MIIJJwIBAAKCAgEAtjvKQjIhp0EE1PoADL1rfF/W6v4vlAzOSifKSQsaPeebqg8U\n" ... "X7fi9OZ26QpnkS5QjjPTYI/wwn0J9YAwNfKSlNeXTJDfJ+KpjXBcvaLxeBQbQhij\n" "-----END RSA PRIVATE KEY-----";
يمكن أن يكون تحديث قيمة السلسلة هذه يدويا عرضة للخطأ. لإنشاء بناء الجملة المناسب، يمكنك نسخ الأمر التالي ولصقه في موجه Git Bash، واضغط على ENTER. ينشئ هذا الأمر بناء الجملة للقيمة
PRIVATE_KEY
الثابتة للسلسلة ويكتبها في الإخراج.sed -e 's/^/"/;$ !s/$/""\\n"/;$ s/$/"/' unencrypted-device-key.pem
انسخ والصق نص المفتاح الخاص للإخراج للقيمة الثابتة.
احفظ تغييراتك.
انقر بزر الماوس الأيمن فوق مشروع custom_hsm_-_example وحدد إنشاء.
هام
يجب إنشاء مشروع custom_hsm_example قبل إنشاء بقية الحل في القسم التالي.
تشغيل تطبيق العرض التوضيحي
في القائمة Visual Studio حدد Debug> البدء من دون تصحيح الأخطاء لتشغيل الحل. إذا تمت مطالبتك بإعادة إنشاء المشروع، فحدد نعم لإعادة إنشاء المشروع قبل التشغيل.
الإخراج التالي هو مثال على جهاز
my-x509-device
المحاكاة الذي تم تمهيده بنجاح، والاتصال بخدمة التزويد. تم تعيين الجهاز إلى مركز IoT وتسجيله:Provisioning API Version: 1.8.0 Registering Device Provisioning Status: PROV_DEVICE_REG_STATUS_CONNECTED Provisioning Status: PROV_DEVICE_REG_STATUS_ASSIGNING Registration Information received from service: contoso-iot-hub-2.azure-devices.net, deviceId: my-x509-device Press enter key to exit:
في هذا القسم، يمكنك استخدام موجه أوامر Windows.
في مدخل Azure، حدد علامة تبويب Overview لخدمة تكوين إعدادات تشغيل الجهاز لديك.
انسخ قيمة ID Scope.
في موجه أوامر Windows، قم بالتغيير إلى دليل X509Sample. يقع هذا الدليل في دليل .\azure-iot-sdk-csharp\provisioning\device\samples\getting started\X509Sample من الدليل حيث نسخت العينات على الكمبيوتر.
أدخل الأمر التالي لإنشاء نموذج توفير جهاز X.509 وتشغيله (استبدل
<IDScope>
القيمة مع نطاق المعرف الذي نسخته في القسم السابق. ملف الشهادة افتراضيا إلى ./certificate.pfx ويطالب بكلمة مرور .pfx.dotnet run -- -s <IDScope>
إذا كنت تريد تمرير الشهادة وكلمة المرور كمعلمة، يمكنك استخدام التنسيق التالي.
إشعار
يمكن تمرير معلمات إضافية أثناء تشغيل التطبيق لتغيير TransportType (-t) و GlobalDeviceEndpoint (-g).
dotnet run -- -s 0ne00000A0A -c certificate.pfx -p 1234
يتصل الجهاز ب DPS ويتم تعيينه إلى مركز IoT. ثم يرسل الجهاز رسالة بيانات تتبع الاستخدام إلى مركز IoT.
Loading the certificate... Enter the PFX password for certificate.pfx: **** Found certificate: A33DB11B8883DEE5B1690ACFEAAB69E8E928080B CN=my-x509-device; PrivateKey: True Using certificate A33DB11B8883DEE5B1690ACFEAAB69E8E928080B CN=my-x509-device Initializing the device provisioning client... Initialized for registration Id my-x509-device. Registering with the device provisioning service... Registration status: Assigned. Device my-x509-device registered to MyExampleHub.azure-devices.net. Creating X509 authentication for IoT Hub... Testing the provisioned device with IoT Hub... Sending a telemetry message... Finished.
في هذا القسم، يمكنك استخدام موجه أوامر Windows.
في مدخل Azure، حدد علامة تبويب Overview لخدمة تكوين إعدادات تشغيل الجهاز لديك.
انسخ قيمة ID Scope.
في موجه أوامر Windows، انتقل إلى نموذج الدليل، وقم بتثبيت الحزم التي يحتاجها النموذج. المسار المعروض نسبة إلى الموقع الذي نسخت فيه SDK.
cd .\azure-iot-sdk-node\provisioning\device\samples npm install
يستخدم النموذج خمسة متغيرات بيئة لمصادقة وتوفير جهاز IoT باستخدام DPS. متغيرات البيئة هذه هي:
اسم المتغير الوصف PROVISIONING_HOST
نقطة النهاية التي يجب استخدامها للاتصال بمثيل DPS. لهذا التشغيل السريع، استخدم نقطة النهاية العمومية، global.azure-devices-provisioning.net
.PROVISIONING_IDSCOPE
نطاق المعرف لمثيل DPS الخاص بك. PROVISIONING_REGISTRATION_ID
معرف التسجيل لجهازك. يجب أن يتطابق مع الاسم الشائع للموضوع في شهادة الجهاز. CERTIFICATE_FILE
المسار إلى ملف شهادة جهازك. KEY_FILE
المسار إلى ملف المفتاح الخاص بجهازك. إضافة متغيرات البيئة لنقطة نهاية الجهاز العمومي ونطاق المعرف. استبدل
<id-scope>
بالقيمة التي نسختها في الخطوة 2.set PROVISIONING_HOST=global.azure-devices-provisioning.net set PROVISIONING_IDSCOPE=<id-scope>
تعيين متغير البيئة لمعرف تسجيل الجهاز. يجب أن يتطابق معرف التسجيل لجهاز IoT مع الاسم الشائع للموضوع على شهادة الجهاز الخاصة به. إذا اتبعت الخطوات الواردة في هذا التشغيل السريع لإنشاء شهادة اختبار موقعة ذاتيا،
my-x509-device
فهو اسم الموضوع ومعرف التسجيل للجهاز.set PROVISIONING_REGISTRATION_ID=my-x509-device
تعيين متغيرات البيئة لشهادة الجهاز وملفات المفاتيح الخاصة بالجهاز (غير المشفرة).
set CERTIFICATE_FILE=.\device-cert.pem set KEY_FILE=.\unencrypted-device-key.pem
قم بتشغيل العينة وتحقق من توفير الجهاز بنجاح.
node register_x509.js
يجب أن ترى مخرجات مماثلة للمثال التالي:
registration succeeded assigned hub=contoso-hub-2.azure-devices.net deviceId=my-x509-device Client connected send status: MessageEnqueued
في هذا القسم، يمكنك استخدام موجه أوامر Windows.
في مدخل Azure، حدد علامة تبويب Overview لخدمة تكوين إعدادات تشغيل الجهاز لديك.
نسخ قيم نطاق المعرف و نقطة نهاية الجهاز العمومي.
في موجه أوامر Windows، انتقل إلى دليل نموذج provision_x509.py . المسار المعروض نسبة إلى الموقع الذي نسخت فيه SDK.
cd ./azure-iot-sdk-python/samples/async-hub-scenarios
يستخدم هذا النموذج سنة متغيرات بيئة لمصادقة وتوفير جهاز IoT باستخدام DPS. متغيرات البيئة هذه هي:
اسم المتغير الوصف PROVISIONING_HOST
نقطة النهاية العمومية المستخدمة للاتصال بمثيل DPS. PROVISIONING_IDSCOPE
نطاق المعرف لمثيل DPS الخاص بك. DPS_X509_REGISTRATION_ID
معرف التسجيل لجهازك. يجب أن يتطابق أيضا مع اسم الموضوع على شهادة الجهاز. X509_CERT_FILE
المسار إلى ملف شهادة جهازك. X509_KEY_FILE
المسار إلى ملف المفتاح الخاص بشهادة جهازك. PASS_PHRASE
عبارة المرور التي استخدمتها لتشفير الشهادة وملف المفتاح الخاص ( 1234
).أضف متغيرات البيئة لنقطة نهاية الجهاز العمومية ونطاق المعرف.
set PROVISIONING_HOST=global.azure-devices-provisioning.net set PROVISIONING_IDSCOPE=<ID scope for your DPS resource>
تعيين متغير البيئة لمعرف التسجيل. يجب أن يتطابق معرف التسجيل لجهاز IoT مع اسم الموضوع في شهادة الجهاز الخاصة به. إذا اتبعت الخطوات الواردة في هذا التشغيل السريع لإنشاء شهادة اختبار موقعة ذاتيا،
my-x509-device
فهو اسم الموضوع ومعرف التسجيل للجهاز.set DPS_X509_REGISTRATION_ID=my-x509-device
تعيين متغيرات البيئة لملف الشهادة وملف المفتاح الخاص وعبارة المرور.
set X509_CERT_FILE=./device-cert.pem set X509_KEY_FILE=./device-key.pem set PASS_PHRASE=1234
راجع التعليمات البرمجية لـ provision_x509.py. إذا كنت لا تستخدم الإصدار 3.7 من Python أو أحدث، فقم بإجراء تغيير التعليمات البرمجية المذكور هنا لاستبدال
asyncio.run(main())
التغييرات وحفظها.قم بتشغيل العينة. تتصل العينة ب DPS، والتي توفر الجهاز إلى مركز IoT. بعد توفير الجهاز، يرسل النموذج بعض رسائل الاختبار إلى مركز IoT.
$ python azure-iot-sdk-python/samples/async-hub-scenarios/provision_x509.py RegistrationStage(RequestAndResponseOperation): Op will transition into polling after interval 2. Setting timer. The complete registration result is my-x509-device TestHub12345.azure-devices.net initialAssignment null Will send telemetry from the provisioned device sending message #4 sending message #7 sending message #2 sending message #8 sending message #5 sending message #9 sending message #1 sending message #6 sending message #10 sending message #3 done sending message #4 done sending message #7 done sending message #2 done sending message #8 done sending message #5 done sending message #9 done sending message #1 done sending message #6 done sending message #10 done sending message #3
في هذا القسم، يمكنك استخدام كل من موجه أوامر Windows ومطالبة Git Bash.
في مدخل Azure، حدد علامة تبويب Overview لخدمة تكوين إعدادات تشغيل الجهاز لديك.
نسخ قيم نطاق المعرف و نقطة نهاية الجهاز العمومي.
في موجه أوامر Windows، انتقل إلى مجلد نموذج المشروع. المسار المعروض مرتبط بالموقع الذي نسخت فيه SDK
cd .\azure-iot-sdk-java\provisioning\provisioning-device-client-samples\provisioning-X509-sample
أدخل خدمة التزويد ومعلومات هوية X.509 في نموذج التعليمات البرمجية. يتم استخدام هذه المعلومات أثناء التزويد، لإثبات جهاز المحاكاة، قبل تسجيل الجهاز.
افتح الملف
.\src\main\java\samples\com\microsoft\azure\sdk\iot\ProvisioningX509Sample.java
في المحرر المفضل لديك.قم بتحديث القيم التالية باستخدام نطاق المعرف ونقطة النهاية العمومية لخدمة التزويد التي نسختها مسبقا.
private static final String idScope = "[Your ID scope here]"; private static final String globalEndpoint = "[Your Provisioning Service Global Endpoint here]"; private static final ProvisioningDeviceClientTransportProtocol PROVISIONING_DEVICE_CLIENT_TRANSPORT_PROTOCOL = ProvisioningDeviceClientTransportProtocol.HTTPS;
تحديث قيمة
leafPublicPem
السلسلة الثابتة بقيمة الشهادة الخاصة بك، device-cert.pem.يجب أن يتبع بناء جملة نص الشهادة النمط التالي بدون مسافات أو أحرف إضافية.
private static final String leafPublicPem = "-----BEGIN CERTIFICATE-----\n" + "MIIFOjCCAyKgAwIBAgIJAPzMa6s7mj7+MA0GCSqGSIb3DQEBCwUAMCoxKDAmBgNV\n" + ... "MDMwWhcNMjAxMTIyMjEzMDMwWjAqMSgwJgYDVQQDDB9BenVyZSBJb1QgSHViIENB\n" + "-----END CERTIFICATE-----";
يمكن أن يكون تحديث قيمة السلسلة هذه يدويا عرضة للخطأ. لإنشاء بناء الجملة المناسب، يمكنك نسخ الأمر التالي ولصقه في موجه Git Bash، واضغط على ENTER. ينشئ هذا الأمر بناء الجملة للقيمة
leafPublicPem
الثابتة للسلسلة ويكتبها في الإخراج.sed 's/^/"/;$ !s/$/\\n" +/;$ s/$/"/' device-cert.pem
انسخ والصق نص شهادة الإخراج للقيمة الثابتة.
قم بتحديث قيمة
leafPrivateKey
سلسلة الثابت باستخدام المفتاح الخاص غير المشفرة لشهادة جهازك، unencrypted-device-key.pem.يجب أن يتبع بناء جملة نص المفتاح الخاص النمط التالي بدون مسافات أو أحرف إضافية.
private static final String leafPrivateKey = "-----BEGIN PRIVATE KEY-----\n" + "MIIJJwIBAAKCAgEAtjvKQjIhp0EE1PoADL1rfF/W6v4vlAzOSifKSQsaPeebqg8U\n" + ... "X7fi9OZ26QpnkS5QjjPTYI/wwn0J9YAwNfKSlNeXTJDfJ+KpjXBcvaLxeBQbQhij\n" + "-----END PRIVATE KEY-----";
يمكن أن يكون تحديث قيمة السلسلة هذه يدويا عرضة للخطأ. لإنشاء بناء الجملة المناسب، يمكنك نسخ الأمر التالي ولصقه في موجه Git Bash، واضغط على ENTER. ينشئ هذا الأمر بناء الجملة للقيمة
leafPrivateKey
الثابتة للسلسلة ويكتبها في الإخراج.sed 's/^/"/;$ !s/$/\\n" +/;$ s/$/"/' unencrypted-device-key.pem
انسخ والصق نص المفتاح الخاص للإخراج للقيمة الثابتة.
احفظ تغييراتك.
أنشئ النموذج، ثم انتقل إلى
target
المجلد.mvn clean install cd target
مخرجات البنية .jar الملف في
target
المجلد بتنسيق الملف التالي:provisioning-x509-sample-{version}-with-deps.jar
؛ على سبيل المثال:provisioning-x509-sample-1.8.1-with-deps.jar
. تنفيذ ملف .jar. قد تحتاج إلى استبدال الإصدار في الأمر التالي.java -jar ./provisioning-x509-sample-1.8.1-with-deps.jar
تتصل العينة ب DPS، والتي توفر الجهاز إلى مركز IoT. بعد توفير الجهاز، يرسل النموذج بعض رسائل الاختبار إلى مركز IoT.
Starting... Beginning setup. WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance. 2022-05-11 09:42:05,025 DEBUG (main) [com.microsoft.azure.sdk.iot.provisioning.device.ProvisioningDeviceClient] - Initialized a ProvisioningDeviceClient instance using SDK version 2.0.0 2022-05-11 09:42:05,027 DEBUG (main) [com.microsoft.azure.sdk.iot.provisioning.device.ProvisioningDeviceClient] - Starting provisioning thread... Waiting for Provisioning Service to register 2022-05-11 09:42:05,030 INFO (global.azure-devices-provisioning.net-6255a8ba-CxnPendingConnectionId-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Opening the connection to device provisioning service... 2022-05-11 09:42:05,252 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Connection to device provisioning service opened successfully, sending initial device registration message 2022-05-11 09:42:05,286 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-RegisterTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.RegisterTask] - Authenticating with device provisioning service using x509 certificates 2022-05-11 09:42:06,083 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Waiting for device provisioning service to provision this device... 2022-05-11 09:42:06,083 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Current provisioning status: ASSIGNING Waiting for Provisioning Service to register 2022-05-11 09:42:15,685 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Device provisioning service assigned the device successfully IotHUb Uri : MyExampleHub.azure-devices.net Device ID : java-device-01 2022-05-11 09:42:25,057 INFO (main) [com.microsoft.azure.sdk.iot.device.transport.ExponentialBackoffWithJitter] - NOTE: A new instance of ExponentialBackoffWithJitter has been created with the following properties. Retry Count: 2147483647, Min Backoff Interval: 100, Max Backoff Interval: 10000, Max Time Between Retries: 100, Fast Retry Enabled: true 2022-05-11 09:42:25,080 INFO (main) [com.microsoft.azure.sdk.iot.device.transport.ExponentialBackoffWithJitter] - NOTE: A new instance of ExponentialBackoffWithJitter has been created with the following properties. Retry Count: 2147483647, Min Backoff Interval: 100, Max Backoff Interval: 10000, Max Time Between Retries: 100, Fast Retry Enabled: true 2022-05-11 09:42:25,087 DEBUG (main) [com.microsoft.azure.sdk.iot.device.DeviceClient] - Initialized a DeviceClient instance using SDK version 2.0.3 2022-05-11 09:42:25,129 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection] - Opening MQTT connection... 2022-05-11 09:42:25,150 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sending MQTT CONNECT packet... 2022-05-11 09:42:25,982 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sent MQTT CONNECT packet was acknowledged 2022-05-11 09:42:25,983 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sending MQTT SUBSCRIBE packet for topic devices/java-device-01/messages/devicebound/# 2022-05-11 09:42:26,068 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sent MQTT SUBSCRIBE packet for topic devices/java-device-01/messages/devicebound/# was acknowledged 2022-05-11 09:42:26,068 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection] - MQTT connection opened successfully 2022-05-11 09:42:26,070 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - The connection to the IoT Hub has been established 2022-05-11 09:42:26,071 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Updating transport status to new status CONNECTED with reason CONNECTION_OK 2022-05-11 09:42:26,071 DEBUG (main) [com.microsoft.azure.sdk.iot.device.DeviceIO] - Starting worker threads 2022-05-11 09:42:26,073 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Invoking connection status callbacks with new status details 2022-05-11 09:42:26,074 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Client connection opened successfully 2022-05-11 09:42:26,075 INFO (main) [com.microsoft.azure.sdk.iot.device.DeviceClient] - Device client opened successfully Sending message from device to IoT Hub... 2022-05-11 09:42:26,077 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Message was queued to be sent later ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) Press any key to exit... 2022-05-11 09:42:26,079 DEBUG (MyExampleHub.azure-devices.net-java-device-01-ee6c362d-Cxn7a1fb819-e46d-4658-9b03-ca50c88c0440-azure-iot-sdk-IotHubSendTask) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Sending message ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) 2022-05-11 09:42:26,422 DEBUG (MQTT Call: java-device-01) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - IotHub message was acknowledged. Checking if there is record of sending this message ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) 2022-05-11 09:42:26,425 DEBUG (MyExampleHub.azure-devices.net-java-device-01-ee6c362d-Cxn7a1fb819-e46d-4658-9b03-ca50c88c0440-azure-iot-sdk-IotHubSendTask) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Invoking the callback function for sent message, IoT Hub responded to message ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) with status OK Message sent!
تأكد من تسجيل توفير جهازك
لمعرفة مركز IoT الذي تم توفير جهازك له، افحص تفاصيل التسجيل الفردي الذي أنشأته سابقا:
في مدخل Microsoft Azure، انتقل إلى Device Provisioning Service.
في قائمة الإعدادات، حدد "إدارة التسجيلات".
حدد التسجيلات الفردية. يجب أن يظهر إدخال التسجيل X.509 الذي قمت بإنشائه مسبقا، my-x509-device، في القائمة.
حدد إدخال التسجيل. يظهر مركز IoT الذي تم تعيين جهازك له ومعرف الجهاز الخاص به ضمن حالة التسجيل.
للتحقق من الجهاز في مركز IoT الخاص بك:
في مدخل Microsoft Azure، انتقل إلى مركز IoT الذي تم تعيين جهازك إليه.
في قائمة إدارة الأجهزة، حدد الأجهزة.
إذا تم توفير جهازك بنجاح، يجب أن يظهر معرف الجهاز الخاص به، my-x509-device، في القائمة، مع تعيين الحالة على أنه ممكن. إذا لم تتمكن من رؤية جهازك، فحدد تحديث.
هام
إذا غيّرت حالة الجهاز التوأم الأولية من القيمة الافتراضية في إدخال التسجيل لجهازك، يمكنها سحب الحالة التوأم المطلوبة من المركز والتصرف وفقًا لذلك. لمزيد من المعلومات، راجع فهم واستخدام توائم الجهاز في IoT Hub
تنظيف الموارد
إذا كنت تخطط لمتابعة العمل على نموذج عميل الجهاز واستكشافه، فلا تنظف الموارد التي تم إنشاؤها في هذه البداية السريعة. إذا لم تكن تخطط للمتابعة، فاستخدم الخطوات التالية لحذف جميع الموارد التي تم إنشاؤها بواسطة هذه البداية السريعة.
احذف تسجيل جهازك
أغلق نموذج إطار إخراج نموذج الجهاز على الجهاز.
في مدخل Azure، حدد All resources في القائمة اليسرى.
تحديد خدمة تزويد الأجهزة خاصتك.
في قائمة الإعدادات، حدد "إدارة التسجيلات".
حدد علامة التبويب التسجيلات الفردية.
حدد خانة الاختيار بجوار معرف التسجيل للجهاز الذي سجلته في هذا التشغيل السريع.
في الجزء العلوي من الصفحة، حدد حذف.
احذف تسجيل جهازك من مركز IoT
في مدخل Azure، حدد All resources في القائمة اليسرى.
حدد مركز IoT.
في قائمة Explorers، حدد IoT devices.
حدد خانة الاختيار بجوار معرف الجهاز الخاص بالجهاز الذي سجلته في هذا التشغيل السريع.
في الجزء العلوي من الصفحة، حدد حذف.
الخطوات التالية
في هذا التشغيل السريع، قمت بتوفير جهاز واحد لمركز IoT الخاص بك باستخدام تسجيل فردي. بعد ذلك، تعرف على كيفية توفير أجهزة متعددة عبر مراكز متعددة.