استخدام هوية مدارة للوصول إلى Azure Data Manager for Energy من خدمات Azure الأخرى

توضح هذه المقالة كيفية الوصول إلى مستوى البيانات أو مستوى التحكم في Azure Data Manager for Energy من خدمات Microsoft Azure الأخرى باستخدام هوية مدارة.

هناك حاجة إلى خدمات مثل Azure Functions لتكون قادرة على استهلاك Azure Data Manager لواجهات برمجة تطبيقات الطاقة. تسمح لك إمكانية التشغيل المتداخل هذه باستخدام أفضل قدرات خدمات Azure المتعددة.

على سبيل المثال، يمكنك كتابة برنامج نصي في Azure Functions لاستيعاب البيانات في Azure Data Manager for Energy. في هذا السيناريو، يجب أن تفترض أن Azure Functions هي الخدمة المصدر وAzure Data Manager for Energy هي الخدمة المستهدفة.

ترشدك هذه المقالة خلال الخطوات الرئيسية الخمس لتكوين Azure Functions للوصول إلى Azure Data Manager for Energy.

نظرة عامة على الهويات المدارة

تسمح الهوية المدارة من معرف Microsoft Entra لتطبيقك بالوصول بسهولة إلى موارد Microsoft Entra الأخرى المحمية. تتم إدارة الهوية بواسطة النظام الأساسي ل Azure ولا تتطلب منك إنشاء أي أسرار أو تدويرها. يمكن لأي خدمة Azure تريد الوصول إلى Azure Data Manager لمستوى التحكم في الطاقة أو مستوى البيانات لأي عملية استخدام هوية مدارة للقيام بذلك.

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

  • ترتبط الهويات المدارة المعينة من قبل النظام لدورة حياتها بالمورد الذي أنشأها.
  • يمكن استخدام الهويات المدارة المعينة من قبل المستخدم على موارد متعددة.

لمعرفة المزيد حول الهويات المدارة، راجع ما هي الهويات المدارة لموارد Azure؟.

حاليا، يمكن للخدمات الأخرى الاتصال ب Azure Data Manager for Energy باستخدام هوية مدارة معينة من قبل النظام أو معينة من قبل المستخدم. ومع ذلك، لا يدعم Azure Data Manager for Energy الهويات المدارة المعينة من قبل النظام.

بالنسبة للسيناريو الوارد في هذه المقالة، ستستخدم هوية مدارة معينة من قبل المستخدم في Azure Functions لاستدعاء واجهة برمجة تطبيقات مستوى البيانات في Azure Data Manager for Energy.

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

قبل البدء، عليك إنشاء الموارد التالية:

الخطوة 1: استرداد معرف الكائن

لاسترداد معرف الكائن للهوية المعينة من قبل المستخدم التي ستدخل إلى Azure Data Manager لواجهات برمجة تطبيقات الطاقة:

  1. سجل الدخول إلى مدخل Azure.
  2. انتقل إلى الهوية المدارة، ثم حدد نظرة عامة.
  3. ضمن Essentials، لاحظ قيمة معرف الكائن (الأساسي).

Screenshot of the object ID for a user-assigned identity.

الخطوة 2: استرداد معرف التطبيق

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

  1. في مدخل Microsoft Azure، انتقل إلى معرف Microsoft Entra.
  2. في القائمة اليسرى، حدد تطبيقات المؤسسة.
  3. في المربع بحث حسب اسم التطبيق أو معرف الكائن، أدخل معرف الكائن.
  4. بالنسبة للتطبيق الذي يظهر في النتائج، لاحظ قيمة معرف التطبيق.

Screenshot of the application ID for a user-assigned identity.

الخطوة 3: إضافة الهوية المدارة المعينة من قبل المستخدم إلى Azure Functions

  1. في مدخل Microsoft Azure، انتقل إلى دالة Azure.
  2. ضمن Account الإعدادات، حدد Identity.
  3. حدد علامة التبويب مُعين بواسطة المستخدم ثم حدد إضافة.
  4. حدد هويتك المدارة الحالية التي عينها المستخدم، ثم حدد إضافة. ثم يتم إرجاعك إلى علامة التبويب تعيين المستخدم.

Screenshot of a newly added user-assigned identity to an Azure function.

الخطوة 4: إضافة معرف التطبيق إلى مجموعات الاستحقاق

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

  • users@[معرف القسم].dataservices.energy
  • users.datalake.editors@[معرف القسم].dataservices.energy

لإضافة معرف التطبيق:

  1. جمع المعلومات التالية:

    • معرِّف المستأجر
    • معرّف العميل
    • سر العميل
    • Azure Data Manager ل Energy URI
    • معرف قسم البيانات
    • الرمز المميز للوصول
    • معرف التطبيق للهوية المدارة
  2. استخدم واجهة برمجة تطبيقات Add Member لإضافة معرف التطبيق للهوية المدارة المعينة من قبل المستخدم إلى مجموعات الاستحقاق المناسبة.

    إشعار

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

    1. لإضافة معرف التطبيق إلى مجموعة users@[معرف القسم].dataservices.energy، قم بتشغيل الأمر cURL التالي عبر Bash في Azure:

       curl --location --request POST 'https://<Azure Data Manager for Energy URI>/api/entitlements/v2/groups/users@ <data-partition-id>.dataservices.energy/members' \
          --header 'data-partition-id: <data-partition-id>' \
          --header 'Authorization: Bearer \
          --header 'Content-Type: application/json' \
          --data-raw '{
                          "email": "<application ID of the managed identity>",
                          "role": "MEMBER"
                      }'
      

      فيما يلي نموذج استجابة:

      {
          "email": "<application ID of the managed identity>",
          "role": "MEMBER"
          }
      
    2. لإضافة معرف التطبيق إلى مجموعة users.datalake.editors@[معرف القسم].dataservices.energy، قم بتشغيل الأمر cURL التالي عبر Bash في Azure:

       curl --location --request POST 'https://<Azure Data Manager for Energy URI>/api/entitlements/v2/groups/ users.datalake.editors@ <data-partition-id>.dataservices.energy/members' \
          --header 'data-partition-id: <data-partition-id>' \
          --header 'Authorization: Bearer \
          --header 'Content-Type: application/json' \
          --data-raw '{
                          "email": "<application ID of the managed identity>",
                          "role": "MEMBER"
                      }'
      

      فيما يلي نموذج استجابة:

      {
          "email": "<application ID of the managed identity>",
          "role": "MEMBER"
          }
      

الخطوة 5: إنشاء رمز مميز

الآن Azure Functions جاهزة للوصول إلى Azure Data Manager لواجهات برمجة تطبيقات الطاقة.

تنشئ وظيفة Azure رمزا مميزا باستخدام الهوية المعينة من قبل المستخدم. تستخدم الدالة معرف التطبيق الموجود في مثيل Azure Data Manager for Energy أثناء إنشاء الرمز المميز.

فيما يلي مثال على التعليمات البرمجية لدالة Azure:

import logging
import requests
import azure.functions as func
from msrestazure.azure_active_directory import MSIAuthentication

def main(req: func.HttpRequest) -> str:
    logging.info('Python HTTP trigger function processed a request.')

    //To authenticate by using a managed identity, you need to pass the Azure Data Manager for Energy application ID as the resource.     
    //To use a user-assigned identity, you should include the   
    //client ID as an additional parameter.
    //Managed identity using user-assigned identity: MSIAuthentication(client_id, resource)

    creds = MSIAuthentication(client_id="<client_id_of_managed_identity>”, resource="<meds_app_id>")
    url = "https://<meds-uri>/api/entitlements/v2/groups"
    payload = {}
    // Passing the data partition ID of Azure Data Manager for Energy in headers along with the token received using the managed instance.
    headers = {
        'data-partition-id': '<data partition id>',
        'Authorization': 'Bearer ' + creds.token["access_token"]
    }
    response = requests.request("GET", url, headers=headers, data=payload, verify=False)
    return response.text

يجب أن تحصل على الاستجابة الناجحة التالية من Azure Functions:

Screenshot of a success message from Azure Functions.

مع اكتمال الخطوات السابقة، يمكنك الآن استخدام Azure Functions للوصول إلى Azure Data Manager لواجهات برمجة تطبيقات الطاقة باستخدام مناسب للهويات المدارة.

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

تعرف على مربع التأمين: