تكامل بوابة التطبيق

تتطلب ثلاثة أشكال مختلفة من Azure App Service تكوينا مختلفا قليلا للتكامل مع Azure Application Gateway. تتضمن الاختلافات خدمة التطبيقات العادية (المعروفة أيضا باسم متعددة المستأجرين)، وبيئة خدمة تطبيق موازن التحميل الداخلي (ILB)، وبيئة خدمة التطبيقات الخارجية.

تتناول هذه المقالة كيفية تكوين Application Gateway باستخدام App Service (متعدد المستأجرين) باستخدام نقاط نهاية الخدمة لتأمين حركة المرور. تتناول المقالة أيضا اعتبارات حول استخدام نقاط النهاية الخاصة والتكامل مع ILB وبيئات App Service الخارجية. وأخيرا، توضح المقالة كيفية تعيين قيود الوصول على موقع إدارة التحكم بالمصادر (SCM).

التكامل مع App Service (متعدد المستأجرين)

تحتوي App Service (متعددة المستأجرين) على نقطة نهاية عامة مواجهة للإنترنت. باستخدام نقاط نهاية الخدمة، يمكنك السماح بنسبة استخدام الشبكة من شبكة فرعية معينة فقط داخل شبكة Azure الظاهرية وحظر كل شيء آخر. في السيناريو التالي، يمكنك استخدام هذه الوظيفة للتأكد من أن مثيل App Service يمكنه تلقي نسبة استخدام الشبكة من بوابة تطبيق معينة فقط.

Diagram that shows the internet flowing to an application gateway in an Azure virtual network and then flowing through a firewall icon to instances of apps in App Service.

هناك جزأان لهذا التكوين، بالإضافة إلى إنشاء مثيل App Service وبوابة التطبيق. الجزء الأول هو تمكين نقاط نهاية الخدمة في الشبكة الفرعية للشبكة الظاهرية حيث يتم نشر بوابة التطبيق. تضمن نقاط نهاية الخدمة وضع علامة على جميع حركة مرور الشبكة التي تغادر الشبكة الفرعية باتجاه App Service بمعرف الشبكة الفرعية المحدد.

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

إعداد الخدمات باستخدام مدخل Microsoft Azure

باستخدام مدخل Microsoft Azure، اتبع أربع خطوات لإنشاء وتكوين إعداد App Service وApplication Gateway. إذا كان لديك موارد موجودة، يمكنك تخطي الخطوات الأولى.

  1. إنشاء مثيل App Service باستخدام إحدى عمليات التشغيل السريع في وثائق App Service. أحد الأمثلة على ذلك هو التشغيل السريع ل .NET Core.
  2. إنشاء بوابة تطبيق باستخدام التشغيل السريع للمدخل، ولكن تخطي القسم حول إضافة أهداف خلفية.
  3. تكوين خدمة التطبيقات كواجهة خلفية في بوابة التطبيق، ولكن تخطي القسم حول تقييد الوصول.
  4. إنشاء تقييد الوصول باستخدام نقاط نهاية الخدمة.

يمكنك الآن الوصول إلى App Service من خلال Application Gateway. إذا حاولت الوصول إلى App Service مباشرة، يجب أن تتلقى خطأ HTTP 403 يفيد بأن تطبيق الويب قد حظر وصولك.

Screenshot shows the text of Error 403 - Forbidden.

إعداد الخدمات باستخدام قالب Azure Resource Manager

ينشئ قالب توزيع Azure Resource Manager سيناريو كاملا. يتكون السيناريو من مثيل App Service مؤمن بنقاط نهاية الخدمة وتقييد الوصول لتلقي نسبة استخدام الشبكة فقط من Application Gateway. يتضمن القالب العديد من الإعدادات الافتراضية الذكية وملفات البريد الفريدة المضافة إلى أسماء الموارد لإبقائه بسيطا. لتجاوزها، يجب عليك استنساخ المستودع أو تنزيل القالب وتحريره.

لتطبيق القالب، يمكنك استخدام الزر Deploy to Azure في وصف القالب. أو يمكنك استخدام التعليمات البرمجية المناسبة ل PowerShell أو Azure CLI.

إعداد الخدمات باستخدام Azure CLI

ينشئ نموذج Azure CLI مثيل App Service مؤمنا بنقاط نهاية الخدمة وتقييد الوصول لتلقي نسبة استخدام الشبكة فقط من بوابة التطبيق. إذا كنت بحاجة فقط إلى عزل نسبة استخدام الشبكة إلى مثيل App Service موجود من بوابة تطبيق موجودة، فاستخدم الأمر التالي:

az webapp config access-restriction add --resource-group myRG --name myWebApp --rule-name AppGwSubnet --priority 200 --subnet mySubNetName --vnet-name myVnetName

في التكوين الافتراضي، يضمن الأمر إعداد تكوين نقطة نهاية الخدمة في الشبكة الفرعية وتقييد الوصول في App Service.

اعتبارات استخدام نقاط النهاية الخاصة

كبديل لنقاط نهاية الخدمة، يمكنك استخدام نقاط النهاية الخاصة لتأمين نسبة استخدام الشبكة بين Application Gateway وApp Service (متعدد المستأجرين). تحتاج إلى التأكد من أن بوابة التطبيق يمكنها استخدام DNS لحل عنوان IP الخاص لتطبيقات App Service. بدلا من ذلك، يمكنك استخدام عنوان IP الخاص في التجمع الخلفي وتجاوز اسم المضيف في إعدادات HTTP.

Diagram that shows traffic flowing to an application gateway in an Azure virtual network and then flowing through a private endpoint to instances of apps in App Service.

تقوم بوابة التطبيق بالتخزين المؤقت لنتائج بحث DNS. إذا كنت تستخدم أسماء مجالات مؤهلة بالكامل (FQDNs) وتعتمد على بحث DNS للحصول على عنوان IP الخاص، فقد تحتاج إلى إعادة تشغيل بوابة التطبيق إذا حدث تحديث DNS أو الارتباط إلى منطقة DNS الخاصة ب Azure بعد تكوين تجمع الواجهة الخلفية.

لإعادة تشغيل بوابة التطبيق، أوقفها وابدأ تشغيلها باستخدام Azure CLI:

az network application-gateway stop --resource-group myRG --name myAppGw
az network application-gateway start --resource-group myRG --name myAppGw

اعتبارات بيئة خدمة تطبيق ILB

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

إذا كنت تريد التأكد من أن نسبة استخدام الشبكة فقط من الشبكة الفرعية لبوابة التطبيق تصل إلى App Service Environment، يمكنك تكوين مجموعة أمان شبكة (NSG) تؤثر على جميع تطبيقات الويب في App Service Environment. بالنسبة إلى NSG، يمكنك تحديد نطاق IP للشبكة الفرعية واختياريا المنافذ (80/443). لكي تعمل App Service Environment بشكل صحيح، تأكد من عدم تجاوز قواعد NSG المطلوبة.

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

اعتبارات بيئة خدمة التطبيقات الخارجية

تحتوي بيئة App Service الخارجية على موازن تحميل عام مثل خدمة التطبيقات متعددة المستأجرين. لا تعمل نقاط نهاية الخدمة لبيئة خدمة التطبيقات. لهذا السبب يجب عليك استخدام قيود الوصول المستندة إلى IP باستخدام عنوان IP العام لبوابة التطبيق. لإنشاء بيئة خدمة تطبيقات خارجية باستخدام مدخل Microsoft Azure، يمكنك اتباع هذا التشغيل السريع.

اعتبارات موقع Kudu/SCM

موقع SCM، المعروف أيضا باسم Kudu، هو موقع مسؤول موجود لكل تطبيق ويب. لا يمكن استخدام الوكيل العكسي لموقع SCM. على الأرجح تريد أيضا تأمينه إلى عناوين IP فردية أو شبكة فرعية معينة.

إذا كنت تريد استخدام نفس قيود الوصول مثل الموقع الرئيسي، يمكنك وراثة الإعدادات باستخدام الأمر التالي:

az webapp config access-restriction set --resource-group myRG --name myWebApp --use-same-restrictions-for-scm-site

إذا كنت تريد إضافة قيود وصول فردية لموقع SCM، يمكنك استخدام العلامة --scm-site :

az webapp config access-restriction add --resource-group myRG --name myWebApp --scm-site --rule-name KudoAccess --priority 200 --ip-address 208.130.0.0/16

اعتبارات استخدام المجال الافتراضي

تكوين بوابة التطبيق لتجاوز اسم المضيف واستخدام المجال الافتراضي لخدمة التطبيقات (عادة azurewebsites.net) هو أسهل طريقة لتكوين التكامل. لا يتطلب تكوين مجال مخصص وشهادة في App Service.

تتناول هذه المقالة الاعتبارات العامة لتجاوز اسم المضيف الأصلي. في App Service، هناك سيناريوهان حيث تحتاج إلى الانتباه مع هذا التكوين.

المصادقة

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

للتغلب على إعادة التوجيه الافتراضية، يمكنك تكوين المصادقة لفحص رأس معاد توجيهه وتكييف مجال إعادة التوجيه إلى المجال الأصلي. تستخدم بوابة التطبيق عنوانا يسمى X-Original-Host. باستخدام التكوين المستند إلى الملف لتكوين المصادقة، يمكنك تكوين App Service للتكيف مع اسم المضيف الأصلي. أضف هذا التكوين إلى ملف التكوين الخاص بك:

{
    ...
    "httpSettings": {
        "forwardProxy": {
            "convention": "Custom",
            "customHostHeaderName": "X-Original-Host"
        }
    }
    ...
}

ترابط ARR

في عمليات النشر متعددة المثيلات، يضمن ترابط ARR توجيه طلبات العميل إلى نفس المثيل طوال مدة جلسة العمل. لا يعمل ترابط ARR مع تجاوزات اسم المضيف. لكي يعمل ترابط الجلسة، يجب عليك تكوين مجال وشهادة مخصصين متطابقين في App Service وفي Application Gateway وعدم تجاوز اسم المضيف.

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

لمزيد من المعلومات حول App Service Environments، راجع وثائق App Service Environment.

لمزيد من الأمان لتطبيق الويب الخاص بك، يمكنك العثور على معلومات حول Azure Web Application Firewall على Application Gateway في وثائق Azure Web Application Firewall.

لنشر موقع آمن ومرنة مع مجال مخصص على App Service باستخدام إما Azure Front Door أو Application Gateway، راجع هذا البرنامج التعليمي.