استخدام نقاط النهاية الخاصة لتطبيقات App Service

إشعار

بدءا من 1 يونيو 2024، سيكون لجميع تطبيقات App Service التي تم إنشاؤها حديثا خيار إنشاء اسم مضيف افتراضي فريد باستخدام اصطلاح <app-name>-<random-hash>.<region>.azurewebsites.netالتسمية . ستظل أسماء التطبيقات الحالية دون تغيير.

مثال: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

لمزيد من التفاصيل، راجع اسم المضيف الافتراضي الفريد لمورد App Service.

هام

تتوفر نقطة النهاية الخاصة لتطبيقات Windows وLinux، في حاويات أم لا، مستضافة على خطط App Service هذه: Basic، Standard، PremiumV2، PremiumV3، IsolatedV2، Functions Premium (يشار إليها أحيانا باسم خطة Elastic Premium).

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

يتيح لك استخدام نقطة النهاية الخاصة لتطبيقك ما يلي:

  • قم بتأمين تطبيقك عن طريق تكوين نقطة النهاية الخاصة وتعطيل الوصول إلى الشبكة العامة للقضاء على التعرض العام.
  • اتصل بتطبيقك بأمان من الشبكات المحلية التي تتصل بالشبكة الظاهرية باستخدام شبكة ظاهرية خاصة أو نظير خاص ل ExpressRoute.
  • تجنب أي نقل غير مصرّح للبيانات من شبكتك الظاهرية.

نظرة عامة منطقية

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

يتم تكوين كل فتحة من التطبيق بشكل منفصل. يمكنك توصيل ما يصل إلى 100 نقطة نهاية خاصة لكل فتحة. لا يمكنك مشاركة نقطة نهاية خاصة بين الفتحات. اسم المورد الفرعي للفتحة هو sites-<slot-name>.

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

إشعار

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

من منظور أمني:

  • يمكن أن تتعايش نقطة النهاية الخاصة والوصول العام على أحد التطبيقات. لمزيد من المعلومات، راجع نظرة عامة على قيود الوصول
  • عند تمكين نقاط النهاية الخاصة لتطبيقك، تأكد من تعطيل الوصول إلى الشبكة العامة لضمان العزل.
  • يمكنك تمكين نقاط نهاية خاصة متعددة في شبكات ظاهرية وشبكات فرعية أخرى، بما في ذلك الشبكة الظاهرية في مناطق أخرى.
  • لا يتم تقييم قواعد قيود الوصول لتطبيقك لحركة المرور من خلال نقطة النهاية الخاصة.
  • يمكنك إزالة مخاطر النقل غير المصرح للبيانات من الشبكة الظاهرية عن طريق إزالة جميع قواعد مجموعة أمان الشبكة (NSG) حيث تكون الوجهة علامة على الإنترنت أو خدمات Azure.

في سجلات WEB HTTP لتطبيقك، يمكنك العثور على عنوان IP لمصدر العميل. يتم تنفيذ هذه الميزة باستخدام بروتوكول TCP Proxy، مع إعادة توجيه خاصية IP للعميل حتى التطبيق. لمزيد من المعلومات، راجع الحصول على معلومات الاتصال باستخدام الإصدار الثاني من وكيل TCP.

نظرة عامة عامة على نقطة النهاية العامة لتطبيق App Service

DNS

عند استخدام نقطة نهاية خاصة لتطبيقات App Service، يجب أن يتطابق عنوان URL المطلوب مع اسم تطبيقك. بشكل افتراضي <app-name>.azurewebsites.net. عند استخدام اسم مضيف افتراضي فريد، يكون اسم التطبيق الخاص بك بالتنسيق <app-name>-<random-hash>.<region>.azurewebsites.net. في الأمثلة أدناه mywebapp يمكن أن تمثل أيضا اسم المضيف الفريد الإقليمي الكامل.

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

Name نوع القيمة‬
mywebapp.azurewebsites.net CNAME clustername.azurewebsites.windows.net
clustername.azurewebsites.windows.net CNAME cloudservicename.cloudapp.net
cloudservicename.cloudapp.net ش 40.122.110.154

عند نشر نقطة نهاية خاصة، نقوم بتحديث إدخال DNS للإشارة إلى الاسم المتعارف عليه mywebapp.privatelink.azurewebsites.net. على سبيل المثال، تحليل الاسم هو:

Name نوع القيمة‬ ملاحظة
mywebapp.azurewebsites.net CNAME mywebapp.privatelink.azurewebsites.net
mywebapp.privatelink.azurewebsites.net CNAME clustername.azurewebsites.windows.net
clustername.azurewebsites.windows.net CNAME cloudservicename.cloudapp.net
cloudservicename.cloudapp.net ش 40.122.110.154 <--عنوان IP العام هذا ليس نقطة النهاية الخاصة بك، تتلقى خطأ 403

يجب إعداد خادم DNS خاص أو منطقة خاصة ل Azure DNS. بالنسبة للاختبارات، يمكنك تعديل إدخال المضيف لجهاز الاختبار الخاص بك. منطقة DNS التي تحتاج إلى إنشائها هي: privatelink.azurewebsites.net. سجل السجل لتطبيقك باستخدام سجل A وعنوان IP لنقطة النهاية الخاصة. على سبيل المثال، تحليل الاسم هو:

Name نوع القيمة‬ ملاحظة
mywebapp.azurewebsites.net CNAME mywebapp.privatelink.azurewebsites.net <--يقوم Azure بإنشاء إدخال CNAME هذا في Azure Public DNS لتوجيه عنوان التطبيق إلى عنوان نقطة النهاية الخاصة
mywebapp.privatelink.azurewebsites.net ش 10.10.10.8 <--يمكنك إدارة هذا الإدخال في نظام DNS الخاص بك للإشارة إلى عنوان IP لنقطة النهاية الخاصة بك

بعد تكوين DNS هذا، يمكنك الوصول إلى تطبيقك بشكل خاص بالاسم الافتراضي mywebapp.azurewebsites.net. يجب استخدام هذا الاسم، حيث يتم إصدار الشهادة الافتراضية لـ *.azurewebsites.net.

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

بالنسبة لوحدة تحكم Kudu أو Kudu REST API (النشر باستخدام عوامل Azure DevOps Services المستضافة ذاتيا على سبيل المثال) يجب إنشاء سجلين يشيران إلى عنوان IP لنقطة النهاية الخاصة في منطقة Azure DNS الخاصة بك أو خادم DNS المخصص. الأول لتطبيقك، والثاني ل SCM لتطبيقك.

Name نوع القيمة‬
mywebapp.privatelink.azurewebsites.net ش PrivateEndpointIP
mywebapp.scm.privatelink.azurewebsites.net ش PrivateEndpointIP

مراعاة خاصة للإصدار الثالث من بيئة خدمة التطبيقات

لتمكين نقطة النهاية الخاصة للتطبيقات المستضافة في خطة IsolatedV2 (App Service Environment v3)، يجب تمكين دعم نقطة النهاية الخاصة على مستوى App Service Environment. يمكنك تنشيط الميزة بواسطة مدخل Microsoft Azure في جزء تكوين App Service Environment، أو من خلال CLI التالي:

az appservice ase update --name myasename --allow-new-private-endpoint-connections true

متطلبات محددة

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

التسعير

للحصول على تفاصيل التسعير، راجع تسعير Azure Private Link.

القيود

  • عند استخدام Azure Function في خطة Elastic Premium مع نقطة نهاية خاصة، لتشغيل الوظيفة أو تنفيذها في مدخل Microsoft Azure، يجب أن يكون لديك وصول مباشر إلى الشبكة أو تتلقى خطأ HTTP 403. بمعنى آخر، يجب أن يكون المستعرض الخاص بك قادرا على الوصول إلى نقطة النهاية الخاصة لتنفيذ الدالة من مدخل Microsoft Azure.
  • يمكنك توصيل ما يصل إلى 100 نقطة نهاية خاصة بتطبيق معين.
  • لا تتوفر وظيفة تصحيح الأخطاء عن بعد من خلال نقطة النهاية الخاصة. التوصية هي توزيع التعليمات البرمجية إلى الفتحة وتصحيحها عن بعد هناك.
  • يتم توفير الوصول إلى FTP من خلال عنوان IP العام الوارد. لا تدعم نقطة النهاية الخاصة وصول FTP إلى التطبيق.
  • SSL المستند إلى IP غير مدعوم مع نقاط النهاية الخاصة.
  • لا يمكن للتطبيقات التي تقوم بتكوينها باستخدام نقاط نهاية خاصة تلقي نسبة استخدام الشبكة العامة القادمة من الشبكات الفرعية مع Microsoft.Web تمكين نقطة نهاية الخدمة ولا يمكنها استخدام قواعد تقييد الوصول المستندة إلى نقطة نهاية الخدمة.
  • يجب أن تتبع تسمية نقطة النهاية الخاصة القواعد المعرفة للموارد من النوع Microsoft.Network/privateEndpoints. يمكن العثور على قواعد التسمية هنا.

نحن نعمل على تحسين ميزة Azure Private Link ونقطة النهاية الخاصة بانتظام، راجع هذه المقالة للحصول على معلومات محدثة حول القيود.

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