مشاركة عبر


نظرة عامة على البوابة المستضافة ذاتياً

ينطبق على: المطور | قسط

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

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

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

إدارة واجهة برمجة التطبيقات المختلطة ومتعددة السحابات

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

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

يتكون كل مثيل لإدارة واجهة برمجة التطبيقات من المكونات الرئيسية التالية:

  • مستوى إدارة، معروض كواجهة برمجة تطبيقات، يستخدم لتكوين الخدمة عبر مدخل Microsoft Azure وPowerShell والتقنيات المدعومة الأخرى
  • بوابة (أو مستوى بيانات)، مسؤولة عن وكيل طلبات واجهة برمجة التطبيقات، وتطبيق النهج، وجمع بيانات تتبع الاستخدام
  • مدخل مطور يستخدمه المطورون لاكتشاف واجهات برمجة التطبيقات وتعلمها وإلحاقها

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

تدفق نسبة استخدام الشبكة لواجهة برمجة التطبيقات بدون بوابات مستضافة ذاتيا

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

تدفق نسبة استخدام الشبكة لواجهة برمجة التطبيقات مع بوابات مستضافة ذاتيا

التغليف

تتوفر البوابة المستضافة ذاتيا كـ صورة حاوية Linux-based Docker من Microsoft Artifact Registry. يمكن نشره في Docker أو Kubernetes أو أي حل تنسيق حاوية آخر يعمل على مجموعة خوادم محلية أو بنية تحتية سحابية أو، لأغراض التقييم والتطوير، على كمبيوتر شخصي. يمكنك أيضًا أن تستخدم البوابة المستضافة ذاتيًا كملحق برنامج نظام مجموعة إلى نظام مجموعة Azure Arc-enabled Kubernetes.

صور الحاوية

تتوفر مجموعة متنوعة من صور الحاوية للبوابات المستضافة ذاتيا:

اصطلاح العلامة التوصية مثال العلامة المتداولة موصى به للإنتاج
{major}.{minor}.{patch} استخدم هذه العلامة لتشغيل نفس الإصدار من البوابة دائما. 2.0.0 ✔️
v{major} استخدم هذه العلامة لتشغيل إصدار رئيسي من البوابة دائمًا مع كل ميزة وتصحيح جديد. v2 ✔️
v{major}-preview استخدم هذه العلامة إذا كنت تريد دائما تشغيل أحدث صورة حاوية معاينة. v2-preview ✔️
latest استخدم هذه العلامة إذا كنت تريد تقييم البوابة المستضافة ذاتيًا. latest ✔️
beta 1 استخدم هذه العلامة إذا كنت تريد تقييم إصدارات المعاينة للبوابة المستضافة ذاتيا. beta ✔️

يمكنك العثور على قائمة كاملة بالعلامات المتاحة هنا.

1إصدارات المعاينة غير مدعومة رسميا وهي لأغراض تجريبية فقط. راجع نهج دعم البوابة المستضافة ذاتيا.

استخدام العلامات في خيارات النشر الرسمية

تستخدم خيارات التوزيع في مدخل Microsoft Azure العلامة v2 التي تسمح لك باستخدام أحدث إصدار من صورة حاوية البوابة المستضافة ذاتيا v2 مع جميع تحديثات الميزات والتصحيحات.

إشعار

يتم توفير قصاصات الفيديو وYAML كمرجع. يمكنك استخدام علامة أكثر تحديدا إذا كنت ترغب في ذلك.

عند تثبيت بوابة بمخطط Helm، يتم تحسين وضع علامات على الصور. يثبت إصدار تطبيق مخطط Helm البوابة بإصدار معين، ولا يعتمد على latest.

لمزيد من المعلومات، راجع تثبيت بوابة مستضافة ذاتيا لإدارة واجهة برمجة التطبيقات على Kubernetes باستخدام Helm.

خطر استخدام العلامات المتداولة

العلامات المتداولة عبارة عن علامات يحتمل تحديثها عند صدور إصدار جديد من صورة الحاوية. يتيح استخدام هذا النوع من العلامات لمستخدمي الحاوية تلقي تحديثات لصورة الحاوية دون الحاجة إلى تحديث عمليات النشر الخاصة بهم.

عند استخدام هذا النوع من العلامات، يمكنك تشغيل إصدارات مختلفة بالتوازي دون ملاحظة ذلك، على سبيل المثال عند تنفيذ إجراءات تغيير الحجم بعد تحديث العلامة v2 .

مثال: يتم إصدار العلامة v2 مع صورة الحاوية 2.0.0 . عند 2.1.0 تحريرها ، سيتم ربط العلامة v2 بالصورة 2.1.0 .

هام

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

الاتصال بـ Azure

تتطلب البوابات المستضافة ذاتيا الاتصالية TCP/IP الصادر إلى Azure على منفذ 443. يجب أن تكون كل بوابة مستضافة ذاتيا مقترنة بمثيل إدارة واجهة برمجة تطبيقات واحد ويتم تكوينها عبر مستوى الإدارة الخاص بها. بوابة مستضافة ذاتيًا تستخدم الاتصال بـ Azure من أجل:

  • الإبلاغ عن حالته عن طريق إرسال رسائل نبضات القلب كل دقيقة.
  • بانتظام (كل 10 ثوان) التحقق من تحديثات التكوين وتطبيقها كلما كانت متوفرة.
  • إرسال المقاييس إلى Azure Monitor، إذا تم تكوينها للقيام بذلك.
  • إرسال الأحداث إلى Application Insights، إذا تم تكوينها للقيام بذلك.

تبعيات FQDN

للعمل بشكل صحيح، تحتاج كل بوابة مستضافة ذاتيًا إلى اتصال صادر على المنفذ 443 بنقاط النهاية التالية المقترنة بمثيل APIM المستند إلى السحابة:

نقطة النهاية مطلوب؟ ملاحظات
اسم المضيف لنقطة نهاية التكوين <api-management-service-name>.configuration.azure-api.net 1 يتم أيضا دعم أسماء المضيفين المخصصة ويمكن استخدامها بدلا من اسم المضيف الافتراضي.
عنوان IP العام لمثيل APIM ✔️ عنوان IP للموقع الأساسي كاف.
عناوين IP العامة لعلامة خدمة Azure Storage اختياري2 يجب أن تتوافق عناوين IP مع الموقع الأساسي لمثيل إدارة واجهة برمجة التطبيقات.
اسم المضيف لحساب Azure Blob Storage اختياري2 الحساب المقترن بالمثيل (<blob-storage-account-name>.blob.core.windows.net).
اسم المضيف لحساب Azure Table Storage اختياري2 الحساب المقترن بالمثيل (<table-storage-account-name>.table.core.windows.net).
نقاط النهاية ل Azure Resource Manager اختياري3 نقطة النهاية المطلوبة هي management.azure.com.
نقاط النهاية لتكامل Microsoft Entra اختياري4 نقاط النهاية المطلوبة هي <region>.login.microsoft.com و login.microsoftonline.com.
نقاط النهاية لتكامل Azure Application Insights اختياري5 الحد الأدنى من نقاط النهاية المطلوبة هي rt.services.visualstudio.com:443، dc.services.visualstudio.com:443و {region}.livediagnostics.monitor.azure.com:443. لمزيد من المعلومات، راجع وثائق Azure Monitor.
نقاط النهاية لتكامل مراكز الأحداث اختياري5 للحصول على المزيد من المعلومات، انظر وثائق مراكز الأحداث Azure.
نقاط النهاية لتكامل ذاكرة التخزين المؤقت الخارجية اختياري5 يعتمد هذا المطلب على ذاكرة التخزين المؤقت الخارجية التي يتم استخدامها.

1للحصول على معلومات حول مثيل إدارة واجهة برمجة التطبيقات في شبكة ظاهرية داخلية، راجع الاتصال في شبكة ظاهرية داخلية.
2مطلوب فقط في الإصدار 2 عند استخدام مفتش واجهة برمجة التطبيقات أو الحصص النسبية في النهج.
3مطلوب فقط عند استخدام مصادقة Microsoft Entra للتحقق من أذونات RBAC.
4مطلوب فقط عند استخدام مصادقة Microsoft Entra أو النهج المتعلقة ب Microsoft Entra.
5مطلوب فقط عند استخدام الميزة وتتطلب عنوان IP العام والمنفذ ومعلومات اسم المضيف.

هام

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

الاتصال في شبكة ظاهرية داخلية

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

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

خيارات المصادقة

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

خيار الاعتبارات
مصادقة Microsoft Entra قم بتكوين تطبيق واحد أو أكثر من تطبيقات Microsoft Entra للوصول إلى البوابة.

إدارة الوصول بشكل منفصل لكل تطبيق.

قم بتكوين أوقات انتهاء صلاحية أطول للأسرار وفقا لنهج مؤسستك.

استخدم إجراءات Microsoft Entra القياسية لتعيين أذونات المستخدم أو المجموعة أو إبطالها للتطبيقات ولتدوير الأسرار.

رمز الوصول إلى البوابة. (يسمى أيضا مفتاح المصادقة.) تنتهي صلاحية الرمز المميز كل 30 يوما على الأقل ويجب تجديده في الحاويات.

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

تؤدي إعادة إنشاء مفتاح البوابة إلى إبطال جميع رموز الوصول المميزة التي تم إنشاؤها به.

تلميح

راجع Azure API Management كمصدر لشبكة الأحداث للحصول على معلومات حول أحداث Event Grid التي يتم إنشاؤها بواسطة بوابة مستضافة ذاتيا عندما يكون الرمز المميز للوصول إلى البوابة على وشك انتهاء الصلاحية أو انتهاء صلاحيته. استخدم هذه الأحداث للتأكد من أن البوابات المنشورة قادرة دائما على المصادقة مع مثيل APIM المقترن بها.

فشل الاتصال

عند فقد الاتصالية بـ Azure، لا تتمكن البوابة المستضافة ذاتيا من تلقي تحديثات التكوين أو تقرير عن حالتها أو تحميل بيانات تتبع الاستخدام.

تم تصميم البوابة المستضافة ذاتيًا "للفشل الثابت" ويمكنها تحمل فقدان الاتصالية المؤقت مع Azure. يمكن أن تستخدم مع أو بدون النسخة الاحتياطية للتكوين المحلي. باستخدام تكوين النسخ الاحتياطي، تقوم البوابات المستضافة ذاتيا بحفظ نسخة احتياطية من أحدث تكوين تم تنزيله بانتظام على وحدة تخزين ثابتة متصلة بالحاوية أو حافظة البيانات الخاصة بهم.

عند إيقاف تشغيل النسخة الاحتياطية للتكوين وانقطاع الاتصالية بـ Azure:

  • يستمر تشغيل البوابات المستضافة ذاتيا في العمل باستخدام نسخة في الذاكرة من التكوين.
  • لن تتمكن البوابات المستضافة ذاتيا المتوقفة من البدء.

عند تشغيل النسخة الاحتياطية للتكوين وانقطاع الاتصالية بـ Azure:

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

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

الأمان

القيود

لا تتوفر الوظائف التالية المتوفرة في البوابات المدارة في البوابات المستضافة ذاتيا:

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

أمان طبقة النقل (TLS)

البروتوكولات المدعومة

تدعم البوابات المستضافة ذاتيا TLS v1.2 بشكل افتراضي.

إذا كنت تستخدم نطاقات مخصصة، يمكنك تمكين TLS v1.0 و/أو الإصدار 1.1 في مستوى التحكم.

مجموعات التشفير المتوفرة

تستخدم البوابات المستضافة ذاتيا مجموعات التشفير التالية لكل من اتصالات العميل والخادم:

  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
  • TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
  • TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_RSA_WITH_AES_256_GCM_SHA384
  • TLS_RSA_WITH_AES_128_GCM_SHA256
  • TLS_RSA_WITH_AES_256_CBC_SHA256
  • TLS_RSA_WITH_AES_128_CBC_SHA256
  • TLS_RSA_WITH_AES_256_CBC_SHA
  • TLS_RSA_WITH_AES_128_CBC_SHA

إدارة مَجموعات التشفير

باستخدام الإصدار 2.1.1 والإصدارات الأحدث، يمكنك إدارة الشفرات التي يتم استخدامها عبر التكوين:

  • net.server.tls.ciphers.allowed-suites تمكنك من تحديد قائمة مفصولة بفواصل من الشفرات لاستخدامها في اتصال TLS بين عميل واجهة برمجة التطبيقات والبوابة المستضافة ذاتيا.
  • net.client.tls.ciphers.allowed-suites تمكنك من تحديد قائمة مفصولة بفواصل من الشفرات لاستخدامها في اتصال TLS بين البوابة المستضافة ذاتيا والواجهة الخلفية.