الاتصال المختلطة لخدمة تطبيقات Azure

Hybrid Connections هي خدمة في Azure وميزة في Azure App Service. كخدمة، لديها استخدامات وقدرات تتجاوز تلك المستخدمة فـي App Service. لمعرفة المزيد حول Hybrid Connections واستخدامها خارج App Service، راجع Azure Relay Hybrid Connections.

داخل App Service، يمكن استخدام Hybrid Connections للوصول إلى موارد التطبيق في أي شبكة يمكنها إجراء مكالمات صادرة إلى Azure عبر المنفذ 443. توفر Hybrid Connections الوصول من تطبيقك إلى نقطة نهاية TCP ولا تمكِّن طريقة جديدة للوصول إلى تطبيقك. كما هو مستخدم في خدمة التطبيقات، يرتبط كل Hybrid Connection بمضيف TCP واحد ومجموعة منفذ. تمكن هذه الميزة تطبيقاتك من الوصول إلى الموارد على أي نظام تشغيل، شريطة أن تكون نقطة نهاية TCP. لا تعرف ميزة «Hybrid Connections» أو تهتم ببروتوكول التطبيق أو ما تقوم بالوصول إليه. إنها ببساطة توفر الوصول إلـى الشبكة.

كيفية عمله

تتطلب الاتصال المختلطة توزيع عامل ترحيل حيث يمكنه الوصول إلى كل من نقطة النهاية المطلوبة وAzure. يستدعي عامل الترحيل، Hybrid Connection Manager (HCM)، إلى Azure Relay عبر المنفذ 443. من موقع تطبيق الويب، تتصل البنية الأساسية لخدمة التطبيقات أيضًا بـ Azure Relay نيابة عن التطبيق الخاص بك. من خلال الاتصالات المنضمة، يُمكن لتطبيقك الوصول إلى نقطة النهاية المطلوبة. يستخدم الاتصال TLS 1.2 لمفاتيح الأمان وتوقيع الوصول المُشترك (SAS) للمصادقة والتخويل.

Diagram of Hybrid Connection high-level flow.

عندما يقوم تطبيقك بإجراء طلب DNS يطابق نقطة نهاية الاتصال المختلطة المكونة، تتم إعادة توجيه حركة مرور TCP الصادرة من خلال الاتصال Hybrid.

إشعار

هذا يعني أنه يجب أن تحاول دائمًا استخدام اسم DNS لـ Hybrid Connection. لا تقوم بعض برامج العميل بالبحث عن DNS إذا كانت نقطة النهاية تستخدم عنوان IP بدلاً من ذلك.

ميزات App Service Hybrid Connection

هناك العديد من الفوائد لقدرة الاتصال المختلطة، بما في ذلك:

  • يمكن للتطبيقات الوصول إلى الأنظمة والخدمات المَحلية بأمان.
  • لا تتطلب الميزة نقطة نهاية يُمكن الوصول إليها عبر الإنترنت.
  • إنه إعداد سريع وسهل. لا توجد بوابات مَطلوبة.
  • يتطابق كل Hybrid Connection مع مجموعة مضيف:منفذ واحدة، مفيدة للأمان.
  • لا يتطلب عادةً فتحات في جدار الحماية. جميع الاتصالات صادرة عبر منافذ الويب القياسية.
  • نظرًا إلى أن الميزة على مستوى الشبكة، فهي غير محددة للغة المستخدمة مـن قبل تطبيقك والتقنية المستخدمة من قبل نقطة النهاية.
  • يمكن استخدامه لتوفير الوصول فـي شبكات متعددة من تطبيق واحد.
  • مدعوم في GA لتطبيقات Windows وتطبيقات Linux. وهو غير مدعوم للحاويات المخصصة لـ Windows.

أشياء لا يمكنك القيام بها باستخدام الاتصال المختلطة

تتضمن الأشياء التي لا يمكنك القيام بها باستخدام hybrid الاتصال ions ما يلي:

  • تركيب مُحرك أقراص.
  • استَخدم UDP.
  • الوصول إلى الخدمات المُستندة إلى TCP التي تستخدم المنافذ الديناميكية، مثل وضع FTP الخامل أو الوضع الخامل الموسع.
  • دعم LDAP، لأنه يُمكن أن يتطلب UDP.
  • دعم Active Directory، لأنه لا يمكنك الانضمام إلى مجال عامل App Service.

إضافة Hybrid Connections وإنشاءها في تطبيقك

لإنشاء Hybrid Connection، انتقل إلى مدخل Microsoft Azure وحدد تطبيقك. حدد شبكة> تكوين نقاط نهاية Hybrid Connection. يُمكنك هنا رؤية Hybrid Connections التي تم تكوينها لتطبيقك.

Screenshot of Hybrid Connection list.

لإضافة اتصال مختلط جديد، حدد [+] Add Hybrid Connection. ترى قائمة الاتصال المختلطة التي قمت بإنشائها بالفعل. لإضافة واحد أو أكثر إلى تطبيقك، حدد تلك التي تريدها، ثم حدد Add selected Hybrid Connection.

Screenshot of Hybrid Connection portal.

إذا كنت تريد إنشاء Hybrid Connection جديد، فحدد إنشاء Hybrid Connection جديد. حـدد:

  • اسم Hybrid Connection.
  • اسم مُضيف نقطة النهاية.
  • منفذ نقطة النهاية.
  • مساحة اسم ناقل خدمة Microsoft Azure التي تُريد استخدامها.

Screenshot of Create new hybrid connection dialog box.

يرتبط كل Hybrid Connection بمساحة اسم ناقل خدمة Microsoft Azure، وكل مساحة اسم لناقل خدمة Microsoft Azure موجودة في منطقة Azure. من المهم محاولة استخدام مساحة اسم ناقل خدمة Microsoft Azure في نفس المنطقة مثل تطبيقك، لتجنب زمن الانتقال الناجم عن الشبكة.

إذا كنت تريد إزالة Hybrid Connection من تطبيقك، فانقر بزر الماوس الأيمن فوقه وحدد Disconnect.

عند إضافة Hybrid Connection إلى تطبيقك، يمكنك مشاهدة تفاصيل عنه ببساطة عن طريق تحديده.

Screenshot of Hybrid connections details.

إنشاء Hybrid Connection في مدخل Azure Relay

بالإضافة إلى تجربة المدخل من داخل تطبيقك، يمكنك إنشاء اتصالات مُختلطة من داخل مدخل Azure Relay. لكي يتم استخدام Hybrid Connection من App Service، يجب القيام بما يلي:

  • طـلب تخويل العميل.
  • لديك عنصر بيانات تعريف ونقطة نهاية مسماة تحتوي على مجموعة مضيف:منفذ كقيمة.

Hybrid Connections وخطط App Service

App Service Hybrid Connections فقط فـي وحدات SKU للتسعير الأساس والقياسي والمتميزة والمعزولة. لا تتوفر Hybrid Connections لتطبيقات الوظائف في خطط الاستهلاك. هناك حدود مُرتبطة بخطة التسعير.

خطة الأسعار عدد Hybrid Connections القابلة للاستخدام في الخطة
أساسي 5 لكل خطة
قياسي 25 لكل خطة
Premium (v1-v3) 220 لكل تطبيق
مَعزول (v1-v2) 220 لكل تطبيق

تعرض لك واجهة مستخدم خطة App Service عدد Hybrid Connections التي يتم استخدامها والتطبيقات.

Screenshot of App Service plan properties.

حدد Hybrid Connection للاطلاع على التفاصيل. يُمكنك مشاهدة جميع المعلومات التي شاهدتها في طريقة عرض التطبيق. يمكنك أيضًا معرفة عدد التطبيقات الأخرى في نفس الخطة التي تستخدم هذا Hybrid Connection.

هناك حد لعدد نقاط نهاية Hybrid Connection التي يُمكن استخدامها في خطة App Service. مع ذلك، يمكن استخدام كل Hybrid Connection مُستخدم عبر أي عدد من التطبيقات في تلك الخطة. على سبيل المثال، يتم حساب Hybrid Connection واحد يستخدم في خمسة تطبيقات منفصلة في خطة App Service كـ Hybrid Connection واحد.

التسعير

بالإضافة إلى وجود متطلبات SKU لخطة App Service، هناك تكلفة إضافية لاستخدام الاتصال المختلطة. توجد رسوم لكل وحدة استماع يستخدمها Hybrid Connection. وحدة الاستماع هي Hybrid Connection Manager. إذا كان لديك خمسة Hybrid Connections مدعومة من قبل اثنين من مدراء Hybrid Connection، فسيكون ذلك 10 وحدات استماع. لمزيد من المعلومات، راجع أسعار ناقل خدمة Microsoft Azure.

مدير Hybrid Connection

تتطلب ميزة Hybrid Connections عامل ترحيل في الشبكة التي تستضيف نقطة نهاية Hybrid Connection. يسمى عامل الترحيل هذا Hybrid Connection Manager (HCM). لتنزيل HCM، من تطبيقك في مدخل Microsoft Azure، حدد Networking>تكوين نقاط نهاية Hybrid Connection الخاص بك.

تعمل هذه الأداة على Windows Server 2012 والأحدث. يعمل HCM كخدمة ويتصل الصادر بـ Azure Relay على المنفذ 443.

بعد تثبيت HCM، يُمكنك تشغيل HybridConnectionManagerUi.exe لاستخدام واجهة المستخدم للأداة. هذا الملف موجود في دليل تثبيت Hybrid Connection Manager. في Windows 10، لا يُمكنك أيضًا البحث سوى عن واجهة مستخدم Hybrid Connection Manager في مربع البحث.

Screenshot of Hybrid Connection Manager.

عند بدء تشغيل واجهة مستخدم HCM، أول شيء تراه هو جدول يسرد كافة Hybrid Connections التي تم تكوينها مع هذا المثيل من HCM. إذا كنت ترغب في إجراء أي تغييرات، فصادق أولاً مع Azure.

لإضافة Hybrid Connection واحد أو أكثر إلى HCM:

  1. بدء تشغيل واجهة مُستخدم HCM.

  2. حدد إضافة Hybrid Connection. Screenshot of Configure New Hybrid Connections.

  3. سجل الدخول باستخدام حساب Azure الخاص بك للحصول على Hybrid Connections المتوفرة مع اشتراكاتك. لا يستمر HCM في استخدام حساب Azure الخاص بك بعد هذه الخطوة.

  4. اختر اشتراكاً.

  5. حدد Hybrid Connections التي تريد أن يقوم HCM بترحيلها. Screenshot of Hybrid Connections.

  6. حدد حفظ.

يمكنك الآن رؤية Hybrid Connections التي أضفتها. يمكنك أيضًا تحديد Hybrid Connection المكون لمشاهدة التفاصيل.

Screenshot of Hybrid Connection Details.

لدعم Hybrid Connections التي تم تكوينها باستخدامها، يتطلب HCM:

  • وصول TCP إلـى Azure عبر المنفذ 443.
  • وصول TCP إلى نقطة نهاية Hybrid Connection.
  • القدرة على إجراء عمليات بحث DNS على مُضيف نقطة النهاية ومساحة اسم ناقل خدمة Microsoft Azure. بمعنى آخر، يجب أن يكون اسم المضيف في اتصال ترحيل Azure قابلاً للحل مـن الجهاز الذي يستضيف HCM.

إشعار

يعتمد Azure Relay على مآخذ ويب لـلاتصال. تتوفر هـذه الإمكانية على Windows Server 2012 أو إصدار أحدث فحسب. وبسبب ذلك، HCM غير معتمد على أي شيء أقدم من Windows Server 2012.

التكرار

يمكن لكل HCM دعم Hybrid Connections متعددة. أيضًا، يمكن دعم أي Hybrid Connection معين من قبل HCMs متعددة. السلوك الافتراضي هـو توجيه نسبة استخدام الشبكة عبر HCMs المكونة لأي نقطة نهاية معينة. إذا كنت تريد توفرًا عاليًا على Hybrid Connections من شبكتك، فقم بتشغيل HCMs متعددة على أجهزة منفصلة. خوارزمية توزيع التحميل المُستخدمة من خدمة الترحيل لتوزيع نسبة استخدام الشبكة إلى HCMs هي تعيين عشوائي.

إضافة Hybrid Connection يدويًا

لتمكين شخص خارج اشتراكك من استضافة مثيل HCM لـ Hybrid Connection معين، شارك سلسلة اتصال البوابة لـ Hybrid Connection معه. يمكنك مشاهدة سلسلة اتصال البوابة في خصائص Hybrid Connection في مدخل Microsoft Azure. لاستخدام هذه السلسلة، حدد Enter Manually في HCM، وقم بالصق في سلسلة اتصال البوابة.

Manually add a Hybrid Connection.

إصلاح

هناك تحديثات دورية Hybrid Connection Manager لإصلاح المشكلات أو توفير تحسينات. عند إصدار الترقيات، تظهر نافذة منبثقة في واجهة مستخدم HCM. تطبيق الترقية يطبق التغييرات ويعيد تشغيل HCM.

إضافة Hybrid Connection إلى تطبيقك برمجيًا

يوجد دعم Azure CLI لـ Hybrid Connections. تعمل الأوامر المقدمة على مُستوى كل من التطبيق وخطة App Service. أوامر مُستوى التطبيق هي كما يلي:

az webapp hybrid-connection

Group
    az webapp hybrid-connection : Methods that list, add and remove hybrid-connections from webapps.
        This command group is in preview. It may be changed/removed in a future release.
Commands:
    add    : Add a hybrid-connection to a webapp.
    list   : List the hybrid-connections on a webapp.
    remove : Remove a hybrid-connection from a webapp.

تمكنك أوامر خطة App Service من تعيين المفتاح الذي يستخدمه اتصال مختلط معين. هناك مفتاحان معينان على كل Hybrid Connection، أساسي وثانوي. يُمكنك اختيار استخدام المفتاح الأساسي أو الثانوي مع الأوامر أدناه. يمكنك هذا الخيار من تبديل المفاتيح عندما تريد إعادة إنشاء المفاتيح بشكل دوري.

az appservice hybrid-connection --help

Group
    az appservice hybrid-connection : A method that sets the key a hybrid-connection uses.
        This command group is in preview. It may be changed/removed in a future release.
Commands:
    set-key : Set the key that all apps in an appservice plan use to connect to the hybrid-
                connections in that appservice plan.

تأمين Hybrid Connections

يمكن إضافة Hybrid Connection موجود إلى تطبيقات ويب أخرى لخدمة التطبيقات من أي مستخدم لديه أذونات كافية على ناقل خدمة Azure Relay الأساس. وهذا يعني أنه إذا كان يجب عليك منع الآخرين من إعادة استخدام نفس الاتصال Hybrid (على سبيل المثال عندما يكون المورد الهدف عبارة عن خدمة لا تحتوي على أي تدابير أمان أخرى لمنع الوصول غير المصرح به)، فيجب عليك تأمين الوصول إلى ناقل خدمة Azure Relay.

يمكن لأي شخص لديه Reader حق الوصول إلى الترحيل رؤية الاتصال المختلط عند محاولة إضافته إلى تطبيق الويب الخاص به في مدخل Microsoft Azure، ولكن لا يمكنه إضافته لأنه يفتقر إلى الأذونات لاسترداد سلسلة الاتصال المستخدمة لإنشاء اتصال الترحيل. لإضافة Hybrid Connection بنجاح، يجب أن يكون لديهم listKeys الإذن (Microsoft.Relay/namespaces/hybridConnections/authorizationRules/listKeys/action). Contributor يسمح الدور أو أي دور آخر يتضمن هذا الإذن على الترحيل للمستخدمين باستخدام الاتصال المختلط وإضافته إلى تطبيقات الويب الخاصة بهم.

إدارة Hybrid Connections الخاصة بك

إذا كنت بحاجة إلى تغيير مضيف نقطة النهاية أو منفذ الاتصال مختلط، فاتبع الخطوات التالية:

  1. قم بإزالة Hybrid Connection من Hybrid Connection Manager على الجهاز المحلي عن طريق تحديد الاتصال وتحديد Remove في الجزء العلوي الأيسر من نافذة تفاصيل Hybrid Connection.
  2. افصل Hybrid Connection عن خدمة التطبيقات الخاصة بك عن طريق الانتقال إلى Hybrid Connections في صفحة App Service Networking.
  3. انتقل إلى ترحيل لنقطة النهاية التي تحتاج إلى تحديثها وحدد Hybrid Connections ضمن Entities في قائمة التنقل اليسرى.
  4. حدد Hybrid Connection الذي تريد تحديثه وحدد Properties ضمن الإعدادات في قائمة التنقل اليسرى.
  5. قم بإجراء التغييرات واضغط Save changes في الأعلى.
  6. ارجع إلى إعدادات Hybrid Connections لـ App Service الخاصة بك وأضف Hybrid Connection مرة أخرى. تأكد من تحديث نقطة النهاية كما هـو مطلوب. إذا لم تتمكن من رؤية Hybrid Connection في القائمة، فقم بالتحديث في غضون 5-10 دقائق.
  7. ارجع إلى Hybrid Connection Manager على الجهاز المَحلي وأضف الاتصال مرة أخرى.

استكشاف الأخطاء وإصلاحها

تعني حالة «متصل» أنه تم تكوين HCM واحد على الأقل مع هذا Hybrid Connection، وأنه قادر على الوصول إلى Azure. إذا كانت حالة Hybrid Connection لا تشير إلى متصل، فلن يتم تكوين Hybrid Connection على أي HCM لديه حق الوصول إلـى Azure. عندما يظهر HCM الخاص بك غير الاتصال، هناك بعض الأشياء التي يجب التحقق منها:

  • هـل لدى مضيفك حق الوصول الصادر إلى Azure على المنفذ 443؟ يُمكنك الاختبار من مضيف HCM باستخدام أمر PowerShell Test-NetConnection Destination -P Port

  • هل من المُحتمل أن يكون HCM الخاص بك في حالة سيئة؟ حاول إعادة تشغيل الخدمة المحلية «Azure Hybrid Connection Manager Service».

  • هل لديك برامج متعارضة مُثبتة؟ لا يمكن أن يتعايش Hybrid الاتصال ion Manager مع Biztalk Hybrid الاتصال ion Manager أو Service Bus ل Windows Server. عند تثبيت HCM، يجب إزالة أي إصدارات من هذه الحزم أولا.

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

    • يمكنك العثور على عنوان URL لنقطة نهاية ناقل خدمة Microsoft Azure في واجهة مستخدم Hybrid الاتصال ion Manager.

    Screenshot of Hybrid Connection Service Bus endpoint.

    • بوابات ناقل خدمة Microsoft Azure هي الموارد التي تقبل الطلب في الاتصال المختلط وتمريره عبر Azure Relay. تحتاج إلى السماح بقائمة جميع البوابات ال 128. البوابات بتنسيق G#-prod-[stamp]-sb.servicebus.windows.net حيث "#" هو رقم بين 0 و127 و"الطابع" هو اسم المثيل داخل مركز بيانات Azure حيث توجد نقطة نهاية ناقل خدمة Microsoft Azure.
      • إذا كان بإمكانك استخدام حرف بدل، يمكنك السماح بقائمة "*.servicebus.windows.net".

      • إذا لم تتمكن من استخدام حرف بدل، يجب السماح بقائمة جميع البوابات ال 128.

        يمكنك معرفة الطابع باستخدام "nslookup" على عنوان URL لنقطة نهاية ناقل خدمة Microsoft Azure.

        Screenshot of terminal showing where to find the stamp name for the Service Bus.

        في هذا المثال، الطابع هو "sn3-010". للسماح بقائمة بوابات ناقل خدمة Microsoft Azure، تحتاج إلى الإدخالات التالية:

        G0-prod-sn3-010-sb.servicebus.windows.net
        G1-prod-sn3-010-sb.servicebus.windows.net
        G2-prod-sn3-010-sb.servicebus.windows.net
        G3-prod-sn3-010-sb.servicebus.windows.net
        ...
        G126-prod-sn3-010-sb.servicebus.windows.net
        G127-prod-sn3-010-sb.servicebus.windows.net

إذا كانت حالتك تشير إلى الاتصال ولكن يتعذر على تطبيقك الوصول إلى نقطة النهاية الخاصة بك، فعندئذ:

  • تأكد من استخدام اسم DNS في الاتصال المختلط. إذا كنت تستخدم عنوان IP، فقد لا يحدث البحث عن DNS للعميل المطلوب. إذا لم يقم العميل الذي يعمل في تطبيق الويب الخاص بك بالبحث عن DNS، فلن يعمل الاتصال Hybrid.
  • تحقق من أن اسم DNS المستخدم في الاتصال المختلط يمكن حله من مضيف HCM. تحقق من الدقة باستخدام nslookup EndpointDNSname حيث EndpointDNSname هو تطابق تام مع ما يتم استخدامه في تعريف Hybrid Connection.
  • اختبر الوصول من مضيف HCM إلى نقطة النهاية باستخدام أمر PowerShell Test-Net الاتصال ion EndpointDNSname -P Port إذا لم تتمكن من الوصول إلى نقطة النهاية من مضيف HCM الخاص بك، فتحقق من جدران الحماية بين المضيفين بما في ذلك أي جدران حماية مستندة إلى المضيف على المضيف الوجهة.
  • إذا كنت تستخدم App Service على Linux، فتأكد من أنك لا تستخدم "المضيف المحلي" كمضيف نقطة النهاية. بدلاً من ذلك، استخدم اسم جهازك إذا كنت تحاول إنشاء اتصال بمورد على جهازك المحلي.

في App Service، يمكن استدعاء أداة سطر الأوامر tcpping مـن وحدة تحكم الأدوات المتقدمة (Kudu). يُمكن أن تخبرك هذه الأداة ما إذا كان لديك حق الوصول إلى نقطة نهاية TCP، ولكنها لا تعلمك إذا كان لديك حق الوصول إلى نقطة نهاية Hybrid Connection. عند استخدام الأداة فـي وحدة التحكم مقابل نقطة نهاية Hybrid Connection، فإنك تؤكد أنها تستخدم مجموعة مضيف:منفذ فحسب.

إذا كان لديك عميل سطر أوامر لنقطة النهاية الخاصة بك، فيُمكنك اختبار الاتصال مـن وحدة تحكم التطبيق. على سبيل المثال، يُمكنك اختبار الوصول إلى نقاط نهاية خادم الويب باستخدام curl.