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

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

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

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

للحصول على نظرة عامة على الميزات عبر عروض البوابة المختلفة، راجع بوابة API في APIM.

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

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

بإستخدام البوابة المستضافة ذاتياً، يتمتع العملاء بالمرونة ليستخدموا الإصدار المحوّاة لبوابة APIM مكوّن في نفس البيئات مضيف فيها APIs الخاصة بهم. جميع البوابات ذاتية الاستضافة تتم إدارتها من خلال خدمة APIM التي يتم توحيدها معها، وبالتالي تزويد العملاء برؤية وخبرة إدارية موحدة عبر جميع APIs الداخلية والخارجية.

تتكون كل خدمة APIM من المكونات الرئيسية التالية:

  • مستوى الإدارة، الذي يتم عرضه كـ API، يستخدم ليكوّن الخدمة عبر مدخل Microsoft Azure و PowerShell والآليات الأخرى المدعومة.
  • تعتبر البوابة (أو مستوى البيانات) هي المسؤولة عن إنشاء وكيل لطلبات API، وتطبيق النهج وجمع بيانات تتبع الاستخدام
  • يستخدم مدخل المطور من قبل المطورين لكشف APIs والتعلم منها واستخدامها

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

تدفق نسبة استخدام الشبكة API بدون البوابات المستضافة ذاتيًا

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

تدفق نسبة استخدام الشبكة API مع البوابات المستضافة ذاتيًا

التغليف

تتوفر البوابة المستضافة ذاتيا كـ صورة حاوية 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 ✔️
beta1 استخدم هذه العلامة إذا كنت تريد تقييم إصدارات المعاينة للبوابة المستضافة ذاتيا. beta ✔️

يمكنك أن تجد قائمة كاملة بالعلامات المتاحة هنا.

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

استخدام العلامات في خيارات التوزيع الرسمية

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

إشعار

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

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

تعرف على المزيد بشأن كيفية تثبيت بوابة مستضافة ذاتياً APIM برمجة التطبيقات على Kubernetes مع Helm.

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

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

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

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

هام

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

الاتصال بـ Azure

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

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

هام

سينتهي دعم الإصدار 0 من البوابة المستضافة ذاتيا ل Azure API Management وصور حاوية الإصدار 1 في 1 أكتوبر 2023، جنبا إلى جنب مع واجهة برمجة تطبيقات التكوين المقابلة لها الإصدار 1. استخدم دليل الترحيل الخاص بنا لاستخدام البوابة المستضافة ذاتيا v2.0.0 أو أعلى مع Configuration API v2. تعرف على المزيد في وثائق الإهمال الخاصة بنا

تبعيات FQDN

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

‏‏الوصف مطلوب للإصدار 1 مطلوب للإصدار 2 ملاحظات
اسم المضيف لنقطة نهاية التكوين <apim-service-name>.management.azure-api.net <apim-service-name>.configuration.azure-api.net1 يتم أيضا دعم أسماء المضيفين المخصصة ويمكن استخدامها بدلا من اسم المضيف الافتراضي.
عنوان IP العام لمثيل APIM ✔️ ✔️ عنوان IP للموقع الأساسي كاف.
عناوين IP العامة لعلامة خدمة Azure Storage ✔️ اختياري2 يجب أن تتوافق عناوين IP مع الموقع الأساسي لمثيل APIM.
اسم مضيف حساب 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 اختياري5 الحد الأدنى من نقاط النهاية المطلوبة هي:
  • rt.services.visualstudio.com:443
  • dc.services.visualstudio.com:443
  • {region}.livediagnostics.monitor.azure.com:443
تعرف على المزيد في مستندات Azure Monitor
نقاط النهاية لتكامل مراكز الأحداث اختياري5 اختياري5 تعرف على المزيد في مستندات Azure Event Hubs
نقاط النهاية لتكامل ذاكرة التخزين المؤقت الخارجية اختياري5 اختياري5 يعتمد هذا المطلب على ذاكرة التخزين المؤقت الخارجية التي يتم استخدامها

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

هام

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

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

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

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

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

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

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

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

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

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

فشل الاتصال

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

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

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

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

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

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

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

الأمان

القيود

الوظيفة التالية الموجودة في البوابات المدارة هي غير متوفرة في البوابات المستضافة ذاتيًا:

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

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

هام

تنطبق هذه النظرة العامة فقط على البوابة المستضافة ذاتيا v1 وv2.

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

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

يمكن للعملاء الذين يستخدمون المجالات المخصصة تمكين TLS v1.0 و/أو v1.1 في مستوى التحكم.

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

هام

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

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

  • 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 بين البوابة المستضافة ذاتيًا والخادم الخلفي.

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