تلقي أحداث تغيير واجهة برمجة تطبيقات Microsoft Graph من خلال Azure Event Grid (معاينة)

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

هام

قدرة Microsoft Graph API على إرسال الأحداث إلى Azure Event Grid حاليا في المعاينة العامة. إذا كانت لديك أسئلة أو تحتاج إلى دعم، فراسلنا عبر البريد الإلكتروني على ask-graph-and-grid@microsoft.com.

مصدر حـدث Microsoft أنواع الأحداث المتاحة
Microsoft Entra ID أنواع أحداث Microsoft Entra
Microsoft Outlook أنواع أحداث Microsoft Outlook
محادثات مجموعة Microsoft 365
Microsoft Teams أنواع أحداث Microsoft Teams
Microsoft SharePoint و OneDrive
Microsoft SharePoint
تنبيهات الأمان
محادثات Microsoft
Microsoft Universal Print

هام

إذا لـم تكن على دراية بميزة أحداث الشريك، فشاهد نظرة عامة على أحداث الشركاء.

لماذا يجب علي الاشتراك في الأحداث من مصادر واجهة برمجة تطبيقات Microsoft Graph عبر Event Grid؟

بالإضافة إلى القدرة على الاشتراك في أحداث واجهة برمجة تطبيقات Microsoft Graph عبر Event Grid، لديك خيارات أخرى يُمكنك من خلالها تلقي إعلامات مماثلة (وليس الأحداث). ضع في اعتبارك استخدام واجهة برمجة تطبيقات Microsoft Graph لتسليم الأحداث إلى Event Grid إذا كان لديك أحـد المتطلبات التالية على الأقل:

  • تقوم بتطوير حل يستند إلى الحدث يتطلب أحداثا من معرف Microsoft Entra وOutlook وTeams وما إلى ذلك للرد على تغييرات الموارد. تحتاج إلـى نموذج الحدث القوي وقدرات النشر والاشتراك التي توفرها Event Grid. للحصول على نظرة عامـة على Event Grid، راجع مفاهيم Event Grid.
  • تريد استخدام Event Grid لتوجيه الأحداث إلى وجهات متعددة باستخدام اشتراك واجهة برمجة تطبيقات Graph واحد وتريد تجنب إدارة اشتراكات واجهة برمجة تطبيقات Graph متعددة.
  • تحتاج إلى توجيه الأحداث إلى تطبيقات انتقال البيانات من الخادم أو خطافات الويب أو خدمات Azure المختلفة اعتمادا على بعض الخصائص في الحدث. على سبيل المثال، قد تحتاج إلى توجيه أنواع الأحداث مثل Microsoft.Graph.UserCreated و Microsoft.Graph.UserDeleted إلى تطبيق متخصص يعالج إلحاق المستخدمين وإيقاف صعودهم. قد تحتاج أيضا إلى إرسال Microsoft.Graph.UserUpdated أحداث إلى تطبيق آخر يقوم بمزامنة معلومات جهات الاتصال، على سبيل المثال. يمكنك تحقيق ذلك باستخدام اشتراك واجهة برمجة تطبيقات Graph واحد عند استخدام Event Grid كوجهة إعلام. لمزيد من المعلومات، راجع تصفية الأحداث و معالجات الأحداث.
  • تعد إمكانية التشغيل التفاعلي مُهمة بالنسبة لك. تريد إعادة توجيه الأحداث ومعالجتها بطريقة قياسية باستخدام معيار مواصفات CloudEvents الخاص ب CNCF.
  • تحب دعم القابلية للتوسعة الـذي يوفره CloudEvents. على سبيل المثال، إذا كنت تريد تتبع الأحداث عبر الأنظمة المتوافقة، فاستخدم ملحق CloudEvents التتبع الموزع. تعرف على المزيد حول المزيد مـن ملحقات CloudEvents.
  • تريد استخدام نهج مُثبتة تعتمد على الحدث تعتمد على الصناعة.

تمكين أحداث واجهة برمجة تطبيقات Graph للتدفق إلى موضوع شريكك

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

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

يجب عليك تلبية هذه المتطلبات الأساسية العامة قبل تنفيذ التطبيق الخاص بك لإنشاء اشتراكات واجهة برمجة تطبيقات Microsoft Graph وتجديدها:

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

  • لديك معرفة عملية بإشعارات واجهة برمجة تطبيقات Microsoft Graph. كجزء من التعلم الخاص بك، يمكنك استخدام Graph API Explorer لإنشاء اشتراكات واجهة برمجة تطبيقات Graph.

  • فهم مفاهيم أحداث الشريك.

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

  • لديك حساب مسؤول مستأجر على مستأجر Microsoft 365. يمكنك الحصول على مستأجر تطوير مجانا عن طريق الانضمام إلى برنامج مطوري Microsoft 365.

ستجد متطلبات أساسية أخرى خاصة بلغة البرمجة التي تختارها وبيئة التطوير التي تستخدمها في ارتباطات نماذج واجهة برمجة تطبيقات Microsoft Graph الموجودة في قسم قادم.

هام

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

كيفية إنشاء اشتراك Microsoft Graph API

عند إنشاء اشتراك Graph API، يتم إنشاء موضوع شريك لك. يمكنك تمرير المعلومات التالية في إشعار المعلمةUrl لتحديد موضوع الشريك الذي يجب إنشاؤه وربطه باشتراك Graph API الجديد:

  • اسم موضوع الشريك
  • اسم مجموعة الموارد الذي يتم فيه إنشاء موضوع الشريك
  • المنطقة (الموقع)
  • اشتراك Azure

توضح لك نماذج التعليمات البرمجية هذه كيفية إنشاء اشتراك Graph API. وهي تعرض أمثلة لإنشاء اشتراك لتلقي الأحداث من جميع المستخدمين في مستأجر معرف Microsoft Entra عند إنشائها أو تحديثها أو حذفها.

POST https://graph.microsoft.com/v1.0/subscriptions
Content-type: application/json

{
    "changeType": "Updated,Deleted,Created",
    "notificationUrl": "EventGrid:?azuresubscriptionid=8A8A8A8A-4B4B-4C4C-4D4D-12E12E12E12E&resourcegroup=yourResourceGroup&partnertopic=yourPartnerTopic&location=theNameOfAzureRegionFortheTopic",
    "lifecycleNotificationUrl": "EventGrid:?azuresubscriptionid=8A8A8A8A-4B4B-4C4C-4D4D-12E12E12E12E&resourcegroup=yourResourceGroup&partnertopic=yourPartnerTopic&location=theNameOfAzureRegionFortheTopic",
    "resource": "users",
    "expirationDateTime": "2024-03-31T00:00:00Z",
    "clientState": "secretClientValue"
}
  • changeType: نوع تغييرات الموارد التي تريد تلقي الأحداث لها. القيم الصالحة: Updated و Deleted و Created. يمكنك تحديد قيمة واحدة أو أكثر مـن هذه القيم مفصولة بفواصل.
  • notificationUrl: URI يستخدم لتعريف موضوع الشريك الذي يتم إرسال الأحداث إليه. يجب أن يتوافق مع النمط التالي: EventGrid:?azuresubscriptionid=<you-azure-subscription-id>&resourcegroup=<your-resource-group-name>&partnertopic=<the-name-for-your-partner-topic>&location=<the-Azure-region-name-where-you-want-the-topic-created>. يمكن الحصول على الموقع (المعروف أيضا باسم منطقة Azure) name عن طريق تنفيذ الأمر az account list-locations . لا تستخدم اسم عرض الموقع. على سبيل المثال، لا تستخدم "غرب وسط الولايات المتحدة". استخدم westcentralus بدلاً من ذلك.
      az account list-locations
    
  • lifecycleNotificationUrl: URI يستخدم لتعريف موضوع الشريك الذي microsoft.graph.subscriptionReauthorizationRequiredيتم إرسال الأحداث إليه. يشير هذا الحدث إلى أن اشتراك Graph API سينتهي قريبا. يتبع URI نفس نمط notificationUrl الموضح أعلاه إذا كان استخدام Event Grid كوجهة لأحداث دورة الحياة. في هذه الحالة، يجب أن يكون موضوع الشريك هو نفس الموضوع المحدد في notificationUrl.
  • المورد: المورد الذي ينشئ الأحداث التي تعلن عن تغييرات الحالة.
  • expirationDateTime: وقت انتهاء الصلاحية الذي تنتهي فيه صلاحية الاشتراك وتوقف تدفق الأحداث. يجب أن يتوافق مع التنسيق المُحدد في RFC 3339. يجب تحديد وقت انتهاء صلاحية ضمن الحد الأقصى لطول الاشتراك المسموح به لكل نوع مورد.
  • حـالة العميل. هذه الخاصية اختيارية. يتم استخدامه للتحقق من المكالمات إلى تطبيق معالج الأحداث أثناء تسليم الحدث. لمزيد من المعلومات، راجع خصائص اشتراك واجهة برمجة تطبيقات Microsoft Azure Active Directory Graph.

هام

  • يجب أن يكون اسم موضوع الشريك فريدا داخل نفس منطقة Azure. يُمكن لكل مجموعة معرف تطبيق المستأجر إنشاء ما يصل إلى 10 مواضيع شريك فريدة.

  • ضع في اعتبارك بعض حدود خدمة موارد واجهة برمجة تطبيقات Microsoft Azure Active Directory Graph عند تطوير الحل الخاص بك.

  • لا تتلقى اشتراكات واجهة برمجة تطبيقات Graph الموجودة بدون lifecycleNotificationUrl خاصية أحداث دورة الحياة. لإضافة خاصية lifecycleNotificationUrl، يجب حذف الاشتراك الموجود وإنشاء اشتراك جديد يحدد الخاصية أثناء إنشاء الاشتراك.

إشعار

إذا كان التطبيق الخاص بك يستخدم العنوان x-ms-enable-features مع طلبك لإنشاء اشتراك Graph API أثناء المعاينة الخاصة، يجب إزالته لأنه لم يعد ضروريا.

بعد إنشاء اشتراك Graph API، لديك موضوع شريك تم إنشاؤه على Azure.

تجديد اشتراك Microsoft Graph API

يجب تجديد اشتراك واجهة برمجة تطبيقات Graph بواسطة التطبيق الخاص بك قبل انتهاء صلاحيته لتجنب إيقاف تدفق الأحداث. لمساعدتك على أتمتة عملية التجديد، تدعم واجهة برمجة تطبيقات Microsoft Graph أحداث إشعارات دورة الحياة التي يمكن لتطبيقك الاشتراك فيها. حاليا، تدعم microsoft.graph.subscriptionReauthorizationRequiredجميع أنواع موارد Microsoft Graph API ، الذي يتم إرساله عند حدوث أي من الشروط التالية:

  • الرمز المميز للوصول على وشك الانتهاء.
  • اشتراك واجهة برمجة تطبيقات Graph على وشك الانتهاء.
  • قام مسؤول مستأجر بإلغاء أذونات تطبيقك لقراءة مورد.

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

كيفية تجديد اشتراك Microsoft Graph API

عند تلقي microsoft.graph.subscriptionReauthorizationRequired حدث، يجب أن يجدد تطبيقك اشتراك واجهة برمجة تطبيقات Graph عن طريق القيام بهذه الإجراءات:

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

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

  3. استدعاء أي من واجهات برمجة التطبيقات التالية. إذا نجح استدعاء واجهة برمجة التطبيقات، يستأنف تدفق إعلام التغيير.

    • /reauthorize قم باستدعاء الإجراء لإعادة مصادقة الاشتراك دون تمديد تاريخ انتهاء صلاحيته.

      POST  https://graph.microsoft.com/beta/subscriptions/{id}/reauthorize
      
    • تنفيذ إجراء "تجديد" منتظم لإعادة مصادقة الاشتراك وتجديده في نفس الوقت.

      PATCH https://graph.microsoft.com/beta/subscriptions/{id}
      Content-Type: application/json
      
      {
         "expirationDateTime": "2024-04-30T11:00:00.0000000Z"
      }
      

      قد يفشل التجديد إذا لم يعد التطبيق مخولا للوصول إلى المورد. قد يكون من الضروري بعد ذلك للتطبيق الحصول على رمز وصول جديد لإعادة مصادقة اشتراك بنجاح.

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

عند تجديد و/أو إعادة تفويض اشتراك Graph API الخاص بك، يتم استخدام نفس موضوع الشريك المحدد عند إنشاء الاشتراك.

عند تحديد expirationDateTime جديد، يجب أن يكون ثلاث ساعات على الأقل من الوقت الحالي. وإلا، قد يتلقى microsoft.graph.subscriptionReauthorizationRequired تطبيقك الأحداث بعد التجديد بوقت قصير.

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

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

عينات مع إرشادات مفصلة

توفر وثائق Microsoft Graph API نماذج التعليمات البرمجية مع إرشادات إلى:

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

إشعار

من الممكن إنشاء اشتراك Graph API الخاص بك باستخدام Microsoft Graph API Explorer. يجب عليك الاستمرار في استخدام العينات للجوانب الهامة الأخرى للحل الخاص بك مثل المصادقة وتلقي الأحداث.

تتوفر نماذج تطبيق ويب للغات التالية:

  • عينة C#. هذا نموذج محدث يتضمن كيفية إنشاء اشتراكات واجهة برمجة تطبيقات Graph وتجديدها ويرشدك خلال بعض الخطوات لتمكين تدفق الأحداث.
  • عينة Java
    • يحتوي GraphAPIController على نموذج التعليمات البرمجية لإنشاء اشتراك Graph API وحذفه وتجديده. يجب استخدامه جنبا إلى جنب مع نموذج تطبيق Java أعلاه.
  • عينة NodeJS.

هام

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

هام

هل تحتاج إلى نموذج التعليمات البرمجية للغة أخرى أو لديك أسئلة؟ الرجاء مراسلتنا عبر البريد الإلكتروني على العنوان ask-graph-and-grid@microsoft.com.

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

اتبع الإرشادات الواردة في الخطوتين التاليتين لإكمال الإعداد لتلقي أحداث واجهة برمجة تطبيقات Microsoft Graph باستخدام شبكة الأحداث:

ارتباطات مفيدة أخرى: