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

يدعم Azure Relay استخدام معرف Microsoft Entra لتخويل الطلبات إلى كيانات Azure Relay (الاتصال المختلطة، وWCF Relays). باستخدام معرف Microsoft Entra، يمكنك استخدام التحكم في الوصول المستند إلى الدور Azure (Azure RBAC) لمنح أذونات لأساس أمان، والذي قد يكون مستخدما أو مجموعة أو مدير خدمة تطبيق. لمعرفة المزيد حول الأدوار وتعيينات الأدوار، يرجى مراجعة فهم الأدوار المختلفة.

إشعار

تتوفر هذه الميزة بشكل عام في جميع المناطق باستثناء Microsoft Azure المشغل بواسطة 21Vianet.

نظرة عامة

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

  1. أولا، تتم مصادقة هوية أساس الأمان، ويتم إرجاع رمز OAuth 2.0 المميز. اسم المورد لطلب رمز مميز هو https://relay.azure.net. إذا كان أحد التطبيقات قيد التشغيل داخل كيان Azure مثل Azure VM أو مجموعة مقياس الجهاز الظاهري أو تطبيق Azure Function، فيمكنه استخدام هوية مدارة للوصول إلى الموارد.
  2. بعد ذلك، يتم تمرير الرمز المميز كجزء من طلب إلى خدمة Relay لتخويل الوصول إلى المورد المحدد (الاتصالات المختلطة، ترحيلات WCF). تخول Microsoft Entra حقوق الوصول إلى الموارد الآمنة من خلال التحكم في الوصول المستند إلى الدور Azure (Azure RBAC). يحدد Azure Relay مجموعة من الأدوار المضمنة في Azure التي تشمل مجموعات شائعة من الأذونات المستخدمة للوصول إلى كيانات الترحيل. يمكنك أيضا تحديد أدوار مخصصة للوصول إلى البيانات. للحصول على قائمة بالأدوار المضمنة التي يدعمها Azure Relay، راجع أدوار Azure المضمنة ل Azure Relay. يمكن أيضا للتطبيقات الأصلية وتطبيقات الويب التي تقدم طلبات إلى Relay التخويل باستخدام معرف Microsoft Entra.

أدوار Azure المضمنة ل Azure Relay

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

الدور ‏‏الوصف
مالك Azure Relay استخدم هذا الدور لمنح حق الوصول الكامل إلى موارد Azure Relay.
مستمع Azure Relay استخدم هذا الدور لمنح حق الوصول إلى قراءة الكيان والاستماع إلى موارد Azure Relay.
مرسل ترحيل Azure استخدم هذا الدور لمنح وصول الإرسال وقراءة الكيان إلى موارد Azure Relay.

نطاق المورد

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

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

  • كيانات الترحيل: ينطبق تعيين الدور على كيان ترحيل معين مثل اتصال مختلط أو ترحيل WCF.
  • مساحة اسم الترحيل: ينطبق تعيين الدور على كافة كيانات الترحيل ضمن مساحة الاسم.
  • مجموعة الموارد: ينطبق تعيين الدور على جميع موارد الترحيل ضمن مجموعة الموارد.
  • الاشتراك: ينطبق تعيين الدور على جميع موارد الترحيل في جميع مجموعات الموارد في الاشتراك.

إشعار

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

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

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

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

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

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

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

للحصول على إرشادات خطوة بخطوة لتسجيل التطبيق الخاص بك باستخدام معرف Microsoft Entra، راجع التشغيل السريع: تسجيل تطبيق باستخدام معرف Microsoft Entra.

هام

دون معرف الدليل (المستأجر) ومعرف التطبيق (العميل). ستحتاج إلى هذه القيم لتشغيل نموذج التطبيق.

إنشاء سر عميل

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

هام

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

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

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

تشغيل تطبيق العرض التوضيحي

  1. قم بتنزيل نموذج تطبيق وحدة التحكم من GitHub.

  2. قم بتشغيل التطبيق محليا على الكمبيوتر الخاص بك وفقا للإرشادات الواردة من مقالة README.

    إشعار

    اتبع نفس الخطوات لتشغيل نموذج تطبيق وحدة التحكم ل WCF Relay.

التعليمات البرمجية المميزة من النموذج

إليك التعليمات البرمجية من العينة التي توضح كيفية استخدام مصادقة Microsoft Entra للاتصال بخدمة Azure Relay.

  1. إنشاء كائن TokenProvider باستخدام TokenProvider.CreateAzureActiveDirectoryTokenProvider الأسلوب .

    إذا لم تكن قد أنشأت تسجيل تطبيق بالفعل، فشاهد قسم تسجيل التطبيق الخاص بك باستخدام معرف Microsoft Entra لإنشائه، ثم قم بإنشاء سر عميل كما هو مذكور في قسم إنشاء سر العميل.

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

    1. قم بتسجيل الدخول إلى بوابة Azure.
    2. ابحث عن Microsoft Entra ID وحدده باستخدام شريط البحث في الأعلى.
    3. في صفحة Microsoft Entra ID ، حدد App registrations في قسم Manage في القائمة اليسرى.
    4. حدد تسجيل التطبيق الخاص بك.
    5. في صفحة تسجيل التطبيق، سترى قيم معرف التطبيق (العميل) ومعرف الدليل (المستأجر).

    للحصول على سر العميل، اتبع الخطوات التالية:

    1. في الصفحة تسجيل التطبيق، حدد الشهادات والأسرار في القائمة اليسرى.
    2. استخدم زر النسخ في عمود القيمة للسر في قسم أسرار العميل.
    static TokenProvider GetAadTokenProvider(string clientId, string tenantId, string clientSecret)
    {
        return TokenProvider.CreateAzureActiveDirectoryTokenProvider(
            async (audience, authority, state) =>
            {
                IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create(clientId)
                    .WithAuthority(authority)
                    .WithClientSecret(clientSecret)
                    .Build();
    
                var authResult = await app.AcquireTokenForClient(new [] { $"{audience}/.default" }).ExecuteAsync();
                return authResult.AccessToken;
            },
            $"https://login.microsoftonline.com/{tenantId}");
    }
    
  2. إنشاء كائن Hybrid الاتصال ionListener أو Hybrid الاتصال ionClient عن طريق تمرير URI للاتصال المختلط وموفر الرمز المميز الذي أنشأته في الخطوة السابقة.

    المستمع:

    var listener = new HybridConnectionListener(hybridConnectionUri, tokenProvider);    
    

    المرسل:

    var sender = new HybridConnectionClient(hybridConnectionUri, tokenProvider);    
    

العينات

  • الاتصال المختلطة: .NET وJava وJavaScript
  • WCF Relay: .NET

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

لمعرفة المزيد حول Azure Relay، راجع الموضوعات التالية.