إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توضح لك هذه المقالة كيفية المصادقة باستخدام مساحات أسماء Azure Event Grid باستخدام خطاف ويب أو دالة Azure.
تسمح مصادقة الإخطار على الويب لنقاط نهاية HTTP الخارجية (خطافات الويب أو الوظائف) بمصادقة اتصالات النقل عن بعد لوضع الرسائل في قائمة انتظار الرسائل (MQTT) ديناميكيا. يستخدم هذا الأسلوب التحقق من صحة رمز الويب JSON لمعرف Microsoft Entra لضمان الوصول الآمن.
عندما يحاول العميل الاتصال، يستدعي الوسيط نقطة نهاية HTTP معرفة من قبل المستخدم تتحقق من صحة بيانات الاعتماد، مثل الرموز المميزة لتوقيع الوصول المشترك وأسماء المستخدمين وكلمات المرور، أو حتى إجراء فحوصات قائمة إبطال الشهادات. يقوم خطاف الويب بتقييم الطلب وإرجاع قرار للسماح بالاتصال أو رفضه، جنبا إلى جنب مع بيانات التعريف الاختيارية للتخويل الدقيق. يدعم هذا النهج نهج المصادقة المرنة والمركزية عبر أساطيل الأجهزة المتنوعة وحالات الاستخدام.
المتطلبات الأساسية
- مساحة اسم شبكة الأحداث مع هوية مدارة معينة من قبل النظام أو معينة من قبل المستخدم.
- خطاف ويب خارجي أو دالة Azure.
- الوصول الممنوح للهوية المدارة لمساحة الاسم Event Grid إلى دالة Azure أو خطاف الويب.
الخطوات عالية المستوى
لاستخدام مصادقة webhook المخصصة لمساحات الأسماء، اتبع الخطوات التالية:
- إنشاء مساحة اسم وتكوين الموارد الفرعية الخاصة بها.
- قم بتمكين هوية مدارة في مساحة اسم شبكة الأحداث.
- امنح الهوية المدارة حق الوصول إلى وظيفة Azure أو خطاف الويب.
- قم بتكوين إعدادات الإخطار على الويب المخصصة على مساحة اسم شبكة الأحداث.
- قم بتوصيل عملائك بمساحة اسم Event Grid والحصول على مصادقة عبر خطاف الويب أو الوظيفة.
إنشاء مساحة اسم وتكوين مواردها الفرعية
لإنشاء مساحة اسم وتكوين مواردها الفرعية، اتبع الإرشادات الواردة في التشغيل السريع: نشر رسائل MQTT والاشتراك فيها على مساحة اسم شبكة الأحداث باستخدام مدخل Microsoft Azure. تخطي خطوات إنشاء شهادة وعميل لأن هويات العميل تأتي من الرمز المميز المقدم. تستند سمات العميل إلى المطالبات المخصصة في الرمز المميز للعميل. يتم استخدام سمات العميل في استعلام مجموعة العميل ومتغيرات قالب الموضوع وتكوين إثراء التوجيه.
تمكين هوية مدارة على مساحة اسم شبكة الأحداث
لتمكين هوية مدارة معينة من قبل النظام على مساحة اسم شبكة الأحداث، استخدم الأمر التالي:
az eventgrid namespace update --resource-group <resource group name> --name <namespace name> --identity "{type:systemassigned}"
للحصول على معلومات حول كيفية تكوين النظام والهويات المعينة من قبل المستخدم باستخدام مدخل Microsoft Azure، راجع تمكين الهوية المدارة لمساحة اسم شبكة الأحداث.
منح الهوية المدارة حق الوصول المناسب إلى وظيفة أو خطاف ويب
امنح الهوية المدارة لمساحة اسم Event Grid الوصول المناسب إلى دالة Azure الهدف أو خطاف الويب.
لإعداد مصادقة مخصصة لوظيفة Azure، اتبع الخطوات التالية.
إنشاء تطبيق Microsoft Entra
في صفحة نظرة عامة للتطبيق، قم بتدوين قيمة معرف التطبيق (العميل).
في القائمة اليمنى، حدد عرض واجهة برمجة تطبيقات. بجوار معرف التطبيق URI، حدد إضافة.
قم بتدوين قيمة URI لمعرف التطبيق في جزء تحرير معرف التطبيق URI ، ثم حدد حفظ.
إعداد المصادقة لدالة Azure
إذا كانت لديك دالة Azure أساسية تم إنشاؤها من مدخل Microsoft Azure، فقم بإعداد المصادقة والتحقق من صحة الرمز المميز لمعرف Microsoft Entra الذي تم إنشاؤه باستخدام هوية مدارة.
انتقل إلى تطبيق Azure Functions.
في القائمة اليمنى، حدد Authentication، ثم حدد Add identity provider.
في الصفحة إضافة موفر هوية ، بالنسبة إلى موفر الهوية، حدد Microsoft من القائمة المنسدلة.
في قسم تسجيل التطبيق ، حدد قيما للخصائص التالية:
بالنسبة لجمهور الرمز المميز المسموح به، أضف قيمة URI لمعرف التطبيق لتطبيق Microsoft Entra التي لاحظتها سابقا.
في قسم الفحوصات الإضافية ، لتطوير تطبيق العميل، حدد السماح بالطلبات من تطبيقات عميل معينة.
في جزء تطبيقات العميل المسموح بها ، أدخل معرف العميل للهوية المدارة المعينة من قبل النظام المستخدمة لإنشاء الرمز المميز. يمكنك العثور على هذا المعرف في تطبيق المؤسسة لمورد معرف Microsoft Entra.
اختر إعدادات أخرى استنادا إلى متطلباتك الخاصة، ثم حدد إضافة.
الآن، قم بإنشاء واستخدام الرمز المميز لمعرف Microsoft Entra.
- قم بإنشاء رمز مميز لمعرف Microsoft Entra باستخدام الهوية المدارة مع معرف التطبيق URI كموارد.
- استخدم هذا الرمز المميز لاستدعاء دالة Azure عن طريق تضمينها في عنوان الطلب.
تكوين إعدادات مصادقة إخطار على الويب المخصصة على مساحة اسم شبكة الأحداث
قم بتكوين إعدادات مصادقة الإخطار على الويب المخصصة على مساحة اسم شبكة الأحداث باستخدام مدخل Microsoft Azure وAzure CLI. يمكنك إنشاء مساحة الاسم أولا ثم تحديثها.
استخدام مدخل Microsoft Azure
انتقل إلى مساحة اسم شبكة الأحداث في مدخل Microsoft Azure.
في صفحة Event Grid Namespace ، حدد Configuration في القائمة اليسرى.
في قسم مصادقة الإخطار على الويب المخصصة ، حدد قيما للخصائص التالية:
- نوع الهوية المدارة: حدد المستخدم المخصص.
- عنوان URL لخطاف الويب: أدخل قيمة نقطة نهاية عنوان URL حيث ترسل خدمة Event Grid طلبات إخطار ويب مصادق عليها باستخدام الهوية المدارة المحددة.
- عنوان URL لجمهور الرمز المميز: أدخل قيمة معرف تطبيق Microsoft Entra أو URI للحصول على رمز الوصول المميز ليتم تضمينه كرمز مميز للحامل في طلبات التسليم.
- معرف مستأجر معرف Microsoft Entra: أدخل قيمة معرف مستأجر Microsoft Entra المستخدم للحصول على الرمز المميز للحامل لتسليم خطاف الويب المصادق عليه.
حدد تطبيق.
استخدام Azure CLI
لتحديث مساحة الاسم الخاصة بك باستخدام تكوين مصادقة الإخطار على الويب المخصص، استخدم الأمر التالي:
az eventgrid namespace update \
--resource-group <resource-group-name> \
--name <namespace-name> \
--api-version 2025-04-01-preview \
--identity-type UserAssigned \
--identity-user-assigned-identities "/subscriptions/XXXXXXXXXXX/resourcegroups/XXXXXXXXXXX/providers/Microsoft.ManagedIdentity/userAssignedIdentities/XXXXXXXXXXX={}" \
--set properties.isZoneRedundant=true \
properties.topicSpacesConfiguration.state=Enabled \
properties.topicSpacesConfiguration.clientAuthentication.webHookAuthentication.identity.type=UserAssigned \
properties.topicSpacesConfiguration.clientAuthentication.webHookAuthentication.identity.userAssignedIdentity="/subscriptions/XXXXXXXXXXX/resourcegroups/XXXXXXXXXXX/providers/Microsoft.ManagedIdentity/userAssignedIdentities/XXXXXXXXXXX" \
properties.topicSpacesConfiguration.clientAuthentication.webHookAuthentication.endpointUrl="https://XXXXXXXXXXX" \
properties.topicSpacesConfiguration.clientAuthentication.webHookAuthentication.azureActiveDirectoryApplicationIdOrUri="api://XXXXXXXXXXX/.default" \
properties.topicSpacesConfiguration.clientAuthentication.webHookAuthentication.azureActiveDirectoryTenantId="XXXXXXXXXXX"
استبدل <NAMESPACE_NAME> قيمك الفعلية وبمعها <RESOURCE_GROUP_NAME> . املأ العناصر النائبة في الاشتراك ومجموعة الموارد والهوية ومعرف التطبيق وعنوان URL ومعرف المستأجر. لتحسين أداء وموثوقية المصادقة المستندة إلى الإخطار على الويب لوسيط Event Grid MQTT، نوصي بشدة بتمكين دعم HTTP/2 لنقطة نهاية الإخطار على الويب.
تفاصيل Webhook API
رؤوس الطلبات
التفويض: رمز الحامل
الرمز المميز هو رمز Microsoft Entra المميز للهوية المدارة التي تم تكوينها لاستدعاء خطاف الويب.
حمولة الطلب
{
"clientId": "<string>",
"userName": "<string>",
"password": "<base64 encoded bytes>",
"authenticationMethod": "<string>",
"authenticationData": "<base64 encoded bytes>",
"clientCertificate": "<certificate in PEM format>",
"clientCertificateChain": "<certificates from chain in PEM format>"
}
أوصاف حقل الحمولة
| الحقل | مطلوب/اختياري | الوصف |
|---|---|---|
clientId |
مطلوب | معرف العميل من حزمة MQTT CONNECT. |
userName |
اختياري | اسم المستخدم من حزمة MQTT CONNECT. |
password |
اختياري | كلمة المرور من حزمة MQTT CONNECT في ترميز Base64. |
authenticationMethod |
اختياري | أسلوب المصادقة من حزمة MQTT CONNECT (MQTT5 فقط). |
authenticationData |
اختياري | بيانات المصادقة من حزمة MQTT CONNECT في ترميز Base64 (MQTT5 فقط). |
clientCertificate |
اختياري | شهادة العميل بتنسيق PEM. |
clientCertificateChain |
اختياري | الشهادات الأخرى التي يقدمها العميل مطلوبة لإنشاء السلسلة من شهادة العميل إلى شهادة المرجع المصدق. |
userProperties |
اختياري | خصائص المستخدم من حزمة CONNECT (MQTT5 فقط). |
حمولة الاستجابة
استجابة ناجحة
HTTP/1.1 200 OK
Content-Type: application/json
{
"decision": "allow",
"clientAuthenticationName": "<string>",
"attributes": {
"attr": "<int/string/array_of_strings>",
...
},
"expiration": "<unix time format>"
}
الرد مرفوض
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"decision": "deny",
"errorReason": "<string>"
}
أوصاف حقل الاستجابة
| الحقل | الوصف |
|---|---|
decision (مطلوب) |
قرار المصادقة هو إما allow أو deny. |
clientAuthenticationName |
اسم مصادقة العميل (اسم الهوية). (مطلوب عند decision التعيين على allow.) |
attributes |
قاموس مع سمات. المفتاح هو اسم السمة ، والقيمة هي int/string/array. (اختياري عند decision التعيين على allow.) |
expiration |
تاريخ انتهاء الصلاحية بتنسيق وقت Unix. (اختياري عند decision التعيين على allow.) |
errorReason |
رسالة الخطأ إذا decision تم تعيينه على deny. تم تسجيل هذا الخطأ. (اختياري عند decision التعيين على deny.) |
أمثلة على أنواع السمات المتوافقة
"num_attr_pos": 1,
"num_attr_neg": -1,
"str_attr": "str_value",
"str_list_attr": [
"str_value_1",
"str_value_2"
]
يتم استخدام جميع أنواع البيانات الصحيحة (الرقم الذي يناسبك <int32/string/array_of_strings>) كسمات. في المثال، num_attr_posتحتوي المطالبات على أنواع num_attr_negstr_attrstr_list_attrبيانات صحيحة وتستخدم كسمات.