التحكم في الوصول إلى 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 أن يكون لدى الأساسي الذي يطلب واجهة برمجة التطبيقات المستوى المناسب من الإذن للتخويل. لمنح الحساب الأساسي الإذن، امنحه تعيين دور.
- إذا كان الحساب الأساسي هو مستخدم أو مجموعة أو كيان خدمة تطبيق، فاتبع الإرشادات الواردة في تعيين أدوار Azure باستخدام مدخل Azure.
- إذا كان الأساسي هوية مدارة، فاتبع الإرشادات الواردة في تعيين وصول هوية مدارة إلى مورد.
لضمان أقل امتياز، قم دائمًا بتعيين الدور المناسب في أقل نطاق مورد ممكن، والذي ربما يكون نطاق 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 |
تحقق من صحة الشرط الهدف واستعلامات القياس المخصصة للتكوين. |
تلميح
- تتطلب عملية تحديث السجل المجمع كلا
Microsoft.Devices/IotHubs/devices/write
من وMicrosoft.Devices/IotHubs/devices/delete
. - تتطلب عملية الاستعلام التوأم
Microsoft.Devices/IotHubs/twins/read
. - الحصول على التوأم الرقمي يتطلب
Microsoft.Devices/IotHubs/twins/read
. تحديث التوأم الرقمي يتطلبMicrosoft.Devices/IotHubs/twins/write
. - يتطلب كل من استدعاء أمر المكون واستدعاء أمر مستوى الجذر
Microsoft.Devices/IotHubs/directMethods/invoke/action
.
إشعار
للحصول على البيانات من IoT Hub باستخدام معرف Microsoft Entra، قم بإعداد التوجيه إلى نقطة نهاية مخصصة لمراكز الأحداث. للوصول إلى نقطة النهاية المتوافقة مع مراكز الأحداث المضمنة، استخدم أسلوب سلسلة الاتصال (مفتاح الوصول المشترك) كما كان من قبل.
فرض مصادقة Microsoft Entra
بشكل افتراضي، يدعم IoT Hub الوصول إلى واجهة برمجة التطبيقات للخدمة من خلال كل من معرف Microsoft Entra ونهج الوصول المشترك ورمز الأمان المميزة. لتقليل الثغرات الأمنية المحتملة المتأصلة في رموز الأمان المميزة، يمكنك تعطيل الوصول باستخدام نهج الوصول المشترك.
تحذير
برفض الاتصالات باستخدام نهج الوصول المشترك، يفقد جميع المستخدمين والخدمات التي تتصل باستخدام هذا الأسلوب الوصول على الفور. على وجه الخصوص، نظرا لأن خدمة توفير الأجهزة (DPS) تدعم فقط ربط مراكز IoT باستخدام نهج الوصول المشتركة، ستفشل جميع تدفقات تزويد الأجهزة مع وجود خطأ "غير مصرح به". تابع بعناية واخطط لاستبدال الوصول بالوصول المستند إلى دور Microsoft Entra.
لا تتابع إذا كنت تستخدم خدمة تزويد الأجهزة.
تأكد من أن عملاء الخدمة والمستخدمين لديك لديهم حق الوصول الكافي إلى مركز IoT الخاص بك. اتبع الحساب الأساسي الأقل امتيازًا.
في مدخل Microsoft Azure، انتقل إلى مركز IoT.
في الجزء الأيسر، حدد 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.
- لمعرفة كيفية استخدام رموز الوصول المميزة وتحديث الرموز المميزة ورموز ID المميزة في المصادقة والتخويل، راجع رموز الأمان المميزة.