مشاركة عبر


إعداد قيود الوصول إلى Azure App Service

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

تعمل إمكانية تقييد الوصول مع جميع أحمال العمل المستضافة على Azure App Service. يمكن أن تتضمن أحمال العمل تطبيقات الويب وتطبيقات واجهة برمجة التطبيقات وتطبيقات Linux وحاويات Linux المخصصة وتطبيقات Azure Functions.

عندما يقدم شخص ما طلبا إلى تطبيقك، FROM يتم تقييم العنوان مقابل القواعد الموجودة في قائمة قيود الوصول. FROM إذا كان العنوان في شبكة فرعية تم تكوينها مع نقاط نهاية الخدمة إلى Microsoft.Web، تتم مقارنة الشبكة الفرعية المصدر بقواعد الشبكة الظاهرية في قائمة قيود الوصول. إذا لم يكن العنوان مسموحا بالوصول استنادا إلى القواعد الموجودة في القائمة، فإن الخدمة ترد برمز حالة HTTP 403.

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

تستخدم القدرة على تقييد الوصول إلى تطبيق الويب الخاص بك من شبكة Azure الظاهرية نقاط نهاية الخدمة. باستخدام نقاط نهاية الخدمة، يمكنك تقييد الوصول إلى خدمة متعددة المستأجرين من الشبكات الفرعية المحددة. لا يعمل على تقييد حركة المرور إلى التطبيقات التي تتم استضافتها في بيئة خدمة التطبيقات. إذا كنت في App Service Environment، يمكنك التحكم في الوصول إلى تطبيقك من خلال تطبيق قواعد عنوان IP.

‏‫ملاحظة

يجب تمكين نقاط نهاية الخدمة على جانب الشبكات وخدمة Azure التي يتم تمكينها بها. للحصول على قائمة بخدمات Azure التي تدعم نقاط نهاية الخدمة، راجع نقاط نهاية خدمة الشبكة الظاهرية.

رسم تخطيطي يوضح تدفق قيود الوصول.

إدارة قواعد تقييد الوصول في المدخل

لإضافة قاعدة تقييد الوصول إلى تطبيقك:

  1. قم بتسجيل الدخول إلى بوابة Azure.

  2. حدد التطبيق الذي تريد إضافة قيود الوصول إليه.

  3. في القائمة اليمنى، حدد Settings>Networking.

  4. في جزء Networking ، ضمن Inbound traffic configuration، حدد إعداد Public network access .

    لقطة شاشة لجزء خيارات شبكة App Service في مدخل Microsoft Azure.

  5. في جزء قيود الوصول ، راجع قائمة قواعد تقييد الوصول المحددة لتطبيقك.

    لقطة شاشة لجزء قيود الوصول في مدخل Microsoft Azure، تعرض قائمة قواعد تقييد الوصول المحددة للتطبيق المحدد.

    تعرض القائمة القيود المطبقة حاليا على التطبيق. إذا كان لديك قيود على الشبكة الظاهرية على تطبيقك، يوضح الجدول ما إذا كانت نقاط نهاية الخدمة ممكنة ل Microsoft.Web. إذا لم يتم تحديد أي قيود على تطبيقك ولم يتم تعيين القاعدة غير المتطابقة إلى رفض، يمكن الوصول إلى التطبيق من أي مكان.

الأذونات

يجب أن يكون لديك أذونات التحكم في الوصول المستندة إلى الدور التالية على الشبكة الفرعية أو على مستوى أعلى لتكوين قيود الوصول من خلال مدخل Microsoft Azure أو CLI أو عند تعيين الخصائص site config مباشرة:

فعل وصف
Microsoft.Web/sites/config/read الحصول على إعدادات تكوين تطبيق الويب.
Microsoft.Web/sites/config/write تحديث إعدادات تكوين تطبيق الويب.
Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action* ربط المورد مثل حساب التخزين أو قاعدة بيانات SQL بشبكة فرعية.
Microsoft.Web/sites/write** تحديث إعدادات تطبيق الويب.

*مطلوب فقط عند إضافة قاعدة شبكة ظاهرية (نقطة نهاية الخدمة)

**مطلوب فقط إذا كنت تقوم بتحديث قيود الوصول من خلال مدخل Microsoft Azure

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

إضافة قاعدة تقييد الوصول

لإضافة قاعدة تقييد وصول إلى تطبيقك، في جزء قيود الوصول ، حدد إضافة. تكون القاعدة فعالة فقط بعد حفظها.

يتم فرض القواعد بترتيب الأولوية، من أقل رقم في عمود الأولوية . إذا لم تقم بتكوين قاعدة غير متطابقة، يكون الرفض الضمني ساري المفعول عند إضافة قاعدة واحدة.

في جزء إضافة تقييد الوصول ، عند إنشاء قاعدة، قم بما يلي:

  1. ضمن إجراء، حدد إما السماح أو الرفض.
  2. أدخل اسما ووصفا للقاعدة (اختياري).
  3. في المربع الأولوية ، أدخل قيمة أولوية.
  4. في القائمة المنسدلة النوع ، حدد نوع القاعدة. يتم وصف الأنواع المختلفة من القواعد في الأقسام التالية.
  5. اكتب الإدخال الخاص بالقاعدة. حدد إضافة قاعدة لإضافة القاعدة إلى القائمة.
  6. حدد حفظ في جزء قيود الوصول .

‏‫ملاحظة

هناك حد يبلغ 512 قاعدة تقييد الوصول. إذا كنت تحتاج إلى أكثر من 512 قاعدة تقييد وصول، فإننا نقترح عليك التفكير في منتج أمان مستقل. ضع في اعتبارك Azure Front Door أو Azure Application Gateway أو جدار حماية تطبيق ويب مختلف (WAF).

تعيين قاعدة مستندة إلى عنوان IP

اتبع الإجراء كما هو موضح في القسم السابق، ولكن مع الإضافة التالية:

  • بالنسبة للخطوة 4، في القائمة المنسدلة النوع ، حدد IPv4 أو IPv6.

حدد كتلة عنوان IP في رمز توجيه Inter-Domain بدون فئة (CIDR) لكل من عناوين IPv4 وIPv6. لتحديد عنوان، يمكنك استخدام شيء مثل 1.2.3.4/32، حيث تمثل الثمانية الأربعة الأولى عنوان IP الخاص بك وهو /32 القناع. رمز IPv4 CIDR لكافة العناوين هو 0.0.0.0/0.

‏‫ملاحظة

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

تعيين قاعدة تستند إلى نقطة نهاية الخدمة

  • بالنسبة للخطوة 4، في القائمة المنسدلة Type ، حدد Virtual Network.

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

حدد القوائم المنسدلة الاشتراكوالشبكة الظاهريةوالشبكة الفرعية ، مطابقة ما تريد تقييد الوصول إليه.

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

إذا كنت بحاجة إلى شخص آخر لتمكين نقاط نهاية الخدمة على الشبكة الفرعية، فحدد تجاهل نقاط نهاية خدمة Microsoft.Web المفقودة. تم تكوين تطبيقك لنقاط نهاية الخدمة. يمكن تمكينها لاحقا على الشبكة الفرعية.

لا يمكنك استخدام نقاط نهاية الخدمة لتقييد الوصول إلى التطبيقات التي يتم تشغيلها في بيئة App Service. عندما يكون تطبيقك في بيئة App Service، يمكنك التحكم في الوصول إليه من خلال تطبيق قواعد الوصول إلى IP.

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

‏‫ملاحظة

نقاط نهاية الخدمة غير مدعومة لتطبيقات الويب التي تستخدم روابط TLS/SSL المستندة إلى IP مع IP ظاهري.

تعيين قاعدة تستند إلى علامة الخدمة

  • بالنسبة للخطوة 4، في القائمة المنسدلة النوع ، حدد علامة الخدمة.

    لقطة شاشة لجزء إضافة قيود مع تحديد نوع علامة الخدمة.

يتم دعم جميع علامات الخدمة المتوفرة للجمهور في قواعد تقييد الوصول. تمثل كل علامة خدمة قائمة نطاقات IP من خدمات Azure. يمكن العثور على قائمة بهذه الخدمات والارتباطات إلى نطاقات معينة في وثائق علامة الخدمة. استخدم قوالب Azure Resource Manager أو البرمجة النصية لتكوين قواعد أكثر تقدما مثل القواعد الإقليمية ذات النطاق.

‏‫ملاحظة

عند إنشاء قواعد تستند إلى علامة الخدمة من خلال مدخل Microsoft Azure أو Azure CLI، تحتاج إلى الوصول للقراءة على مستوى الاشتراك للحصول على القائمة الكاملة لعلامات الخدمة للتحديد/التحقق من الصحة. بالإضافة إلى ذلك، Microsoft.Network يجب تسجيل موفر الموارد في الاشتراك.

تحرير قاعدة

  1. لتحرير قاعدة تقييد وصول موجودة، انتقل إلى جزء قيود الوصول وحدد القاعدة التي تريد تحريرها.

  2. في جزء تحرير تقييد الوصول ، قم بإجراء التغييرات، ثم حدد تحديث القاعدة.

  3. حدد حفظ لحفظ التغييرات.

    ‏‫ملاحظة

    عند تحرير قاعدة، لا يمكنك التبديل بين أنواع القواعد.

حذف قاعدة

  1. لحذف قاعدة، في جزء قيود الوصول ، حدد القاعدة أو القواعد التي تريد حذفها، ثم حدد حذف.

  2. حدد حفظ لحفظ التغييرات.

لقطة شاشة لجزء قيود الوصول، تظهر إزالة علامة الحذف بجوار قاعدة تقييد الوصول المراد حذفها.

سيناريوهات متقدمة لقيود الوصول

تصف الأقسام التالية استخدام قيود الوصول في السيناريوهات المتقدمة.

تصفية حسب رأس HTTP

يمكنك إضافة عوامل تصفية رأس HTTP إلى أي قاعدة. يتم دعم أسماء عناوين HTTP التالية:

  • X-Forwarded-For
  • X-Forwarded-Host
  • X-Azure-FDID
  • X-FD-HealthProbe

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

قواعد متعددة المصادر

تسمح لك القواعد متعددة المصادر بدمج ما يصل إلى ثمانية نطاقات IP أو ثماني علامات خدمة في قاعدة واحدة. استخدم القواعد متعددة المصادر إذا كان لديك أكثر من 512 نطاق IP أو إذا كنت تريد إنشاء قواعد منطقية. على سبيل المثال: يمكن أن تتضمن القاعدة المنطقية نطاقات IP متعددة مقترنة بعامل تصفية رأس HTTP واحد.

يتم تعريف القواعد متعددة المصادر بنفس طريقة تعريف القواعد أحادية المصدر، ولكن يتم فصل كل نطاق بفاسمة.

مثال PowerShell:

Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
  -Name "Multi-source rule" -IpAddress "192.168.1.0/24,192.168.10.0/24,192.168.100.0/24" `
  -Priority 100 -Action Allow

حظر عنوان IP واحد

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

لقطة شاشة لجزء قيود الوصول في مدخل Microsoft Azure، تعرض عنوان IP محظورا واحدا.

تقييد الوصول إلى موقع SCM

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

لقطة شاشة لجزء قيود الوصول في مدخل Microsoft Azure، تظهر أنه لم يتم تعيين قيود وصول لموقع SCM أو التطبيق.

تقييد الوصول إلى مثيل Azure Front Door محدد

تنشأ نسبة استخدام الشبكة من Azure Front Door إلى التطبيق الخاص بك من مجموعة معروفة من نطاقات IP المحددة في AzureFrontDoor.Backend علامة الخدمة. باستخدام قاعدة تقييد علامة الخدمة، يمكنك تقييد حركة المرور لتنشأ فقط من Azure Front Door. للتأكد من أن نسبة استخدام الشبكة تنشأ فقط من مثيلك المحدد، تحتاج إلى تصفية الطلبات الواردة بشكل أكبر استنادا إلى عنوان HTTP الفريد الذي يرسله Azure Front Door.

لقطة شاشة لجزء قيود الوصول في مدخل Microsoft Azure، توضح كيفية إضافة قيد Azure Front Door.

مثال PowerShell:

$afd = Get-AzFrontDoor -Name "MyFrontDoorInstanceName"
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
  -Name "Front Door example rule" -Priority 100 -Action Allow -ServiceTag AzureFrontDoor.Backend `
  -HttpHeader @{'x-azure-fdid' = $afd.FrontDoorId}

إدارة تقييد الوصول برمجيا

يمكنك أيضا إدارة تقييد الوصول برمجيا. توضح الأمثلة التالية كيفية إضافة قواعد لقيود الوصول وكيفية تغيير إجراء القاعدة غير المتطابقة لكل من الموقع الرئيسيوموقع الأدوات المتقدمة.

إضافة قواعد قيود الوصول للموقع الرئيسي

يمكنك إضافة قواعد قيود الوصول للموقع الرئيسي برمجيا عن طريق اختيار أحد الخيارات التالية:

يمكنك تشغيل الأمر التالي في Azure Cloud Shell. لمزيد من المعلومات حول الأمر، راجع az webapp config access-restriction.

az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
  --rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100

az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
  --rule-name "Azure Front Door example" --action Allow --priority 200 --service-tag AzureFrontDoor.Backend \
  --http-header x-azure-fdid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

إضافة قواعد قيود الوصول لموقع الأدوات المتقدمة

يمكنك إضافة قواعد قيود الوصول لموقع الأدوات المتقدمة برمجيا. اختر أحد الخيارات التالية:

يمكنك تشغيل الأمر التالي في Cloud Shell. لمزيد من المعلومات حول الأمر، راجع az webapp config access-restriction.

az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
  --rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100 --scm-site true

تغيير إجراء القاعدة غير المتطابق للموقع الرئيسي

يمكنك تغيير إجراء القاعدة غير المتطابقةللموقع الرئيسي برمجيا عن طريق اختيار أحد الخيارات التالية:

يمكنك تشغيل الأمر التالي في Cloud Shell. لمزيد من المعلومات حول الأمر، راجع az resource. القيم المقبولة ل ipSecurityRestrictionsDefaultAction هي Allow أو Deny.

az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
  --set properties.siteConfig.ipSecurityRestrictionsDefaultAction=Allow

تغيير إجراء القاعدة غير المتطابقة لموقع الأدوات المتقدمة

يمكنك تغيير إجراء القاعدة غير المتطابقةلموقع الأدوات المتقدمة برمجيا عن طريق اختيار أحد الخيارات التالية:

يمكنك تشغيل الأمر التالي في Cloud Shell. لمزيد من المعلومات حول الأمر، راجع az resource. القيم المقبولة ل scmIpSecurityRestrictionsDefaultAction هي Allow أو Deny.

az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
  --set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow

إعداد قيود الوصول إلى Azure Functions

تتوفر قيود الوصول أيضا لتطبيقات الوظائف بنفس الوظائف مثل خطط App Service. عند تمكين قيود الوصول، يمكنك أيضا تعطيل محرر التعليمات البرمجية لمدخل Azure لأي عناوين IP غير مسموح بها.