إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يدعم ناقل خدمة Azure استخدام معرف Microsoft Entra لتخويل الطلبات إلى كيانات ناقل خدمة Microsoft Azure (قوائم الانتظار أو الموضوعات أو الاشتراكات أو عوامل التصفية). مع Microsoft Entra ID، يمكنك استخدام التحكم في الوصول القائم على الأدوار في Azure (Azure RBAC) لمنح الأذونات لمدير الأمان. يمكن أن يكون المبدأ الأمني مستخدما، أو مجموعة، أو مبدأ خدمة تطبيق، أو هوية مدارة لموارد Azure.
تتمثل الميزة الرئيسية لاستخدام معرف Microsoft Entra مع ناقل خدمة Azure في أنك لم تعد بحاجة إلى تخزين بيانات الاعتماد الخاصة بك في التعليمات البرمجية. بدلاً من ذلك، يمكنك طلب رمز وصول مميز OAuth 2.0 من النظام الأساسي لـهوية Microsoft. إذا نجح المصادقة، يعيد Microsoft Entra ID رمز وصول إلى التطبيق. يمكن للتطبيق بعد ذلك استخدام رمز الوصول لتفويض الطلبات إلى موارد ناقل الخدمة.
يمكنك تعطيل مصادقة مفتاح توقيع الوصول المحلي أو المشترك (SAS) لمساحة أسماء ناقل الخدمة والسماح فقط بمصادقة Microsoft Entra. للحصول على إرشادات خطوة بخطوة، راجع "Disable local authentication".
نظرة عامة
عندما يحاول أحد أساسيات الأمان (مستخدم أو مجموعة أو تطبيق) الوصول إلى كيان ناقل الخدمة، يجب أن يكون الطلب معتمداً. باستخدام معرف Microsoft Entra، يعد الوصول إلى مورد عملية من خطوتين:
- يتم التحقق من هوية مدير الأوراق المالية، ويتم إرجاع رمز OAuth 2.0. اسم المورد لطلب رمز مميز هو
https://servicebus.azure.net. - يتم تمرير الرمز كجزء من طلب إلى خدمة ناقل الخدمة لتفويض الوصول إلى المورد المحدد.
تتطلب خطوة المصادقة أن يحتوي طلب التطبيق على رمز وصول OAuth 2.0 المميز عند وقت التشغيل. إذا كان التطبيق يعمل داخل كيان Azure مثل آلة افتراضية في Azure، أو مجموعة مقياس الآلة الافتراضية، أو تطبيق وظائف، يمكنه استخدام هوية مدارة للوصول إلى الموارد. لمعرفة كيفية التحقق من صحة الطلبات التي تصدرها هوية مدارة إلى خدمة ناقل الخدمة، راجع استخدام الهويات المدارة باستخدام ناقل خدمة أزر.
تتطلب خطوة التفويض تعيين دور أو أكثر من أدوار Azure إلى المدير الأمني. يوفر Service Bus أدوارا في Azure تشمل مجموعات من الأجنحة لموارد Service Bus. الأدوار التي تكلف بمدير الأمان تحدد الأذونات التي يمتلكها المدير على موارد ناقل الخدمة. لمعرفة المزيد حول تعيين أدوار Azure إلى Service Bus، راجع Azure الأدوار المدمجة ل Azure Service Bus.
يمكن للتطبيقات الأصلية وتطبيقات الويب التي تقدم طلبات إلى ناقل خدمة Microsoft Azure تخويلها أيضا باستخدام معرف Microsoft Entra. توضح هذه المقالة كيفية طلب رمز وصول واستخدامها لتفويض طلبات موارد "ناقل الخدمة".
أدوار Azure المضمنة لناقل خدمة Azure
تخول Microsoft Entra حقوق الوصول إلى الموارد الآمنة من خلال Azure RBAC. يحدد ناقل خدمة Azure مجموعة من الأدوار المضمنة في Azure التي تشمل مجموعات شائعة من الأذونات المستخدمة للوصول إلى كيانات ناقل خدمة Microsoft Azure. يمكنك أيضا تحديد أدوار مخصصة للوصول إلى البيانات.
عند تعيين دور Azure إلى أساس أمان Microsoft Entra، يمنح Azure الوصول إلى هذه الموارد لكيان الأمان هذا. يمكن تحديد نطاق الوصول إلى مستوى الاشتراك، أو مجموعة الموارد، أو مساحة اسم ناقل الخدمة، أو الكيان (طابور، موضوع، أو اشتراك). يمكن أن يكون أساس أمان Microsoft Entra مستخدما أو مجموعة أو كيان خدمة تطبيق أو هوية مدارة لموارد Azure.
بالنسبة ل Azure Service Bus، يساعد نموذج Azure RBAC في حماية إدارة المساحات الاسمية وجميع الموارد ذات الصلة من خلال بوابة Azure وواجهة برمجة تطبيقات إدارة الموارد الخاصة ب Azure. يوفر Azure الأدوار المضمنة التالية لتخويل الوصول إلى مساحة اسم ناقل خدمة Microsoft Azure:
- ناقل خدمة Azure مالك البيانات: استخدم هذا الدور لمنح حق الوصول الكامل إلى موارد ناقل خدمة Microsoft Azure.
- مرسل بيانات حافلة الخدمة في Azure: استخدم هذا الدور لمنح الوصول إلى مساحة أسماء ناقل الخدمة وكياناتها.
- متلقي بيانات ناقل خدمة Azure: استخدم هذا الدور لمنح الوصول للمتلقي إلى مساحة اسم ناقل الخدمة والكيانات الخاصة به.
نطاق المورد
قبل تعيين دور Azure إلى أساس أمان، حدد نطاق الوصول الذي يجب أن يكون لأساس الأمان. تملي أفضل الممارسات أنه من الأفضل دائما منح أضيق نطاق ممكن فقط.
تصف القائمة التالية المستويات التي يمكنك من خلالها الوصول إلى موارد "ناقل الخدمة"، بدءاً من النطاق الأضيق:
قائمة الانتظار، الموضوع، أو الاشتراك: ينطبق تعيين الدور على كيان حافلة الخدمة المحدد. حاليا، لا يدعم بوابة Azure تعيين المستخدمين أو المجموعات أو الهويات المدارة لأدوار Azure في حافلة الخدمة على مستوى الاشتراك في المواضيع.
مساحة اسم ناقل خدمة Microsoft Azure: يمتد تعيين الدور إلى المخطط بأكمله لناقل خدمة Microsoft Azure ضمن مساحة الاسم وإلى اشتراك قائمة الانتظار أو الموضوع المقترن به.
مجموعة الموارد: ينطبق تعيين الدور على جميع موارد "ناقل الخدمة" ضمن مجموعة الموارد.
اشتراك Azure: ينطبق تعيين الأدوار على جميع موارد ناقل الخدمة في جميع مجموعات الموارد داخل الاشتراك.
ضع في اعتبارك أن تعيينات أدوار Azure قد تستغرق ما يصل إلى خمس دقائق للنشر.
لمزيد من المعلومات حول كيفية تعريف الأدوار المدمجة، راجع فهم تعريفات أدوار Azure. للحصول على معلومات حول إنشاء أدوار Azure المخصصة، راجع أدوار Azure المخصصة.
المصادقة من تطبيق
تتمثل الميزة الرئيسية لاستخدام معرف Microsoft Entra مع ناقل خدمة Microsoft Azure في أن بيانات الاعتماد الخاصة بك لم تعد بحاجة إلى تخزينها في التعليمات البرمجية الخاصة بك. بدلاً من ذلك، يمكنك طلب رمز وصول مميز OAuth 2.0 من النظام الأساسي لـهوية Microsoft.
يقوم Microsoft Entra بمصادقة أساس الأمان (مستخدم أو مجموعة أو كيان خدمة أو هوية مدارة لموارد Azure) الذي يقوم بتشغيل التطبيق. إذا نجح المصادقة، يعيد Microsoft Entra ID رمز الوصول إلى التطبيق. يمكن للتطبيق بعد ذلك استخدام رمز الوصول لتفويض الطلبات إلى Service Bus.
توضح الأقسام التالية كيفية تكوين تطبيقك الأصلي أو تطبيق الويب الخاص بك للمصادقة باستخدام منصة الهوية في مايكروسوفت 2.0. لمزيد من المعلومات حول المنصة، راجع ما هي منصة هوية مايكروسوفت؟
للحصول على نظرة عامة على تدفق منح كود OAuth 2.0، راجع منصة الهوية من مايكروسوفت وتدفق كود تفويض OAuth 2.0.
تسجيل التطبيق الخاص بك مع مستأجر Microsoft Entra
الخطوة الأولى في استخدام معرف Microsoft Entra لتخويل كيانات ناقل خدمة Microsoft Azure هي تسجيل تطبيق العميل الخاص بك مع مستأجر Microsoft Entra من مدخل Microsoft Azure. عند تسجيل تطبيق العميل الخاص بك، تقوم بتزويد Active Directory بمعلومات حول التطبيق. يوفر Microsoft Entra ID معرف عميل (يسمى أيضا معرف التطبيق) يمكنك استخدامه لربط تطبيقك بزمن تشغيل Microsoft Entra. لمعرفة المزيد حول معرف العميل، راجع التطبيق والكائنات الأساسية للخدمة في معرف Microsoft Entra.
لتسجيل تطبيقك باستخدام Microsoft Entra ID، اتبع الخطوات في قسم تسجيل التطبيق في Microsoft Entra ID.
إشعار
إذا سجلت تطبيقك كتطبيق أصلي، يمكنك تحديد أي URI صالح لواجهة إعادة التوجيه. بالنسبة للتطبيقات الأصلية، لا يجب أن تكون هذه القيمة عنوان URL حقيقي. بالنسبة لتطبيقات الويب، يجب أن يكون URI لإعادة التوجيه URI صالحًا، لأنه يحدد عنوان URL الذي يتم توفير الرموز المميزة له.
بعد تسجيل تطبيقك، يظهر معرف التطبيق (العميل)ومعرف الدليل (المستأجر) تحت الإعدادات. دون أن تلاحظ هذه القيم. ستحتاجهم لتشغيل التطبيق.
إنشاء سر عميل
يحتاج التطبيق إلى سر العميل لإثبات هويته عند طلب رمز مميز. لإضافة سر العميل، اتبع هذه الخطوات:
في بوابة Azure، اذهب إلى تسجيل التطبيق إذا لم تكن موجودا بالفعل في الصفحة.
في القائمة اليسرى، اختر الشهادات والأسرار.
ضمن أسرار العميل، حدد سر عميل جديد لإنشاء سر جديد.
قدم وصفا للسر، اختر فترة انتهاء الصلاحية، ثم اختر إضافة.
انسخ فورًا قيمة new secret إلى مكان آمن. القيمة الكاملة تظهر مرة واحدة فقط.
إضافة الأذونات لواجهة برمجة تطبيقات ناقل الخدمة
إذا كان تطبيقك تطبيقا على وحدة التحكم، يجب عليك تسجيل تطبيق أصلي وإضافة صلاحيات API ل Microsoft.ServiceBus إلى مجموعة الأذونات المطلوبة.
تحتاج التطبيقات الأصلية أيضا إلى رابط مستخدم معاد توجيهه في Microsoft Entra ID، والذي يعمل كمعرف. لا يشترط أن يكون URI وجهة شبكة. استخدم https://servicebus.microsoft.com لهذا المثال، لأن نموذج التعليمات البرمجية يستخدم بالفعل هذا الـ URI.
تعيين أدوار Azure عبر بوابة Azure
تعيين أحد أدوار ناقل الخدمة لمبدأ الخدمة الخاص بالتطبيق في النطاق المطلوب (كيان، مساحة اسم ناقل الخدمة، مجموعة الموارد، أو اشتراك Azure). للحصول على خطوات تفصيلية، راجع تعيين أدوار Azure باستخدام مدخل Azure.
بعد تحديد الدور ونطاقه، يمكنك اختبار هذا السلوك باستخدام العينة على GitHub.
مصادقة عميل ناقل الخدمة
بعد تسجيل طلبك ومنحه صلاحيات إرسال/استقبال البيانات في Azure Service Bus، يمكنك التحقق من صحة العميل باستخدام بيانات الاعتماد السرية الخاصة بالعميل. تتيح لك هذه المصادقة تقديم طلبات ضد Azure Service Bus.
للحصول على قائمة بالسيناريوهات التي يدعم الحصول على الرموز لها، راجع قسم السيناريوهات في مكتبة مصادقة مايكروسوفت (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 الأقدم، راجع عينات Azure RBAC لناقل الخدمة على GitHub.
المحتوى ذو الصلة
لمعرفة المزيد حول Azure RBAC، راجع ما هو التحكم في الوصول المستند إلى دور Azure (Azure RBAC)؟.
لتعلم كيفية تعيين وإدارة تعيينات أدوار Azure باستخدام Azure PowerShell، أو Azure CLI، أو واجهة برمجة تطبيقات REST، راجع هذه المقالات:
لمعرفة المزيد عن رسائل حافلة الخدمة، راجع هذه المقالات: