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

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

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

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

هام

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

تكامل واجهة برمجة تطبيقات التكوين

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

فيما يلي نظرة عامة على جميع خيارات التكوين:

Name ‏‏الوصف مطلوبة افتراضي التوافر
gateway.name معرف مورد البوابة المستضاف ذاتيا. نعم، عند استخدام مصادقة Microsoft Entra ‏‫غير متوفر‬ الإصدار 2.3+
config.service.endpoint نقطة نهاية التكوين في APIM للبوابة المستضافة ذاتيًا. ابحث عن هذه القيمة في مدخل Microsoft Azure ضمن Gateways>Deployment. ‏‏نعم‬ غير متوفر الإصدار 2.0+
config.service.auth يحدد كيفية مصادقة البوابة المستضافة ذاتيا إلى واجهة برمجة تطبيقات التكوين. يتم حاليا دعم الرمز المميز للبوابة ومصادقة Microsoft Entra. ‏‏نعم‬ غير متوفر الإصدار 2.0+
config.service.auth.azureAd.tenantId معرف مستأجر Microsoft Entra. نعم، عند استخدام مصادقة Microsoft Entra ‏‫غير متوفر‬ الإصدار 2.3+
config.service.auth.azureAd.clientId معرف العميل لتطبيق Microsoft Entra للمصادقة باستخدام (المعروف أيضا باسم معرف التطبيق). نعم، عند استخدام مصادقة Microsoft Entra ‏‫غير متوفر‬ الإصدار 2.3+
config.service.auth.azureAd.clientSecret سر تطبيق Microsoft Entra للمصادقة عليه. نعم، عند استخدام مصادقة Microsoft Entra (ما لم يتم تحديد الشهادة) ‏‫غير متوفر‬ الإصدار 2.3+
config.service.auth.azureAd.certificatePath مسار الشهادة للمصادقة مع لتطبيق Microsoft Entra. نعم، عند استخدام مصادقة Microsoft Entra (ما لم يتم تحديد السر) ‏‫غير متوفر‬ الإصدار 2.3+
config.service.auth.azureAd.authority عنوان URL المرجع لمعرف Microsoft Entra. لا https://login.microsoftonline.com الإصدار 2.3+
config.service.auth.tokenAudience جمهور الرمز المميز المستخدم لمصادقة Microsoft Entra لا https://azure-api.net/configuration الإصدار 2.3+
config.service.endpoint.disableCertificateValidation يحدد ما إذا كان يجب على البوابة المستضافة ذاتيا التحقق من صحة شهادة من جانب الخادم لواجهة برمجة تطبيقات التكوين. يوصى باستخدام التحقق من صحة الشهادة، وتعطيلها فقط لأغراض الاختبار وبحذر لأنها يمكن أن تؤدي إلى مخاطر أمنية. لا false الإصدار 2.0+
config.service.integration.timeout يحدد المهلة للتفاعل مع واجهة برمجة تطبيقات التكوين. لا 00:01:40 الإصدار 2.3.5+

توفر البوابة المستضافة ذاتيا دعما لعدد قليل من خيارات المصادقة للتكامل مع واجهة برمجة تطبيقات التكوين التي يمكن تعريفها باستخدام config.service.auth.

يساعدك هذا التوجيه على توفير المعلومات المطلوبة لتحديد كيفية المصادقة:

  • بالنسبة للمصادقة المستندة إلى الرمز المميز للبوابة، حدد رمز وصول (مفتاح المصادقة) للبوابة المستضافة ذاتيا في مدخل Azure ضمن نشر البوابات>.
  • بالنسبة للمصادقة المستندة إلى معرف Microsoft Entra، حدد azureAdApp إعدادات المصادقة الإضافية config.service.auth.azureAd وقدمها.

اكتشاف ومزامنة عبر المثيلات

Name ‏‏الوصف مطلوبة افتراضي التوافر
neighborhood.host اسم DNS المستخدم لحل جميع مثيلات نشر بوابة مستضافة ذاتيا للمزامنة عبر المثيلات. في Kubernetes، يمكن تحقيق ذلك باستخدام خدمة بدون رأس. لا ‏‫غير متاح الإصدار 2.0+
neighborhood.heartbeat.port منفذ UDP المستخدم لمثيلات نشر بوابة مستضافة ذاتيا لإرسال رسالة كشف أخطاء الاتصال إلى مثيلات أخرى. لا 4291 الإصدار 2.0+
policy.rate-limit.sync.port منفذ UDP المستخدم لمثيلات البوابة المستضافة ذاتيا لمزامنة تحديد المعدل عبر مثيلات متعددة. لا 4290 الإصدار 2.0+

HTTP

Name ‏‏الوصف مطلوبة افتراضي التوافر
net.server.http.forwarded.proto.enabled القدرة على تكريم X-Forwarded-Proto العنوان لتحديد مخطط لحل ما يسمى مسار واجهة برمجة التطبيقات (http/https فقط). لا true الإصدار 2.5+

تكامل Kubernetes

Kubernetes Ingress

هام

يعد دعم Kubernetes Ingress تجريبيا حاليا ولا يغطيه دعم Azure. تعرف على المزيد حول GitHub.

Name ‏‏الوصف مطلوبة افتراضي التوافر
k8s.ingress.enabled تمكين تكامل دخول Kubernetes. لا false الإصدار 1.2+
k8s.ingress.namespace مساحة اسم Kubernetes لمشاهدة موارد دخول Kubernetes. لا default الإصدار 1.2+
k8s.ingress.dns.suffix لاحقة DNS لإنشاء اسم مضيف DNS للخدمات لإرسال الطلبات إليها. لا svc.cluster.local الإصدار 2.4+
k8s.ingress.config.path المسار إلى تكوين Kubernetes (Kubeconfig). لا ‏‫غير متاح الإصدار 2.4+

المقاييس

Name ‏‏الوصف مطلوبة افتراضي التوافر
القياس عن بعد. metrics.local تمكين جمع المقاييس المحلية من خلال StatsD. القيمة هي أحد الخيارات التالية: none، . statsd لا none الإصدار 2.0+
القياس عن بعد.metrics.local.statsd.endpoint نقطة نهاية StatsD. نعم، إذا telemetry.metrics.local تمت المجموعة إلى statsd؛ وإلا لا. ‏‫غير متوفر‬ الإصدار 2.0+
القياس عن بعد.metrics.local.statsd.sampling يحدد مقاييس معدل أخذ العينات. يجب أن تكون القيمة بين 0 و1، على سبيل المثال، 0.5. لا ‏‫غير متاح الإصدار 2.0+
القياس عن بعد.metrics.local.statsd.tag-format تنسيق وضع العلامات على مصدر StatsD. القيمة هي أحد الخيارات التالية: ibrato، ، dogStatsD. influxDB لا ‏‫غير متاح الإصدار 2.0+
telemetry.metrics.cloud الإشارة إلى ما إذا كان يجب تمكين مقاييس الإرسال إلى Azure Monitor أم لا. لا true الإصدار 2.0+
observability.opentelemetry.enabled الإشارة إلى ما إذا كان يجب تمكين تنبيهات المقاييس إلى مجمع OpenTelemetry على Kubernetes أم لا. لا false الإصدار 2.0+
observability.opentelemetry.collector.uri URI لجامع OpenTelemetry لإرسال المقاييس إليه. نعم، إذا observability.opentelemetry.enabled تمت المجموعة إلى true؛ وإلا لا. ‏‫غير متوفر‬ الإصدار 2.0+
observability.opentelemetry.system-metrics.enabled تمكين إرسال مقاييس النظام إلى مجمع OpenTelemetry مثل وحدة المعالجة المركزية والذاكرة وجمع البيانات المهملة وما إلى ذلك. لا false الإصدار 2.3+
observability.opentelemetry.histogram.buckets مستودعات المدرج التكراري التي يجب الإبلاغ فيها عن مقاييس OpenTelemetry. نموذج: "x,y,z,...". لا {5,10,25,50,100,250,500,1000,2500,5000,10000.##}" الإصدار 2.0+

السجلات

Name ‏‏الوصف مطلوبة افتراضي التوافر
القياس عن بعد .logs.std تمكين التسجيل إلى دفق قياسي. القيمة هي أحد الخيارات التالية: none، ، text. json لا text الإصدار 2.0+
telemetry.logs.std.level يحدد مستوى السجل للسجلات المرسلة إلى الدفق القياسي. القيمة هي أحد الخيارات التالية: allأو debugأو infowarnerror .fatal لا info الإصدار 2.0+
telemetry.logs.std.color الإشارة إلى ما إذا كان يجب استخدام السجلات الملونة في الدفق القياسي أم لا. لا true الإصدار 2.0+
القياس عن بعد .logs.local تمكين التسجيل المحلي. القيمة هي أحد الخيارات التالية: none، auto، localsyslog، ، rfc5424، journaljson لا auto الإصدار 2.0+
telemetry.logs.local.localsyslog.endpoint يحدد نقطة نهاية السجل المحلي. نعم إذا telemetry.logs.local تمت المجموعة إلى localsyslog؛ وإلا لا. راجع وثائق syslog المحلية لمزيد من التفاصيل حول التكوين. ‏‫غير متوفر‬ الإصدار 2.0+
telemetry.logs.local.localsyslog.facility يحدد التعليمات البرمجية لمرفق localsyslog، على سبيل المثال، 7. لا ‏‫غير متاح الإصدار 2.0+
telemetry.logs.local.rfc5424.endpoint نقطة نهاية rfc5424. نعم إذا telemetry.logs.local تمت المجموعة إلى rfc5424؛ وإلا لا. ‏‫غير متوفر‬ الإصدار 2.0+
telemetry.logs.local.rfc5424.facility رمز المرفق لكل rfc5424، على سبيل المثال، 7 لا ‏‫غير متاح الإصدار 2.0+
telemetry.logs.local.journal.endpoint نقطة نهاية دفتر اليومية. نعم إذا telemetry.logs.local تمت المجموعة إلى journal؛ وإلا لا. ‏‫غير متوفر‬ الإصدار 2.0+
telemetry.logs.local.json.endpoint يحدد نقطة نهاية UDP التي تقبل بيانات JSON: مسار الملف أو منفذ IP: أو اسم المضيف: المنفذ. نعم إذا telemetry.logs.local تمت المجموعة إلى json؛ وإلا لا. 127.0.0.1:8888 الإصدار 2.0+

الأمان

الشهادات والشفرات

Name ‏‏الوصف مطلوبة افتراضي التوافر
certificates.local.ca.enabled الإشارة إلى ما إذا كانت البوابة المستضافة ذاتيا يجب أن تستخدم شهادات CA المحلية التي يتم تحميلها أم لا. مطلوب لتشغيل البوابة المستضافة ذاتيا كجذر أو مع معرف المستخدم 1001. لا false الإصدار 2.0+
net.server.tls.ciphers.allowed-suites قائمة مفصولة بفاصلة من الشفرات لاستخدامها لاتصال TLS بين عميل واجهة برمجة التطبيقات والبوابة المستضافة ذاتيًا. لا 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.0+
net.client.tls.ciphers.allowed-suites قائمة مفصولة بفاصلة من الشفرات لاستخدامها لاتصال TLS بين البوابة المستضافة ذاتيًا والواجهة الخلفية. لا 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.0+
security.certificate-revocation.validation.enabled يوفر إمكانية تشغيل/إيقاف تشغيل التحقق من صحة قائمة إبطال الشهادات لا false الإصدار 2.3.6+

TLS

Name ‏‏الوصف مطلوبة افتراضي التوافر
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls13 الإشارة إلى ما إذا كان مسموحا ب TLS 1.3 أم لا نحو الخلفية. على غرار إدارة شفرات البروتوكول في البوابة المدارة. لا true الإصدار 2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls12 الإشارة إلى ما إذا كان مسموحا ب TLS 1.2 أم لا نحو الخلفية. على غرار إدارة شفرات البروتوكول في البوابة المدارة. لا true الإصدار 2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 الإشارة إلى ما إذا كان مسموحا ب TLS 1.1 أم لا نحو الخلفية. على غرار إدارة شفرات البروتوكول في البوابة المدارة. لا false الإصدار 2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 الإشارة إلى ما إذا كان مسموحا ب TLS 1.0 أم لا نحو الخلفية. على غرار إدارة شفرات البروتوكول في البوابة المدارة. لا false الإصدار 2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30 الإشارة إلى ما إذا كان مسموحا ب SSL 3.0 أم لا نحو الخلفية. على غرار إدارة شفرات البروتوكول في البوابة المدارة. لا false الإصدار 2.0+

السحابات ذات السيادة

فيما يلي نظرة عامة على الإعدادات التي تحتاج إلى تكوين لتكون قادرة على العمل مع السحب السيادية:

الاسم ‏‏عامة Azure الصين: US Government
config.service.auth.tokenAudience https://azure-api.net/configuration(افتراضي) https://azure-api.cn/configuration https://azure-api.us/configuration
logs.applicationinsights.endpoint https://dc.services.visualstudio.com/v2/track(افتراضي) https://dc.applicationinsights.azure.cn/v2/track https://dc.applicationinsights.us/v2/track

كيفية تكوين الإعدادات

ملف Kubernetes YAML

عند نشر البوابة المستضافة ذاتيًا إلى Kubernetes باستخدام ملف YAML، قم بتكوين الإعدادات كأزواج قيمة الاسم في data عنصر ConfigMap للبوابة. على سبيل المثال:

apiVersion: v1
    kind: ConfigMap
    metadata:
        name: contoso-gateway-environment
    data:
        config.service.endpoint: "contoso.configuration.azure-api.net"
        telemetry.logs.std: "text"
        telemetry.logs.local.localsyslog.endpoint: "/dev/log"
        telemetry.logs.local.localsyslog.facility: "7"

[...]

مخطط بياني Helm

عند استخدام Helm لنشر البوابة المستضافة ذاتيًا إلى Kubernetes، قم بتمرير إعدادات تكوين المخطط كمعلمات إلى helm install الأمر. على سبيل المثال:

helm install azure-api-management-gateway \
    --set gateway.configuration.uri='contoso.configuration.azure-api.net' \
    --set gateway.auth.key='GatewayKey contosogw&xxxxxxxxxxxxxx...' \
    --set secret.createSecret=false \
    --set secret.existingSecretName=`mysecret` \
    azure-apim-gateway/azure-api-management-gateway

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