تكوين Durable Functions باستخدام معرف Microsoft Entra

معرف Microsoft Entra (معرف Microsoft Entra) هو خدمة إدارة الوصول والهوية المستندة إلى السحابة. تسمح الاتصالات المستندة إلى الهوية ل Durable Functions بإجراء طلبات معتمدة مقابل موارد Microsoft Entra المحمية، مثل حساب Azure Storage، دون الحاجة إلى إدارة الأسرار يدويا. باستخدام موفر تخزين Azure الافتراضي، تحتاج Durable Functions إلى المصادقة مقابل حساب تخزين Azure. في هذه المقالة، نعرض كيفية تكوين تطبيق Durable Functions لاستخدام نوعين من الاتصالات المستندة إلى الهوية: بيانات اعتماد الهوية المدارة وبيانات اعتماد العميل السرية.

تسمح الهوية المدارة لتطبيقك بالوصول بسهولة إلى موارد Microsoft Entra الأخرى المحمية مثل Azure Key Vault. يتم دعم الهوية المدارة في إصدارات ملحق Durable Functions 2.7.0 والإصدارات الأحدث.

إشعار

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

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

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

  • إنشاء مشروع Durable Functions في مدخل Microsoft Azure أو نشر Durable Functions محلي إلى Azure.

إذا لم يكن الأمر كذلك، نقترح عليك البدء بإحدى المقالات التالية، والتي توفر إرشادات مفصلة حول كيفية تحقيق جميع المتطلبات المذكورة أعلاه:

تمكين الهوية المُدارة

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

تعيين عناصر التحكم في الوصول المستندة إلى الدور (RBAC) للهوية المدارة

انتقل إلى مورد التخزين الخاص بتطبيقك على مدخل Microsoft Azure. اتبع هذه الإرشادات لتعيين الأدوار التالية لمورد الهوية المدارة.

  • مساهم بيانات قائمة انتظار التخزين
  • المساهم في بيانات مخزن البيانات الثنائية الكبيرة
  • مساهم بيانات جدول التخزين

إضافة تكوين الهوية المدارة في مدخل Microsoft Azure

انتقل إلى صفحة تكوين تطبيق دالة Azure وقم بإجراء التغييرات التالية:

  1. إزالة القيمة الافتراضية "AzureWebJobsStorage".

Screenshot of default storage setting.

  1. ربط حساب تخزين Azure الخاص بك عن طريق إضافة أحد إعدادات القيمة التالية:

    • AzureWebJobsStorage__accountName: على سبيل المثال:mystorageaccount123

    • AzureWebJobsStorage__blobServiceUri: مثال:https://mystorageaccount123.blob.core.windows.net/

      AzureWebJobsStorage__queueServiceUri: مثال:https://mystorageaccount123.queue.core.windows.net/

      AzureWebJobsStorage__tableServiceUri: مثال:https://mystorageaccount123.table.core.windows.net/

      إشعار

      إذا كنت تستخدم Azure Government أو أي سحابة أخرى منفصلة عن Azure العالمية، فستحتاج إلى استخدام هذا الخيار الثاني لتوفير عناوين URL خدمة محددة. يمكن العثور على قيم هذه الإعدادات في حساب التخزين ضمن علامة التبويب نقاط النهاية. لمزيد من المعلومات حول استخدام Azure Storage مع Azure Government، راجع وثائق Develop with Storage API on Azure Government .

    Screenshot of endpoint sample.

  2. إنهاء تكوين الهوية المدارة:

    • إذا كان يجب استخدام الهوية المعينة من قبل النظام، فحدد أي شيء آخر.

    • إذا كان يجب استخدام الهوية المعينة من قبل المستخدم، فأضف قيم إعدادات التطبيق التالية في تكوين التطبيق:

      • AzureWebJobsStorage__credential: معرف مدار

      • AzureWebJobsStorage__clientId: (هذه قيمة GUID التي تحصل عليها من مركز إدارة Microsoft Entra)

      Screenshot of user identity client id.

تكوين تطبيقك لاستخدام بيانات اعتماد العميل السرية

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

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

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

  • إنشاء مشروع Durable Functions على جهازك المحلي أو في مدخل Microsoft Azure.

تسجيل تطبيق عميل على معرف Microsoft Entra

  1. تسجيل تطبيق عميل ضمن معرف Microsoft Entra في مدخل Microsoft Azure وفقا لهذه الإرشادات.

  2. إنشاء سر عميل لتطبيق العميل الخاص بك. في طلبك المسجل:

    1. حدد Certificates & Secrets وحدد New client secret.

    2. املأ وصفا واختر وقتا سريا صالحا في الحقل انتهاء الصلاحية.

    3. انسخ القيمة السرية واحفظها بعناية لأنها لن تظهر مرة أخرى بعد مغادرة الصفحة.

    Screenshot of client secret page.

تعيين عناصر التحكم في الوصول المستندة إلى الدور (RBAC) لتطبيق العميل

قم بتعيين هذه الأدوار الثلاثة لتطبيق العميل الخاص بك بالخطوات التالية.

  • مساهم بيانات قائمة انتظار التخزين
  • المساهم في بيانات مخزن البيانات الثنائية الكبيرة
  • مساهم بيانات جدول التخزين
  1. انتقل إلى صفحة التحكم في الوصول إلى حساب التخزين (IAM) الخاصة بوظيفتك وأضف تعيين دور جديد.

    Screenshot of access control page.

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

    Screenshot of role assignment page.

إضافة تكوين سر العميل

للتشغيل والاختبار في Azure، حدد ما يلي في صفحة تكوين تطبيق وظائف Azure في مدخل Microsoft Azure. للتشغيل والاختبار محليا، حدد ما يلي في ملف local.settings.json الخاص بالوظيفة.

  1. إزالة القيمة الافتراضية "AzureWebJobsStorage".

  2. ربط حساب تخزين Azure بإضافة أحد إعدادات القيمة التالية:

    • AzureWebJobsStorage__accountName: على سبيل المثال:mystorageaccount123

    • AzureWebJobsStorage__blobServiceUri: مثال:https://mystorageaccount123.blob.core.windows.net/

      AzureWebJobsStorage__queueServiceUri: مثال:https://mystorageaccount123.queue.core.windows.net/

      AzureWebJobsStorage__tableServiceUri: مثال:https://mystorageaccount123.table.core.windows.net/

    يمكن العثور على قيم متغيرات Uri هذه في حساب التخزين ضمن علامة التبويب نقاط النهاية.

    Screenshot of endpoint sample.

  3. أضف بيانات اعتماد سرية للعميل عن طريق تحديد القيم التالية:

    • AzureWebJobsStorage__clientId: (هذه قيمة GUID موجودة في صفحة تطبيق Microsoft Entra)

    • AzureWebJobsStorage__ClientSecret: (هذه هي القيمة السرية التي تم إنشاؤها في مركز إدارة Microsoft Entra في خطوة سابقة)

    • AzureWebJobsStorage__tenantId: (هذا هو معرف المستأجر الذي تم تسجيل تطبيق Microsoft Entra فيه)

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

    Screenshot of application's overview page.