إضافة مصادقة عند استدعاء واجهات برمجة التطبيقات المخصصة من تطبيقات Azure Logic

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

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

  • لا توجد تغييرات في التعليمات البرمجية: قم بحماية واجهة برمجة التطبيقات الخاصة بك باستخدام معرف Microsoft Entra من خلال مدخل Microsoft Azure، لذلك لا يتعين عليك تحديث التعليمات البرمجية الخاصة بك أو إعادة نشر واجهة برمجة التطبيقات الخاصة بك.

    إشعار

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

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

مصادقة المكالمات إلى API الخاص بك دون تغيير التعليمة البرمجية

فيما يلي الخطوات العامة لهذه الطريقة:

  1. إنشاء هويتين لتطبيق Microsoft Entra: واحدة لمورد تطبيق المنطق والأخرى لتطبيق الويب الخاص بك (أو تطبيق API).

  2. لمصادقة المكالمات إلى واجهة برمجة التطبيقات الخاصة بك، استخدم بيانات الاعتماد (معرف العميل والسر) لكيان الخدمة المقترن بهوية تطبيق Microsoft Entra لتطبيق المنطق الخاص بك.

  3. بادر بتضمين معرفات التطبيق في تعريف سير عمل التطبيق المنطقي خاصتك.

الجزء 1: إنشاء هوية تطبيق Microsoft Entra لتطبيق المنطق الخاص بك

يستخدم مورد تطبيق المنطق هوية تطبيق Microsoft Entra هذه للمصادقة مقابل معرف Microsoft Entra. ما عليك سوى إعداد هذه الهوية مرة واحدة للدليل الخاص بك. على سبيل المثال، يمكنك اختيار استخدام نفس الهوية لجميع تطبيقاتك المنطقية، رغم أنه يمكنك إنشاء هويات فريدة لكل تطبيق منطقي. يمكنك إعداد هذه الهويات في مدخل Microsoft Azure أو استخدام PowerShell.

  1. في مدخل Microsoft Azure، حدد Microsoft Entra ID.

  2. تأكد من أنك في نفس الدليل مثل تطبيق الويب أو تطبيق API.

    تلميح

    لتبديل الدلائل، اختر ملف التعريف الخاص بك وحدد دليل آخر. أو اختر نظرة عامة>تبديل الدليل.

  3. في قائمة الدليل، أسفل إدارة، حدد تسجيلات التطبيق>تسجيل جديد.

    تعرض قائمة جميع التسجيلات جميع تسجيلات التطبيقات في دليلك. لعرض تسجيلات التطبيق خاصتك فقط، حدد التطبيقات المملوكة.

    Screenshot showing Azure portal with Microsoft Entra instance,

  4. بادر بتزويد اسماً يوجه للمستخدم لهوية التطبيق الخاصة بتطبيقك المنطقي. حدد نوع الحساب المدعوم. بالنسبة لإعادة توجيه URI، حدد ويب، وأدخِل عنوان URL فريد لإرجاع استجابة المصادقة، وحدد تسجيل.

    Screenshot showing

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

    Screenshot showing the application identity for your logic app.

  5. في قائمة تسجيلات التطبيق، حدد هوية التطبيق الجديد خاصتك.

  6. من قائمة التنقل بين هوية التطبيق، حدد نظرة عامة.

  7. من جزء نظرة عامة، ضمن أساسيات، انسخ معرّف التطبيق واحفظه لاستخدامه كـ "معرف العميل" لتطبيقك المنطقي في الجزء 3.

    Screenshot showing the application (client) ID underlined.

  8. من قائمة تنقل هوية التطبيق، حدد الشهادات والأسرار.

  9. في علامة تبويب أسرار العميل، اختر البيانات السرية الجديدة الخاصة بالعميل.

  10. بالنسبة لـ وصف، أدخِل اسماً لبياناتك السرية. ضمن انتهاء مدة الصلاحية، حدد مدة لبياناتك السرية. عندما تنتهي، حدد إضافة.

    البيانات السرية التي تنشئها تعمل بمثابة "بيانات سرية" خاصة بهوية التطبيق أو كلمة المرور لتطبيقك المنطقي.

    Screenshot showing secret creation for application identity.

    في جزء الشهادات والأسرار ، ضمن أسرار العميل، يظهر سرك الآن جنبا إلى جنب مع قيمة سرية ومعرف سري.

    Screenshot showing secret value and secret ID with copy button for secret value selected.

  11. انسخ القيمة السرية للاستخدام لاحقاً. عندما تكوِّن تطبيقك المنطقي في الجزء 3، فإنك تحدد هذه القيمة على أنها "بيانات سرية" أو كلمة المرور.

الجزء الثاني: إنشاء هوية تطبيق Microsoft Entra لتطبيق الويب أو تطبيق واجهة برمجة التطبيقات

إذا تم بالفعل توزيع تطبيق الويب أو تطبيق API، يمكنك تشغيل المصادقة وإنشاء هوية التطبيق في مدخل Microsoft Azure. بخلاف ذلك، يمكنك تشغيل المصادقة عند التوزيع باستخدام قالب Azure Resource Manager.

إنشاء هوية التطبيق لتطبيق ويب مُوزَّع أو تطبيق واجهة برمجة التطبيقات في مدخل Azure

  1. In the Azure portal, find and select your web app or API app.

  2. ضمن إعدادات، حدد مصادقة>إضافة موفر الهوية.

  3. بعد فتح جزء إضافة موفر هوية، في علامة التبويب الأساسيات، من قائمة موفر الهوية، حدد Microsoft لاستخدام هويات Microsoft Entra، ثم حدد إضافة.

  4. الآن بادر بإنشاء هوية تطبيق لتطبيق الويب أو تطبيق واجهة برمجة التطبيقات خاصتك كما يلي:

    1. بالنسبة إلى نوع تسجيل التطبيقات، حدد إنشاء تسجيل تطبيق جديد.

    2. بالنسبة إلى الاسم، بادر بتوفير اسم لهوية تطبيقك الخاص.

    3. بالنسبة إلى أنواع الحسابات المدعومة، حدد أنواع الحسابات المناسبة للسيناريو خاصتك.

    4. لتقييد الوصول، حدد طلب المصادقة.

    5. بالنسبة للطلبات غير المُصدَّق عليها، حدد الخيار استناداً إلى السيناريو خاصتك.

    6. عندما تنتهي، حدد إضافة.

    تظهر هوية التطبيق التي أنشأتها للتو لتطبيق الويب أو تطبيق واجهة برمجة التطبيقات خاصتك الآن في قسم موفر الهوية :

    Screenshot showing newly created application identity for web app or API app.

    تلميح

    إذا لم تظهر هوية التطبيق، في شريط الأدوات، حدد تحديث.

الآن يجب عليك العثور على معرف التطبيق (العميل) ومعرف المستأجر لهوية التطبيق التي أنشأتها للتو لتطبيق الويب أو تطبيق واجهة برمجة التطبيقات خاصتك. يمكنك استخدام هذه المعرفات في الجزء 3. لذا تابع الخطوات التالية لمدخل Azure.

ابحث عن معرف العميل ومعرف المستأجر لهوية التطبيق لتطبيق الويب أو تطبيق API في مدخل Microsoft Azure

  1. في قائمة التنقل الخاصة بتطبيق الويب لديك، حدد المصادقة.

  2. في قسم موفر الهوية، ابحث عن هوية التطبيق التي أنشأتها مسبقاً. حدد اسم هوية تطبيقك الخاص.

    Screenshot showing newly created application identity with 'Overview' pane open.

  3. بعد فتح جزء نظرة عامة الخاص بهوية التطبيق، ابحث عن قيم معرف التطبيق (العميل) و معرف الدليل (المستأجر). انسخ القيم واحفظها لاستخدامها في الجزء 3.

    Screenshot showing application identity's 'Overview' pane open with 'Application (client) ID' value and 'Directory (tenant) ID' value underlined.

    يمكنك أيضاً استخدام المعرّف الفريد الخاص بهوية المستأجر في تطبيق الويب خاصتك أو قالب التوزيع الخاص بتطبيق واجهة برمجة التطبيقات، إذا لزم الأمر. هذا المعرف الفريد العمومي هو GUID الخاص بالمستأجر ("معرف المستأجر") ويجب أن يظهر في عنوان URL هذا: https://sts.windows.net/{GUID}

إعداد المصادقة عند التوزيع باستخدام قالب Azure Resource Manager

إذا كنت تستخدم قالب Azure Resource Manager (قالب ARM)، فلا يزال يتعين عليك إنشاء هوية تطبيق Microsoft Entra لتطبيق الويب أو تطبيق API الذي يختلف عن هوية التطبيق لتطبيق المنطق الخاص بك. لإنشاء هوية التطبيق، ثم العثور على معرف العميل ومعرف المستأجر، اتبع الخطوات السابقة في الجزء 2 لمدخل Azure. ستستخدم كلاً من معرّف العميل ومعرّف المستأجر في قالب توزيع التطبيق خاصتك وأيضاً للجزء 3.

هام

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

بعد الحصول على معرف العميل ومعرف المستأجر، قم بتضمين هذه المعرفات كمصدر فرعي لتطبيق الويب أو تطبيق API في قالب التوزيع الخاص بك:

"resources": [
   {
      "apiVersion": "2015-08-01",
      "name": "web",
      "type": "config",
      "dependsOn": ["[concat('Microsoft.Web/sites/','parameters('webAppName'))]"],
      "properties": {
         "siteAuthEnabled": true,
         "siteAuthSettings": {
            "clientId": "<client-ID>",
            "issuer": "https://sts.windows.net/<tenant-ID>/"
         }
      }
   }
]

لنشر تطبيق ويب فارغ وتطبيق منطقي تلقائيا مع مصادقة Microsoft Entra، اعرض القالب الكامل هنا، أو حدد الزر Deploy to Azure التالي:

Deploy to Azure

الجزء 3: ملء قسم التفويض في التطبيق المنطقي الخاص بك

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

  1. افتح تعريف تطبيقك المنطقي في طريقة عرض التعليمات البرمجية.

  2. انتقل إلى تعريف إجراء HTTP، وابحث عن قسم التخويل، وبادر بتضمين الخصائص التالية:

{
   "tenant": "<tenant-ID>",
   "audience": "<client-ID-from-Part-2-web-app-or-API app>",
   "clientId": "<client-ID-from-Part-1-logic-app>",
   "secret": "<secret-from-Part-1-logic-app>",
   "type": "ActiveDirectoryOAuth"
}
الخاصية المطلوب الوصف
tenant ‏‏نعم‬ المعرف الفريد العمومي لمستأجر Microsoft Entra
audience ‏‏نعم‬ المعرّف الفريد العمومي (GUID) للمورد الهدف الذي تريد الوصول إليه، وهو معرّف العميل من هوية التطبيق لتطبيق الويب أو تطبيق API
clientId ‏‏نعم‬ المعرّف الفريد العمومي للعميل الذي يطلب الوصول، وهو معرّف العميل من هوية التطبيق لتطبيقك المنطقي
secret ‏‏نعم‬ البيانات السرية أو كلمة المرور من هوية التطبيق للعميل الذي يطلب الرمز المميز للوصول
type ‏‏نعم‬ نوع المصادقة. بالنسبة لمصادقة ActiveDirectoryOAuth، تكون القيمة ActiveDirectoryOAuth.

على سبيل المثال:

{
   "actions": {
      "HTTP": {
         "inputs": {
            "method": "POST",
            "uri": "https://your-api-azurewebsites.net/api/your-method",
            "authentication": {
               "tenant": "tenant-ID",
               "audience": "client-ID-from-azure-ad-app-for-web-app-or-api-app",
               "clientId": "client-ID-from-azure-ad-app-for-logic-app",
               "secret": "key-from-azure-ad-app-for-logic-app",
               "type": "ActiveDirectoryOAuth"
            }
         }
      }
   }
}

مكالمات API الآمنة من خلال التعليمة البرمجية

مصادقة الشهادة

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

في قسم التخويل، بادر بتضمين الخصائص التالية:

{
   "type": "ClientCertificate",
   "password": "<password>",
   "pfx": "<long-pfx-key>"
}
الخاصية المطلوب الوصف
type ‏‏نعم‬ نوع المصادقة. بالنسبة لشهادات عميل TLS/SSL، يجب أن تكون القيمة ClientCertificate.
password لا كلمة المرور للوصول إلى شهادة العميل (ملف PFX)
pfx ‏‏نعم‬ محتويات شهادة العميل بترميز base64 (ملف PFX)

المصادقة الأساسية

للتحقق من صحة الطلبات الواردة من التطبيق المنطقي الخاص بك إلى تطبيق الويب أو تطبيق API، يمكنك استخدام المصادقة الأساسية، مثل اسم المستخدم وكلمة المرور. المصادقة الأساسية هي نمط شائع، ويمكنك استخدام هذه المصادقة بأي لغة مستخدمة لإنشاء تطبيق الويب أو تطبيق API.

في قسم التخويل، بادر بتضمين الخصائص التالية:

{
   "type": "Basic",
   "username": "<username>",
   "password": "<password>"
}
الخاصية المطلوب الوصف
type ‏‏نعم‬ نوع المصادقة الذي تريد استخدامه. للمصادقة الأساسية، يجب أن تكون القيمة Basic.
username ‏‏نعم‬ اسم المستخدم الذي تريد استخدامه للمصادقة
password ‏‏نعم‬ كلمة المرور التي تريد استخدامها للمصادقة

مصادقة Microsoft Entra من خلال التعليمات البرمجية

بشكل افتراضي، لا توفر مصادقة Microsoft Entra التي تقوم بتشغيلها في مدخل Microsoft Azure تخويلا دقيقا. على سبيل المثال، تقوم هذه المصادقة بتأمين واجهة برمجة التطبيقات الخاصة بك على مستأجر معين فقط، وليس لمستخدم أو تطبيق معين.

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

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