مصادقة وتخويل تطبيق باستخدام معرف Microsoft Entra للوصول إلى كيانات ناقل خدمة Azure

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

هام

يمكنك تعطيل مصادقة المفتاح المحلي أو SAS لمساحة اسم ناقل خدمة Microsoft Azure والسماح بمصادقة Microsoft Entra فقط. للحصول على إرشادات خطوة بخطوة، راجع "Disable local authentication".

نظرة عامة

عندما يحاول أحد أساسيات الأمان (مستخدم أو مجموعة أو تطبيق) الوصول إلى كيان ناقل الخدمة، يجب أن يكون الطلب معتمداً. باستخدام معرف Microsoft Entra، يعد الوصول إلى مورد عملية من خطوتين.

  1. يتم، أولاً مصادقة هوية أساس الأمان، ويتم إرجاع رمز OAuth 2.0 المميز. اسم المورد لطلب رمز مميز هو https://servicebus.azure.net.
  2. بعد ذلك، يتم تمرير الرمز المميز كجزء من طلب إلى خدمة "ناقل الخدمة" لتخويل الوصول إلى المورد المُحدد.

تتطلب خطوة المصادقة أن يحتوي طلب التطبيق على رمز وصول OAuth 2.0 المميز عند وقت التشغيل. إذا كان أحد التطبيقات يعمل داخل كيان Azure مثل Azure VM أو مجموعة مقياس الجهاز الظاهري أو تطبيق Azure Function، فيمكنه استخدام هوية مدارة للوصول إلى الموارد. لمعرفة كيفية مصادقة الطلبات التي تم إجراؤها بواسطة هوية مدارة لخدمة ناقل خدمة Microsoft Azure، راجع مصادقة الوصول إلى موارد ناقل خدمة Azure باستخدام معرف Microsoft Entra والهويات المدارة لموارد Azure.

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

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

أدوار Azure المضمنة لناقل خدمة Azure

تخول Microsoft Entra حقوق الوصول إلى الموارد الآمنة من خلال Azure RBAC. يُحدد ناقل خدمة Azure مجموعة من أدوار Azure المضمنة والتي تتضمن مجموعات شائعة من الأذونات المستخدمة للوصول إلى كيانات ناقل خدمة، ويمكنك أيضاً تحديد أدوار مخصصة للوصول إلى البيانات.

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

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

  • ناقل خدمة Azure مالك البيانات: استخدم هذا الدور لمنح حق الوصول الكامل إلى موارد ناقل خدمة Microsoft Azure.
  • ناقل خدمة Azure Data Sender: استخدم هذا الدور لمنح وصول الإرسال إلى مساحة اسم ناقل خدمة Microsoft Azure والكيانات الخاصة به.
  • متلقي بيانات ناقل خدمة Azure: استخدم هذا الدور لمنح الوصول للمتلقي إلى مساحة اسم ناقل الخدمة والكيانات الخاصة به.

نطاق المورد

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

تصف القائمة التالية المستويات التي يمكنك من خلالها الوصول إلى موارد "ناقل الخدمة"، بدءاً من النطاق الأضيق:

  • قائمة انتظار أو موضوع أو اشتراك: ينطبق تعيين الدور على كيان ناقل خدمة المُحدد. حاليا، لا يدعم مدخل Azure تعيين المستخدمين/المجموعات/الهويات المُدارة إلى أدوار "ناقل الخدمة Azure" على مستوى الاشتراك.
  • مساحة ناقل خدمة Microsoft Azure: يمتد تعيين الدور لمخطط كامل لناقل خدمة Microsoft Azure ضمن مساحة الاسم وإلى مجموعة المستهلكين المُقترنة به.
  • مجموعة الموارد: ينطبق تعيين الدور على جميع موارد "ناقل الخدمة" ضمن مجموعة الموارد.
  • الاشتراك: ينطبق تعيين الدور على جميع موارد "ناقل الخدمة" في جميع مجموعات الموارد في الاشتراك.

إشعار

ضع في عين الاعتبار أن تعيينات دور Azure قد تستغرق ما يصل إلى خمس دقائق للنشر.

لمزيد من المعلومات حول كيفية تعريف الأدوار المضمنة، راجع فهم تعريفات الدور. للحصول على معلومات حول إنشاء أدوار Azure المخصصة، راجع أدوار Azure المخصصة.

المصادقة من تطبيق

تتمثل الميزة الرئيسية لاستخدام معرف Microsoft Entra مع ناقل خدمة Microsoft Azure في أن بيانات الاعتماد الخاصة بك لم تعد بحاجة إلى تخزينها في التعليمات البرمجية الخاصة بك. بدلاً من ذلك، يمكنك طلب رمز وصول OAuth 2.0 من النظام الأساسي للهويات في Microsoft. يقوم Microsoft Entra بمصادقة أساس الأمان (مستخدم أو مجموعة أو كيان خدمة أو هوية مدارة لموارد Azure) الذي يقوم بتشغيل التطبيق. إذا نجحت المصادقة، يقوم معرف Microsoft Entra بإرجاع الرمز المميز للوصول إلى التطبيق، ويمكن للتطبيق بعد ذلك استخدام رمز الوصول لتخويل الطلبات ناقل خدمة Azure.

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

للحصول على نظرة عامة حول تدفق منح التعليمات البرمجية OAuth 2.0، راجع تخويل الوصول إلى تطبيقات الويب Microsoft Entra باستخدام تدفق منح التعليمات البرمجية OAuth 2.0.

تسجيل التطبيق الخاص بك مع مستأجر Microsoft Entra

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

اتبع الخطوات في التشغيل السريع: تسجيل تطبيق باستخدام النظام الأساسي للهويات في Microsoft لتسجيل التطبيق الخاص بك باستخدام معرف Microsoft Entra.

إشعار

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

بعد تسجيل التطبيق الخاص بك، سترى معرف التطبيق (العميل) ومعرف الدليل (المستأجر) ضمن الإعدادات:

هام

دوّن معرّف المستأجر، ومعرّف التطبيق. ستحتاج هذه القيم لتشغيل التطبيق.

Screenshot showing the App registration page showing the Application ID and Tenant ID.

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

إنشاء سر عميل

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

  1. انتقل إلى تسجيل تطبيقك في مدخل Microsoft Azure إذا لم تكن موجودًا بالفعل في الصفحة.

  2. في القائمة اليسرى، حدد الشهادات والبيانات السرية.

  3. ضمن أسرار العميل، حدد سر عميل جديد لإنشاء سر جديد.

    Screenshot showing the Certificates and secrets page with New client secret button selected.

  4. قدم وصفًا للسر، واختر فترة انتهاء الصلاحية المطلوبة، ثم اختر إضافة.

    Screenshot showing the Add a client secret page.

  5. انسخ فورًا قيمة new secret إلى مكان آمن. تُعرض قيمة التعبئة لك مرة واحدة فقط.

    Screenshot showing the Client secrets section with the secret you added.

أذونات واجهة برمجة تطبيقات ناقل خدمة Microsoft Azure

إذا كان تطبيقك عبارة عن تطبيق وحدة تحكم، فيجب تسجيل تطبيق أصلي وإضافة أذونات واجهة برمجة التطبيقات لـ Microsoft.ServiceBus إلى مجموعة الأذونات المطلوبة. تحتاج التطبيقات الأصلية أيضا إلى عنوان uri لإعادة التوجيه في معرف Microsoft Entra، والذي يعمل كمعرف؛ لا يحتاج URI إلى أن يكون وجهة شبكة. استخدم https://servicebus.microsoft.com لهذا المثال، لأن نموذج التعليمات البرمجية يستخدم بالفعل هذا الـ URI.

تعيين أدوار Azure باستخدام مدخل Microsoft Azure

تعيين أحد أدوار ناقل خدمة Microsoft Azure إلى كيان خدمة التطبيق في النطاق المطلوب (مساحة اسم ناقل خدمة Microsoft Azure، مجموعة الموارد، الاشتراك). للحصول على خطوات تفصيلية، راجع تعيين أدوار Azure باستخدام مدخل Azure.

بمجرد تحديد الدور ونطاقه، يمكنك اختبار هذا السلوك مع العينة على GitHub.

مصادقة عميل ناقل خدمة Microsoft Azure

بمجرد تسجيل طلبك ومنحه أذونات لإرسال/استقبال البيانات في ناقل خدمة Microsoft Azure، يمكنك مصادقة العميل باستخدام بيانات اعتماد سر العميل، والتي ستُمكنك من تقديم طلبات مقابل ناقل خدمة Microsoft Azure.

للحصول على قائمة بالسيناريوهات التي يتم دعم الحصول على الرموز المميزة لها، راجع قسم السيناريوهات في مكتبة مصادقة Microsoft (MSAL) لمستودع .NET GitHub.

باستخدام أحدث مكتبة Azure.Messaging.ServiceBus، يمكنك مصادقة ServiceBusClient مع ClientSecretCredential، الذي تم تعريفه في مكتبة Azure.Identity.

TokenCredential credential = new ClientSecretCredential("<tenant_id>", "<client_id>", "<client_secret>");
var client = new ServiceBusClient("<fully_qualified_namespace>", credential);

إذا كنت تستخدم حزم .NET الأقدم، فشاهد عينات RoleBasedAccessControl في مستودع نماذج ناقل خدمة Azure.

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

لمعرفة المزيد حول رسائل ناقل خدمة Microsoft Azure، راجع الموضوعات التالية.