التحكم في الوصول إلى IoT Hub باستخدام معرف Microsoft Entra

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

توفر مصادقة الوصول باستخدام معرف Microsoft Entra والتحكم في الأذونات باستخدام Azure RBAC أمانا محسنا وسهولة استخدام الرموز المميزة للأمان. لتقليل مشكلات الأمان المحتملة المتأصلة في رموز الأمان المميزة، نوصي بفرض مصادقة Microsoft Entra كلما أمكن ذلك.

إشعار

المصادقة باستخدام معرف Microsoft Entra غير مدعومة لواجهات برمجة تطبيقات جهاز IoT Hub (مثل الرسائل من جهاز إلى سحابة وتحديث الخصائص المبلغ عنها). استخدم مفاتيح متماثلة أو X.509 لمصادقة الأجهزة على IoT Hub.

المصادقة والتخويل

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

عندما يطلب أساس أمان Microsoft Entra الوصول إلى واجهة برمجة تطبيقات خدمة IoT Hub، تتم أولا مصادقة هوية الأساسي. للمصادقة، يحتاج الطلب إلى احتواء رمز وصول OAuth 2.0 المميز في وقت التشغيل. اسم المورد لطلب الرمز المميز هو https://iothubs.azure.net. إذا كان التطبيق يعمل في مورد Azure مثل جهاز Azure الظاهري أو تطبيق Azure Functions أو تطبيق Azure App Service، يمكن تمثيله كهوية مُدارة.

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

إدارة الوصول إلى IoT Hub باستخدام تعيين دور Azure RBAC

باستخدام معرف Microsoft Entra وRBAC، يتطلب IoT Hub الأساسي الذي يطلب من واجهة برمجة التطبيقات الحصول على المستوى المناسب من الإذن للتخويل. لمنح الحساب الأساسي الإذن، امنحه تعيين دور.

لضمان أقل امتياز، قم دائمًا بتعيين الدور المناسب في أقل نطاق مورد ممكن، والذي ربما يكون نطاق IoT Hub.

يوفر IoT Hub الأدوار المضمنة التالية في Azure لتخويل الوصول إلى واجهات برمجة تطبيقات خدمة IoT Hub باستخدام معرف Microsoft Entra وRBAC:

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

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

نطاق المورد

قبل تعيين التحكم في الوصول استناداً إلى الدور Azure RBAC إلى مسؤول أمان، حدد نطاق الوصول الذي ستخصصه لمسؤول الأمان. من الأفضل دائمًا منح أضيق نطاق ممكن فقط. يتم توريث أدوار التحكم في الوصول استناداً إلى الدور لـ Azure المحددة على نطاق أوسع بواسطة الموارد الموجودة تحتها.

توضح هذه القائمة المستويات التي يمكنك من خلالها الوصول إلى IoT Hub، بدءًا من النطاق الأضيق:

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

أذونات واجهات برمجة تطبيقات خدمة IoT Hub

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

إجراء التحكم في الوصول استنادًا إلى الدور ‏‏الوصف
Microsoft.Devices/IotHubs/devices/read اقرأ هوية أي جهاز أو وحدة.
Microsoft.Devices/IotHubs/devices/write أنشئ أو حدث أي هوية جهاز أو وحدة.
Microsoft.Devices/IotHubs/devices/delete احذف هوية أي جهاز أو وحدة.
Microsoft.Devices/IotHubs/twins/read اقرأ هوية أي توأم جهاز أو وحدة.
Microsoft.Devices/IotHubs/twins/write اكتب هوية أي توأم جهاز أو وحدة.
Microsoft.Devices/IotHubs/jobs/read أرجع قائمة الوظائف.
Microsoft.Devices/IotHubs/jobs/write أنشئ مسار أو حدثه.
Microsoft.Devices/IotHubs/jobs/delete احذف أي مهمة.
Microsoft.Devices/IotHubs/cloudToDeviceMessages/send/action أرسل رسالة من سحابة إلى جهاز إلى أي جهاز.
Microsoft.Devices/IotHubs/cloudToDeviceMessages/feedback/action استلم إعلام ملاحظات من السحابة إلى الجهاز أو أكمله أو قم بإلغائه.
Microsoft.Devices/IotHubs/cloudToDeviceMessages/queue/purge/action احذف جميع الأوامر المعلقة لجهاز.
Microsoft.Devices/IotHubs/directMethods/invoke/action استدع أسلوب مباشر على أي جهاز أو وحدة.
Microsoft.Devices/IotHubs/fileUpload/notifications/action استلم إعلامات تحميل الملفات أو أكملها أو قم بإلغائها.
Microsoft.Devices/IotHubs/statistics/read اقرأ إحصائيات الجهاز والخدمة.
Microsoft.Devices/IotHubs/configurations/read اقرأ تكوينات إدارة الجهاز.
Microsoft.Devices/IotHubs/configurations/write أنشئ تكوينات إدارة الأجهزة أو حدثها.
Microsoft.Devices/IotHubs/configurations/delete احذف أي تكوين لإدارة الأجهزة.
Microsoft.Devices/IotHubs/configurations/applyToEdgeDevice/action طبق محتوى التكوين على جهاز حافة.
Microsoft.Devices/IotHubs/configurations/testQueries/action تحقق من صحة الشرط الهدف واستعلامات القياس المخصصة للتكوين.

تلميح

إشعار

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

فرض مصادقة Microsoft Entra

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

تحذير

برفض الاتصالات باستخدام نهج الوصول المشترك، يفقد جميع المستخدمين والخدمات التي تتصل باستخدام هذا الأسلوب الوصول على الفور. على وجه الخصوص، نظرا لأن خدمة توفير الأجهزة (DPS) تدعم فقط ربط مراكز IoT باستخدام نهج الوصول المشتركة، ستفشل جميع تدفقات تزويد الأجهزة مع وجود خطأ "غير مصرح به". تابع بعناية واخطط لاستبدال الوصول بالوصول المستند إلى دور Microsoft Entra. لا تتابع إذا كنت تستخدم DPS.

  1. تأكد من أن عملاء الخدمة والمستخدمين لديك لديهم حق الوصول الكافي إلى مركز IoT الخاص بك. اتبع الحساب الأساسي الأقل امتيازًا.
  2. في مدخل Microsoft Azure، انتقل إلى مركز IoT.
  3. في الجزء الأيسر، حدد Shared access policies.
  4. ضمن الاتصال باستخدام نهج الوصول المشترك، حدد رفض، وراجع التحذير. Screenshot that shows how to turn off IoT Hub shared access policies.

يمكن الآن الوصول إلى واجهات برمجة تطبيقات خدمة IoT Hub الخاصة بك فقط من خلال معرف Microsoft Entra وRBAC.

الوصول إلى معرف Microsoft Entra من مدخل Microsoft Azure

يمكنك توفير الوصول إلى IoT Hub من مدخل Microsoft Azure إما باستخدام نهج الوصول المشتركة أو أذونات Microsoft Entra.

عند محاولة الوصول إلى IoT Hub من مدخل Microsoft Azure، يتحقق مدخل Azure أولا مما إذا كان قد تم تعيين دور Azure لك باستخدام Microsoft.Devices/iotHubs/listkeys/action. إذا كان لديك، فإن مدخل Azure يستخدم المفاتيح من نهج الوصول المشتركة للوصول إلى IoT Hub. إذا لم يكن الأمر كما هو، يحاول مدخل Microsoft Azure الوصول إلى البيانات باستخدام حساب Microsoft Entra الخاص بك.

للوصول إلى IoT Hub من مدخل Microsoft Azure باستخدام حساب Microsoft Entra الخاص بك، تحتاج إلى أذونات للوصول إلى موارد بيانات IoT Hub (مثل الأجهزة والتوائم). تحتاج أيضًا إلى أذونات للانتقال إلى مورد IoT Hub في مدخل Azure. تمنح الأدوار المضمنة التي يوفرها IoT Hub الوصول إلى موارد مثل الأجهزة والتوائم ولكنها لا تمنح حق الوصول إلى مورد IoT Hub. لذلك يتطلب الوصول إلى المدخل أيضًا تعيين دور Azure Resource Manager مثل القارئ. يعد دور القارئ خيارا جيدا لأنه الدور الأكثر تقييدا الذي يتيح لك التنقل في المدخل. لا يتضمن Microsoft.Devices/iotHubs/listkeys/action الإذن (الذي يوفر الوصول إلى جميع موارد بيانات IoT Hub عبر نهج الوصول المشترك).

للتأكد من أن الحساب ليس لديه حق الوصول خارج الأذونات المعينة، لا تقم بتضمين Microsoft.Devices/iotHubs/listkeys/action الإذن عند إنشاء دور مخصص. على سبيل المثال، لإنشاء دور مخصص يمكنه قراءة هويات الجهاز ولكن لا يمكنه إنشاء الأجهزة أو حذفها، قم بإنشاء دور مخصص:

  • يحتوي على إجراء البيانات Microsoft.Devices/IotHubs/devices/read.
  • لا يحتوي على إجراء البيانات Microsoft.Devices/IotHubs/devices/write.
  • لا يحتوي على إجراء البيانات Microsoft.Devices/IotHubs/devices/delete.
  • لا يحتوي على إجراء Microsoft.Devices/iotHubs/listkeys/action.

بعد ذلك، تأكد من أن الحساب ليس لديه أي أدوار أخرى لديها الإذن Microsoft.Devices/iotHubs/listkeys/action، مثل المالك أو المساهم. للسماح للحساب بالوصول إلى الموارد والتنقل في المدخل، قم بتعيين القارئ.

الوصول إلى معرف Microsoft Entra من Azure CLI

تدعم معظم الأوامر مقابل IoT Hub مصادقة Microsoft Entra. يمكنك التحكم في نوع المصادقة المستخدمة لتشغيل الأوامر باستخدام المعلمة --auth-type التي تقبل قيم key أو login. القيمة key هي القيمة الافتراضية.

  • عندما --auth-type يكون له قيمة key، كما كان من قبل، يكتشف CLI تلقائيًا نهج مناسب عند تفاعله مع IoT Hub.

  • عندما --auth-type يكون له قيمة login، يتم استخدام رمز مميز للوصول من Azure CLI الذي قام بتسجيل الدخول إلى الحساب الأساسي للعملية.

لمزيد من المعلومات، راجع ملحق Azure IoT لصفحة إصدار Azure CLI.

عينات SDK‎

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

  • لمزيد من المعلومات حول مزايا استخدام معرف Microsoft Entra في التطبيق الخاص بك، راجع التكامل مع معرف Microsoft Entra.
  • لمزيد من المعلومات حول طلب رموز الوصول المميزة من معرف Microsoft Entra للمستخدمين وكيانات الخدمة، راجع سيناريوهات المصادقة لمعرف Microsoft Entra.

استخدم خدمة توفير الأجهزة لتوفير أجهزة X.509 متعددة باستخدام مجموعات التسجيل.