مشاركة عبر


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

لتحسين أمان المكالمات إلى واجهات برمجة التطبيقات الخاصة بك، يمكنك إعداد مصادقة 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 وحدده.

  2. تأكد من أنك في نفس المستأجر مثل تطبيق الويب أو تطبيق واجهة برمجة التطبيقات.

    تلميح

    لتبديل المستأجرين، من شريط عنوان Azure، افتح ملف التعريف الخاص بك، وحدد تبديل الدليل.

  3. في قائمة موارد المستأجر، ضمن Manage، حدد App registrations.

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

  4. من شريط الأدوات، حدد تسجيل جديد.

    تظهر لقطة الشاشة مدخل Microsoft Azure مع مستأجر Microsoft Entra وجزء تسجيلات التطبيقات والأمر المحدد للتسجيل الجديد.

  5. في صفحة تسجيل تطبيق ، اتبع الخطوات التالية:

    1. بالنسبة للاسم، قم بتوفير اسم مألوف يواجه المستخدم لهوية تطبيق المنطق الخاص بك.

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

    3. ضمن Redirect URI، حدد Web as the platform. بجانب هذا الخيار، قم بتوفير عنوان URL فريد للموقع لإرجاع استجابة المصادقة.

      تظهر لقطة الشاشة جزء لتسجيل تطبيق باسم هوية التطبيق وعنوان URL لمكان إرسال استجابة المصادقة.

    4. عند الانتهاء، حدد تسجيل.

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

    تظهر لقطة الشاشة هوية التطبيق لتطبيقك المنطقي.

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

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

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

    تظهر لقطة الشاشة معرف التطبيق (العميل) المميز.

  9. من قائمة هوية التطبيق، ضمن Manage، حدد Certificates & secrets.

  10. في صفحة Client secrets ، حدد New client secret.

  11. في جزء Add a client secret ، ل Description، أدخل اسما لسرك. بالنسبة ل Expires، حدد مدة للبيانات السرية الخاصة بك. عندما تنتهي، حدد إضافة.

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

    تظهر لقطة الشاشة إنشاء البيانات السرية لهوية التطبيق.

    في صفحة الشهادات والأسرار ، في علامة التبويب أسرار العميل ، يظهر سرك الآن مع قيمة سرية ومعرف سري.

    تظهر لقطة الشاشة القيمة السرية والمعرف السري مع تحديد زر النسخ للقيمة السرية.

  12. انسخ القيمة السرية للاستخدام لاحقاً. عندما تكوِّن تطبيقك المنطقي في الجزء 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. عندما تنتهي، حدد إضافة.

    في قسم موفر الهوية ، تظهر الآن هوية التطبيق الجديدة لتطبيق الويب أو تطبيق واجهة برمجة التطبيقات:

    تظهر لقطة الشاشة هوية التطبيق التي تم إنشاؤها حديثا لتطبيق الويب أو تطبيق واجهة برمجة التطبيقات.

    تلميح

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

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

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

  1. في قائمة تطبيق الويب، ضمن Manage، حدد Authentication.

  2. في قسم موفر الهوية ، ابحث عن هوية التطبيق التي تم إنشاؤها مسبقا. حدد اسم هوية التطبيق.

    تظهر لقطة الشاشة صفحة المصادقة مفتوحة لهوية التطبيق التي تم إنشاؤها حديثا.

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

    تظهر لقطة الشاشة صفحة نظرة عامة مفتوحة لهوية تطبيق الويب والقيم المحددة لمعرف التطبيق (العميل) ومعرف الدليل (المستأجر).

    يمكنك أيضاً استخدام المعرّف الفريد الخاص بهوية المستأجر في تطبيق الويب خاصتك أو قالب التوزيع الخاص بتطبيق واجهة برمجة التطبيقات، إذا لزم الأمر. هذا المعرف الفريد العمومي هو GUID الخاص بالمستأجر ("معرف المستأجر") ويجب أن يظهر في عنوان URL هذا: https://sts.windows.net/<tenant-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 التالي:

نشر في 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 ‏‏نعم‬ المعرف الفريد العمومي (GUID) لمستأجر Microsoft Entra.
audience ‏‏نعم‬ المعرف الفريد العمومي (GUID) للمورد الهدف الذي تريد الوصول إليه، وهو معرف العميل من هوية التطبيق لتطبيق الويب أو تطبيق واجهة برمجة التطبيقات.
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 المتبادلة.

هام

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

تأكد من تخزين هذه المعلومات بأمان باستخدام معرف Microsoft Entra وAzure Key Vault. لا تقم بترميز هذه المعلومات أو مشاركتها مع مستخدمين آخرين أو حفظها في نص عادي في أي مكان يمكن للآخرين الوصول إليه. قم بإعداد خطة لتدوير الأسرار أو إبطالها في حالة تعرضها للخطر. لمزيد من المعلومات، راجع الموارد التالية:

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

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

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

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

تحذير

تنصح Microsoft بعدم استخدام التدفقات التالية للمصادقة والتخويل:

  • بيانات اعتماد كلمة مرور مالك المورد (ROPC) ل OAuth 2.0

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

    لمزيد من المعلومات، راجع بيانات اعتماد كلمة مرور مالك المورد Oauth 2.0.

  • تدفق المنح الضمني ل OAuth 2.0

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

    لمزيد من المعلومات، راجع تدفق المنح الضمني OAuth 2.0.

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

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

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

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

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

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