تسليم الأحداث إلى نقاط النهاية المحمية من Microsoft Entra
توضح هذه المقالة كيفية استخدام معرف Microsoft Entra لتأمين الاتصال بين اشتراك الحدث ونقطة نهاية الإخطار على الويب. يستخدم مدخل Azure للعرض التوضيحي. ومع ذلك يمكن أيضا تمكين الميزة باستخدام CLI أو PowerShell أو SDKs.
هام
تم تقديم فحص وصول إضافي كجزء من إنشاء أو تحديث اشتراك الحدث في 30 مارس 2021 لمعالجة ثغرة أمنية. يجب أن يكون أساس خدمة العميل المشترك إما بصفته مالكا أو له دور معين مُسند إليه على أساس خدمة تطبيق الوجهة. أعد تكوين تطبيق Microsoft Entra باتباع الإرشادات الجديدة الواردة في هذه المقالة. للحصول على نظرة عامة على تطبيقات Microsoft Entra وكيانات الخدمة، راجع نظرة عامة على النظام الأساسي للهويات في Microsoft (الإصدار 2.0).
السيناريوهات
توضح هذه المقالة كيفية تنفيذ السيناريوهين التاليين بالتفصيل:
تسليم الأحداث إلى خطاف ويب موجود في نفس مستأجر Microsoft Entra مثل اشتراك الحدث. يمكنك استخدام إما مستخدم Microsoft Entra أو تطبيق Microsoft Entra ككاتب اشتراك الحدث في هذا السيناريو.
تسليم الأحداث إلى خطاف ويب موجود في مستأجر Microsoft Entra مختلف عن اشتراك الحدث. يمكنك فقط استخدام تطبيق Microsoft Entra ككاتب اشتراك حدث في هذا السيناريو.
في السيناريو الأول، يمكنك تشغيل جميع الخطوات أو البرامج النصية في مستأجر واحد يحتوي على كل من اشتراك الحدث وخطاف الويب. وفي السيناريو الثاني، يمكنك تشغيل بعض الخطوات في المستأجر الذي لديه اشتراك الحدث وبعض الخطوات في المستأجر الذي يحتوي على إخطار على الويب.
تسليم الأحداث إلى Webhook في نفس مستأجر Microsoft Entra
يوضح الرسم التخطيطي التالي كيفية تسليم أحداث Event Grid إلى خطاف ويب في نفس المستأجر مثل اشتراك الحدث.
يوجد قسمان فرعيان في هذا القسم. اقرأ كل من السيناريوهين أو السيناريو الذي تهتم به.
- تكوين اشتراك الحدث باستخدام مستخدم معرف Microsoft Entra
- تكوين اشتراك الحدث باستخدام تطبيق معرف Microsoft Entra
تكوين اشتراك الحدث باستخدام مستخدم Microsoft Entra
يوضح هذا القسم كيفية تكوين اشتراك الحدث باستخدام مستخدم Microsoft Entra.
إنشاء تطبيق Microsoft Entra لخطاف الويب الذي تم تكوينه للعمل مع Microsoft Entra (مستأجر واحد).
افتح Azure Shell في المستأجر وحدد بيئة PowerShell.
قم بتعديل قيمة $webhookAadTenantId للاتصال بالمستأجر.
- المتغيرات:
- $webhookAadTenantId: معرف مستأجر Azure
$webhookAadTenantId = "[REPLACE_WITH_YOUR_TENANT_ID]" Connect-MgGraph -TenantId $webhookAadTenantId -Scopes "Application.ReadWrite.All, AppRoleAssignment.ReadWrite.All"
- المتغيرات:
افتح البرنامج النصي التالي ثم حدّث قيم كل من $webhookAppObjectId و$eventSubscriptionWriterUserPrincipalName مستخدماً معرفاتك، ثم تابع تشغيل البرنامج النصي.
- المتغيرات:
- $webhookAppObjectId: معرف تطبيق Microsoft Entra الذي تم إنشاؤه للإخطار على الويب
- $eventSubscriptionWriterUserPrincipalName: الاسم الأساسي لمستخدم Azure للمستخدم الذي ينشئ اشتراك حدث
إشعار
لا تحتاج إلى تعديل قيمة $eventGridAppId. في هذا البرنامج النصي، يتم تعيين AzureEventGridSecureWebhookSubscriber $eventGridRoleName. تذكر أنه يجب أن تكون عضوا في دور مسؤول تطبيق Microsoft Entra أو أن تكون مالكا لمدير الخدمة لتطبيق webhook في معرف Microsoft Entra لتنفيذ هذا البرنامج النصي.
إذا رأيت رسالة الخطأ التالية، فأنت بحاجة إلى الترقية إلى أساس الخدمة. تم تقديم فحص وصول إضافي كجزء من إنشاء أو تحديث اشتراك الحدث في 30 مارس 2021 لمعالجة ثغرة أمنية. يجب أن يكون أساس خدمة العميل المشترك إما بصفته مالكا أو له دور معين مُسند إليه على أساس خدمة تطبيق الوجهة.
New-MgServicePrincipalAppRoleAssignment: Error occurred while executing NewServicePrincipalAppRoleAssignment Code: Authorization_RequestDenied Message: Insufficient privileges to complete the operation.
- المتغيرات:
في المدخل، عند إنشاء اشتراك حدث، اتبع الخطوات التالية:
حدد نوع نقطة النهاية باعتبارها إخطار على الويب Web Hook.
وحدد URI لنقطة النهاية.
حدد تبويب Additional features في أعلى الصفحة Create Event Subscriptions.
من التبويب Additional features نفّذ هذه الخطوات:
حدد استخدام مصادقة Microsoft Entra، وقم بتكوين معرف المستأجر ومعرف التطبيق:
انسخ معرف مستأجر Microsoft Entra من إخراج البرنامج النصي وأدخله في حقل معرف مستأجر Microsoft Entra.
انسخ معرف تطبيق Microsoft Entra من إخراج البرنامج النصي وأدخله في حقل معرف تطبيق Microsoft Entra. يمكنك استخدام معرف تطبيق Microsoft Entra URI بدلا من استخدام معرف التطبيق. لمزيد من المعلومات حول URI معرف التطبيق، راجع هذه المقالة.
تكوين اشتراك الحدث باستخدام تطبيق Microsoft Entra
يوضح هذا القسم كيفية تكوين اشتراك الحدث باستخدام تطبيق Microsoft Entra.
إنشاء تطبيق Microsoft Entra للكاتب اشتراك شبكة الأحداث الذي تم تكوينه للعمل مع Microsoft Entra (مستأجر واحد).
إنشاء سر لتطبيق Microsoft Entra وحفظ القيمة (تحتاج إلى هذه القيمة لاحقا).
انتقل إلى صفحة Access control (IAM) لموضوع Event Grid وقم بتعيين دور Event Grid Contributor إلى تطبيق كاتب اشتراك Event Grid. تسمح لك هذه الخطوة بالوصول إلى مورد Event Grid عند تسجيل الدخول إلى Azure باستخدام تطبيق Microsoft Entra باستخدام Azure CLI.
إنشاء تطبيق Microsoft Entra لخطاف الويب الذي تم تكوينه للعمل مع Microsoft Entra (مستأجر واحد).
افتح Azure Shell في المستأجر وحدد بيئة PowerShell.
قم بتعديل قيمة $webhookAadTenantId للاتصال بالمستأجر.
- المتغيرات:
- $webhookAadTenantId: معرف مستأجر Azure
$webhookAadTenantId = "[REPLACE_WITH_YOUR_TENANT_ID]" Connect-MgGraph -TenantId $webhookAadTenantId -Scopes "Application.ReadWrite.All, AppRoleAssignment.ReadWrite.All"
- المتغيرات:
افتح البرنامج النصي التالي ثم حدّث قيم كل من $webhookAppObjectId و$eventSubscriptionWriterAppId مستخدماً معرفاتك، ثم تابع تشغيل البرنامج النصي.
- المتغيرات:
- $webhookAppObjectId: معرف تطبيق Microsoft Entra الذي تم إنشاؤه للإخطار على الويب
- $eventSubscriptionWriterAppId: معرف تطبيق Microsoft Entra لتطبيق كاتب اشتراك Event Grid.
إشعار
لا تحتاج إلى تعديل قيمة
$eventGridAppId
. في هذا البرنامج النصي، AzureEventGridSecureWebhookSubscriber كما هو محدد ل$eventGridRoleName
. تذكر أنه يجب أن تكون عضوا في دور مسؤول تطبيق Microsoft Entra أو أن تكون مالكا لمدير الخدمة لتطبيق webhook في معرف Microsoft Entra لتنفيذ هذا البرنامج النصي.- المتغيرات:
تسجيل الدخول ك كاتب اشتراك Event Grid تطبيق Microsoft Entra عن طريق تشغيل الأمر .
az login --service-principal -u [REPLACE_WITH_EVENT_GRID_SUBSCRIPTION_WRITER_APP_ID] -p [REPLACE_WITH_EVENT_GRID_SUBSCRIPTION_WRITER_APP_SECRET_VALUE] --tenant [REPLACE_WITH_TENANT_ID]
إنشاء الاشتراك الخاص بك عن طريق تشغيل الأمر.
az eventgrid system-topic event-subscription create --name [REPLACE_WITH_SUBSCRIPTION_NAME] -g [REPLACE_WITH_RESOURCE_GROUP] --system-topic-name [REPLACE_WITH_SYSTEM_TOPIC] --endpoint [REPLACE_WITH_WEBHOOK_ENDPOINT] --event-delivery-schema [REPLACE_WITH_WEBHOOK_EVENT_SCHEMA] --azure-active-directory-tenant-id [REPLACE_WITH_TENANT_ID] --azure-active-directory-application-id-or-uri [REPLACE_WITH_APPLICATION_ID_FROM_SCRIPT] --endpoint-type webhook
إشعار
يستخدم هذا السيناريو موضوع نظام. إذا كنت ترغب في إنشاء اشتراك للمواضيع أو المجالات المخصصة باستخدام Azure CLI، فراجع مرجع CLI.
إذا تم تكوين كل شيء بشكل صحيح، يمكنك إنشاء اشتراك webhook بنجاح في موضوع Event Grid.
إشعار
في هذه المرحلة، تقوم Event Grid الآن بتمرير الرمز المميز لحامل Microsoft Entra إلى عميل webhook في كل رسالة. تحتاج إلى التحقق من صحة رمز التخويل المميز في خطاف الويب الخاص بك.
تسليم الأحداث إلى Webhook في مستأجر Microsoft Entra مختلف
لتأمين الاتصال بين اشتراك الحدث ونقطة نهاية الإخطار على الويب الموجودة في مستأجري Microsoft Entra مختلفين، تحتاج إلى استخدام تطبيق معرف Microsoft Entra كما هو موضح في هذا القسم. حاليا، لا يمكن تأمين هذا الاتصال باستخدام مستخدم معرف Microsoft Entra في مدخل Microsoft Azure.
استنادا إلى الرسم التخطيطي، اتبع الخطوات التالية لتكوين كلا المستأجرين.
المستأجر أ
نفّذ الخطوات التالية على المستأجر أ:
إنشاء تطبيق Microsoft Entra للكاتب اشتراك شبكة الأحداث الذي تم تكوينه للعمل مع أي Microsoft Entra (متعدد المستأجرين).
قم بإنشاء سر لتطبيق Microsoft Entra، واحفظ القيمة (تحتاج إلى هذه القيمة لاحقا).
انتقل إلى صفحة Access control (IAM) لموضوع Event Grid. قم بتعيين دور Event Grid Contributor لتطبيق Microsoft Entra من كاتب اشتراك Event Grid. تسمح هذه الخطوة للتطبيق بالوصول إلى مورد Event Grid عند تسجيل الدخول إلى Azure باستخدام تطبيق Microsoft Entra باستخدام Azure CLI.
المستأجر ب
نفّذ الخطوات التالية على المستأجر ب:
إنشاء تطبيق Microsoft Entra لخطاف الويب المكون للعمل مع Microsoft Entra (مستأجر واحد).
افتح Azure Shell، وحدد بيئة PowerShell.
عدّل قيمة $webhookAadTenantId للاتصال بالمستأجر ب.
المتغيرات:
- $webhookAadTenantId: مُعرّف مستأجر Azure الخاص بـ المستأجر ب
$webhookAadTenantId = "[REPLACE_WITH_YOUR_TENANT_ID]" Connect-MgGraph -TenantId $webhookAadTenantId -Scopes "Application.ReadWrite.All, AppRoleAssignment.ReadWrite.All"
افتح البرنامج النصي التالي ثم حدّث قيم كل من $webhookAppObjectId و$eventSubscriptionWriterAppId مستخدماً معرفاتك، ثم تابع تشغيل البرنامج النصي.
- المتغيرات:
$webhookAppObjectId: معرف تطبيق Microsoft Entra الذي تم إنشاؤه للإخطار على الويب
$eventSubscriptionWriterAppId: معرف تطبيق Microsoft Entra لكتاب اشتراك Event Grid
إشعار
لا تحتاج إلى تعديل قيمة
$eventGridAppId
. في هذا البرنامج النصي، يتم تعيين AzureEventGridSecureWebhookSubscriber ل$eventGridRoleName
. تذكر أنه يجب أن تكون عضوا في دور مسؤول تطبيق Microsoft Entra أو أن تكون مالكا لمدير الخدمة لتطبيق webhook في معرف Microsoft Entra لتنفيذ هذا البرنامج النصي.
إذا رأيت رسالة الخطأ التالية، فأنت بحاجة إلى الترقية إلى أساس الخدمة. تم تقديم فحص وصول إضافي كجزء من إنشاء أو تحديث اشتراك الحدث في 30 مارس 2021 لمعالجة ثغرة أمنية. يجب أن يكون أساس خدمة العميل المشترك إما بصفته مالكا أو له دور معين مُسند إليه على أساس خدمة تطبيق الوجهة.
New-MgServicePrincipalAppRoleAssignment: Error occurred while executing NewServicePrincipalAppRoleAssignment Code: Authorization_RequestDenied Message: Insufficient privileges to complete the operation.
- المتغيرات:
المستأجر أ
الآن، في المستأجر أ، قم بالخطوات التالية:
افتح Azure Shell، وسجل الدخول ك كاتب اشتراك Event Grid Microsoft Entra Application عن طريق تشغيل الأمر .
az login --service-principal -u [REPLACE_WITH_APP_ID] -p [REPLACE_WITH_SECRET_VALUE] --tenant [REPLACE_WITH_TENANT_ID]
إنشاء الاشتراك الخاص بك عن طريق تشغيل الأمر.
az eventgrid system-topic event-subscription create --name [REPLACE_WITH_SUBSCRIPTION_NAME] -g [REPLACE_WITH_RESOURCE_GROUP] --system-topic-name [REPLACE_WITH_SYSTEM_TOPIC] --endpoint [REPLACE_WITH_WEBHOOK_ENDPOINT] --event-delivery-schema [REPLACE_WITH_WEBHOOK_EVENT_SCHEMA] --azure-active-directory-tenant-id [REPLACE_WITH_TENANT_B_ID] --azure-active-directory-application-id-or-uri [REPLACE_WITH_APPLICATION_ID_FROM_SCRIPT] --endpoint-type webhook
إشعار
في هذا السيناريو، نستخدم موضوع نظام شبكة الأحداث. انظر هنا، إذا كنت ترغب في إنشاء اشتراك لصالح Custom Topics أو مجالات Event Grid Domains باستخدام Azure CLI.
إذا تم تكوين كل شيء بشكل صحيح، يمكنك إنشاء اشتراك webhook بنجاح في موضوع Event Grid.
إشعار
في هذه المرحلة، تقوم Event Grid الآن بتمرير الرمز المميز لحامل Microsoft Entra إلى عميل webhook في كل رسالة. تحتاج إلى التحقق من صحة رمز التخويل المميز في خطاف الويب الخاص بك.
المحتوى ذو الصلة
- للحصول على معلومات مفاهيمية في هذا الصدد، راجع تسليم حدث WebHook.
- للحصول على مزيدٍ من المعلومات حول مفتاح المصادقة، راجع أمان خطوط شبكة الأحداث والمصادقة.
- لمزيد من المعلومات حول إنشاء اشتراك Azure Event Grid، راجع مخطط اشتراك شبكة الأحداث.