حماية واجهات برمجة التطبيقات باستخدام Application Gateway وAPIM

Azure API Management
Azure Application Gateway

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

الهندسة

لا تتناول هذه المقالة الخدمات الأساسية للتطبيق، مثل App Service Environment وAzure SQL Managed Instance وAzure Kubernetes Services. تعرض تلك الأجزاء من الرسم التخطيطي فقط ما يمكنك فعله كحل أوسع. تتناول هذه المقالة على وجه التحديد المناطق المظللة وAPIM وبوابة التطبيق.

Diagram showing how Application Gateway and API Management protect APIs.

قم بتنزيل ملف Visio لهذه البنية.

Workflow

  • تتلقى بوابة التطبيق طلبات HTTP التي تم السماح بها من قبل مجموعة أمان الشبكة (NSG) الخاصة بالشبكة الفرعية الخاصة بها.

  • ثم يتحقق جدار حماية تطبيق الويب (WAF) على بوابة التطبيق من الطلب مقابل قواعد WAF، بما في ذلك تصفية Geomatch. إذا كان الطلب صالحا، يتم متابعة الطلب.

  • تقوم بوابة التطبيق بإعداد آلية وكيل عنوان URL التي ترسل الطلب إلى تجمع الخلفية المناسب. على سبيل المثال، اعتمادا على تنسيق URL لاستدعاء API:

    • يمكن أن تصل عناوين URL التي تم تنسيقها مثل api.<some-domain>/external/* إلى النهاية الخلفية للتفاعل مع واجهات برمجة التطبيقات المطلوبة.

    • المكالمات المنسقة كلانتقال api.<some-domain>/* إلى نهاية مسدودة (sinkpool)، وهي تجمع خلفي بدون هدف.

  • أيضا، تقبل بوابة التطبيق ووكلاء المكالمات الداخلية، والتي تأتي من الموارد في نفس شبكة Azure الظاهرية، ضمن api.<some-domain>/internal/*.

  • أخيراً، على مستوى إدارة واجهة برمجة التطبيقات (APIM)، تم إعداد واجهات برمجة التطبيقات لقبول المكالمات وفقاً للأنماط التالية:

    • api.<some-domain>/external/*
    • api.<some-domain>/internal/*

    في هذا السيناريو، تستخدم (APIM) نوعين من عناوين IP، العامة والخاصة. عناوين IP العامة مخصصة للاتصال الداخلي على المنفذ 3443، ولوقت التشغيل لنسبة استخدام الشبكة API في تكوين الشبكة الظاهرية الخارجية. عندما ترسل إدارة واجهة برمجة التطبيقات (APIM) طلباً إلى نهاية خلفية عامة تواجه الإنترنت، فإنها تعرض عنوان IP العام كأصل الطلب. لمزيد من المعلومات، راجع عناوين IP لخدمة إدارة واجهة برمجة التطبيقات (APIM) في VNet.

  • تقوم قاعدة التوجيه على مستوى بوابة التطبيق بإعادة توجيه المستخدمين بشكل صحيح إلى portal.<some-domain>/* مدخل المطور، بحيث يمكن للمطورين إدارة واجهات برمجة التطبيقات وتكويناتها من البيئات الداخلية والخارجية على حد سواء.

المكونات

  • تتيح شبكة Azure الظاهرية للعديد من أنواع موارد Azure الاتصال بشكل خاص مع بعضها البعض والإنترنت والشبكات المحلية.

  • بوابة Azure Application عبارة عن موازن تحميل نسبة استخدام الشبكة الذي يدير نسبة استخدام الشبكة إلى تطبيقات الويب. يعرف هذا النوع من التوجيه بموازنة تحميل طبقة تطبيق (طبقة OSI 7). يستضيف جدار حماية تطبيق ويب (WAF) للحماية من ناقلات الهجوم الشائعة المستندة إلى الويب.

  • Azure API Management هي نظام أساسي للإدارة المختلطة متعددة السحابات لواجهات برمجة التطبيقات عبر جميع البيئات. تنشئ APIM بوابات API متسقة وحديثة لخدمات الواجهة الخلفية الحالية.

التوصيات

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

للاتصال بالموارد الخاصة في النهاية الخلفية، يجب أن تكون Application Gateway وAPIM في نفس الشبكة الظاهرية مثل الموارد أو في شبكة ظاهرية نظيرة.

  • يسمح نموذج التوزيع الداخلي الخاص لـ (APIM) بالاتصال بشبكة ظاهرية موجودة، ما يجعلها قابلة للوصول من داخل سياق الشبكة هذا. لتمكين هذه الميزة، قم بتوزيع إما مستويات إدارة واجهة برمجة التطبيقات (APIM) Developer أو Premium.

  • إدارة الشهادات وكلمات المرور في Azure Key Vault.

  • لتخصيص التفاعلات مع الخدمات، يمكنك استخدام إدخالات سجل CNAME.

البدائل

يمكنك استخدام خدمات أخرى لتقديم مستوى مماثل من جدار الحماية وحماية جدار حماية تطبيق الويب (WAF):

الاعتبارات

الموثوقيه

يتم نشر Azure Application Gateway دائما بطريقة متوفرة بشكل كبير، بغض النظر عن عدد المثيلات. لتجنب تأثير عطل المنطقة، يمكنك تكوين بوابة التطبيق لتمتد عبر مناطق توفر متعددة. لمزيد من المعلومات، راجع التحجيم التلقائي والتوافر العالي.

تمكين تكرار المنطقة لمكونات خدمة APIM لتوفير المرونة والتوافر العالي. تكرار المنطقة يكرر بوابة APIM ومستوى التحكم عبر مراكز البيانات في مناطق منفصلة مادياً، ما يجعلها مرنة لفشل المنطقة. المستوى المتميز لإدارة واجهة برمجة التطبيقات مطلوب لدعم مناطق التوفر.

تدعم APIM أيضا عمليات النشر متعددة المناطق، والتي يمكن أن تحسن التوفر إذا كانت منطقة واحدة غير متصلة. لمزيد من المعلومات، راجع النشر متعدد المناطق. في هذا المخطط، من المهم أيضا أن يكون لديك Application Gateway واحدة لكل منطقة، نظرا لأن Application Gateway هي خدمة إقليمية.

الأمان

لمزيد من المعلومات بشأن أمان بوابة التطبيق، راجع أساس أمان Azure لبوابة التطبيق.

لمزيد من المعلومات بشأن أمان إدارة واجهة برمجة التطبيقات (APIM)، راجع أساس أمان Azure لإدارة واجهة برمجة التطبيقات.

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

تحسين التكلفة

تعتمد تكلفة هذه البنية على جوانب التكوين مثل:

  • مستويات الخدمة
  • قابلية التوسع، تعني عدد المثيلات المخصصة ديناميكياً بواسطة الخدمات لدعم طلب معين
  • ما إذا كانت هذه البنية ستعمل بشكل مستمر أو بضع ساعات فقط في الشهر

بعد تقييم هذه الجوانب، انتقل إلى Azure Pricing Calculator لتقدير الأسعار.

كفاءة الأداء

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

لدعم السيناريوهات المتزامنة للغاية، قم بتشغيل التحجيم التلقائي لإدارة واجهة برمجة التطبيقات (APIM). التوسع التلقائي يوسع قدرات إدارة واجهة برمجة التطبيقات استجابة لأعداد متزايدة من الطلبات الواردة. للحصول على مزيد من المعلومات، راجع إنشاء مثيل Azure APIM.

نشر هذا السيناريو

يظهر هذا السيناريو في منشور معرض Azure Quickstart لبوابة التطبيق مع إدارة واجهة برمجة التطبيقات الداخلية وتطبيق الويب.

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

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