تأمين خدمات الواجهة الخلفية باستخدام مصادقة شهادة العميل في Azure API Management.

ينطبق على: جميع مستويات إدارة واجهة برمجة التطبيقات

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

يمكنك أيضًا إدارة شهادات إدارة API باستخدام API Management REST API.

خيارات الشهادة

توفر إدارة API خيارين لإدارة الشهادات المستخدمة لتأمين الوصول إلى الخدمات الخلفية:

  • الرجوع إلى شهادة تمت إدارتها في Azure Key Vault
  • إضافة ملف شهادة مباشرة في إدارة API

يوصى باستخدام شهادات key vault لأنها تساعد على تحسين أمان إدارة API:

  • يمكن إعادة استخدام الشهادات المخزنة في key vaults عبر الخدمات
  • يمكن تطبيق نهج الوصول الدقيق على الشهادات المخزنة في key vaults
  • يتم تدوير الشهادات المحدثة في key vault تلقائيًا في إدارة API. بعد التحديث في key vault، يتم تحديث شهادة في إدارة API في غضون 4 ساعات. يمكنك أيضًا تحديث الشهادة يدويًا باستخدام مدخل Azure أو عبر إدارة REST API.

المتطلبات الأساسية

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

  • إذا لم تنشئ بعد مثيل خدمة إدارة API، راجع إنشاء مثيل خدمة إدارة API.

  • يجب أن تكون خدمة الواجهة الخلفية مهيأة لمصادقة شهادة العميل. لتكوين مصادقة الشهادة في Azure App Service، راجع هذه المقالة.

  • تحتاج إلى الوصول إلى الشهادة وكلمة المرور للإدارة في Azure key vault أو تحميله إلى خدمة إدارة API. يجب أن تكون الشهادة بتنسيق PFX. يسمح بالشهادات الموقعة ذاتيًا.

    إذا كنت تستخدم شهادة موقعة ذاتيا:

المتطلبات الأساسية لدمج key vault الرئيسية

  1. إذا لم يكن لديك مخزن مفاتيح بالفعل، فبادر بإنشاء مخزن. لمعرفة خطوات إنشاء مخزن مفاتيح، راجع التشغيل السريع: إنشاء مخزن مفاتيح باستخدام مدخل Microsoft Azure.

    لإنشاء شهادة أو استيرادها إلى مخزن المفاتيح، راجع التشغيل السريع: تعيين شهادة واستردادها من Azure Key Vault باستخدام مدخل Microsoft Azure.

  2. تمكين managed identity معينة من قبل النظام أو المعينة من قبل المستخدم في مثيل APIM.

تكوين الوصول إلى key vault

  1. في المدخل، انتقل إلى key vault.

  2. في القائمة اليسرى، حدد Access configuration، ولاحظ نموذج الإذن الذي تم تكوينه.

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

    لإضافة نهج الوصول إلى مخزن المفاتيح:

    1. في القائمة اليسرى، حدد Access policies.
    2. في صفحة Access policies ، حدد + Create.
    3. في علامة التبويب أذونات، ضمن أذونات سرية، حدد الحصول على وقائمة، ثم حدد التالي.
    4. في علامة التبويب Principal ، حدد principal، وابحث عن اسم المورد للهوية المدارة، ثم حدد Next. إذا كنت تستخدم هوية معينة من قِبل النظام، فإن الأساسي هو اسم مثيل إدارة API الخاص بك.
    5. حدد التالي مرة أخرى. حدد Review + create من علامة التبويب، حدد Create.

    لتكوين الوصول إلى Azure RBAC:

    1. على الجانب الأيسر، حدد التحكم بالوصول (IAM).
    2. في صفحة Access control (IAM)، حدد Add role assignment.
    3. في علامة التبويب Role ، حدد Key Vault Certificate User.
    4. في علامة التبويب Members ، حدد Managed identity>+ Select members.
    5. في صفحة تحديد الهوية المدارة، حدد الهوية المدارة المعينة من قبل النظام أو الهوية المدارة المعينة من قبل المستخدم المقترنة بمثيل إدارة واجهة برمجة التطبيقات، ثم حدد تحديد.
    6. حدد مراجعة + تعيين.

متطلبات جدار الحماية Key Vault

إذا تم تمكين جدار الحماية Key Vault على مخزن المفاتيح الخاص بك، فيما يلي متطلبات إضافية:

  • يجب عليك استخدام الهوية المُدارة المعينة من قبل النظام لمثيل إدارة APIM للوصول إلى مخزن المفاتيح.

  • في جدار الحماية Key Vault، قم بتمكين الخيار Allow Trusted Microsoft Services to bypass this firewall.

  • تأكد من أن عنوان IP للعميل المحلي لديك مسموح له بالوصول إلى مخزن المفاتيح مؤقتاً خلال تحديد شهادة أو سر لإضافته إلى Azure API M. للحصول على مزيدٍ من المعلومات، راجع تكوين إعدادات شبكة Azure Key Vault.

    بعد إكمال التكوين، يمكنك حظر عنوان العميل الخاص بك في جدار حماية مخزن المفاتيح.

متطلبات الشبكة الافتراضية

إذا تم توزيع مثيل إدارة APIM في شبكة ظاهرية، فقم أيضاً بتكوين إعدادات الشبكة التالية:

  • قم بتمكين نقطة نهاية الخدمة في Azure Key Vault على الشبكة الفرعية لإدارة APIM.
  • قم بتكوين قاعدة مجموعة أمان الشبكة (NSG) للسماح بنسبة استخدام الشبكة الصادرة إلى علامات خدمة AzureKeyVault وAzureActiveDirectory service tags.

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

إضافة شهادة key vault

راجع Prerequisites for key vault integration.

هام

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

تنبيه

عند استخدام شهادة key vault في إدارة API، احرص على عدم حذف الشهادة أو key vault أو الهوية المُدارة المستخدمة للوصول إلى key vault.

لإضافة شهادة key vault إلى إدارة API:

  1. في مدخل Azure، انتقل إلى مثيل API Management الخاص بك.

  2. ضمن System، حدد Certificates.

  3. حدد شهادات>+ إضافة.

  4. في المعرف، أدخل اسمًا من اختيارك.

  5. في الشهادة، حدد Key vault.

  6. أدخل معرف شهادة key vault، أو اختر تحديد لتحديد شهادة من key vault.

    هام

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

  7. في Client identity، حدد هوية مُدارة معينة من قِبل النظام أو هوية مُدارة معينة من قِبل المستخدم. تعرف على كيفية إضافة أو تعديل الهويات المُدارة في خدمة API Management.

    إشعار

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

  8. حدد إضافة.

    لقطة شاشة لإضافة شهادة key vault إلى API Management في المدخل.

  9. حدد حفظ.

تحميل شهادة

لتحميل شهادة عميل إلى إدارة API:

  1. في مدخل Azure، انتقل إلى مثيل API Management الخاص بك.

  2. ضمن System، حدد Certificates.

  3. حدد شهادات>+ إضافة.

  4. في المعرف، أدخل اسمًا من اختيارك.

  5. في الشهادة، حدد Key vault.

  6. استعرض لتحديد ملف الشهادة .pfx، وأدخل كلمة المرور الخاصة به.

  7. حدد إضافة.

    لقطة شاشة لتحميل شهادة عميل إلى APIM في المدخل.

  8. حدد حفظ.

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

تكوين API لاستخدام شهادة العميل لمصادقة البوابة

  1. في مدخل Azure، انتقل إلى مثيل API Management الخاص بك.

  2. ضمن واجهات برمجة التطبيقات، حدد واجهات برمجة التطبيقات.

  3. حدد واجهة برمجة تطبيقات من القائمة.

  4. في علامة التبويب تصميم، حدد رمز المحرر في قسم الخلفية.

  5. في بيانات اعتماد البوابة، حدد شهادة العميل وحدد الشهادة من القائمة المنسدلة.

  6. حدد حفظ.

    استخدام شهادة العميل لمصادقة البوابة

تنبيه

يسري هذا التغيير في الحال، وسوف تستخدم استدعاءات لعمليات واجهة برمجة تطبيقات المذكورة الشهادة للمصادقة على الخادم الخلفي.

تلميح

عندما يتم تحديد شهادة لمصادقة البوابة لخدمة backend API، يصبح جزءًا من نهج API هذا، ويمكن عرضه في محرر النهج.

تعطيل التحقق من صحة سلسلة الشهادات للشهادات الموقعة ذاتيا

إذا كنت تستخدم شهادات موقعة ذاتيًا، فستحتاج إلى تعطيل التحقق من صحة سلسلة الشهادات لإدارة API للاتصال بالنظام الخلفي. وإلا فإنه سيتم إرجاع رمز خطأ 500. لتكوين هذا، يمكنك استخدام New-AzApiManagementBackend (للواجهة الخلفية الجديدة) أو Set-AzApiManagementBackend (للواجهة الخلفية الموجودة) PowerShell cmdlets وتعيين -SkipCertificateChainValidation المعلمة إلى True .

$context = New-AzApiManagementContext -resourcegroup 'ContosoResourceGroup' -servicename 'ContosoAPIMService'
New-AzApiManagementBackend -Context  $context -Url 'https://contoso.com/myapi' -Protocol http -SkipCertificateChainValidation $true

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

حذف شهادة عميل

لحذف قيمة مسماة، حدد الاسم ثم حدد Delete من قائمة السياق (...).

حذف شهادة

هام

في حالة الإشارة إلى الشهادة بواسطة أية نهج، تظهر شاشة تحذير. لحذف الشهادة، يجب أولاً إزالة الشهادة من أي نهج تم تكوينها لاستخدامها.

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