الهوية المُدارة لـ Azure Data Factory

ينطبق على:Azure Data Factory Azure Synapse Analytics

تلميح

جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!

ستساعدك هذه المقالة على فهم الهوية المُدارة (المعروفة سابقاً باسم هوية الخدمة المُدارة/MSI) وكيفية عملها في Azure Data Factory.

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

نظرة عامة

الهويات المُدارة تلغي الحاجة إلى إدارة بيانات الاعتماد. توفر الهويات المدارة هوية لمثيل الخدمة عند الاتصال بالموارد التي تدعم مصادقة Microsoft Entra. على سبيل المثال، يمكن للخدمة استخدام هوية مُدارة للوصول إلى الموارد مثل Azure Key Vault ، إذ يمكن لمسؤولي البيانات تخزين بيانات الاعتماد بأمان أو الوصول إلى حسابات التخزين. تستخدم الخدمة الهوية المدارة للحصول على رموز Microsoft Entra المميزة.

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

  • تسمح لك بعض خدمات Azure المعينة من قبل النظام بتمكين هوية مُدارة على مثيل الخدمة بشكل مباشر. عند السماح بهوية مدارة معينة من قبل النظام أثناء إنشاء الخدمة، يتم إنشاء هوية في Microsoft Entra مرتبطة لدورة حياة مثيل الخدمة هذا. حسب التصميم، يمكن لمورد Azure هذا فقط استخدام هذه الهوية لطلب الرموز المميزة من معرف Microsoft Entra. لذلك عند حذف المورد، يقوم Azure تلقائيًا بحذف الهوية نيابة عنك.
  • الهوية التي يعينها المستخدم: يمكنك أيضاً إنشاء هوية مُدارة كمورد Azure مستقل. يمكنك إنشاء هوية مُدارة مُعيّنة بواسطة مستخدم وتعيينها إلى مثيل واحد أو أكثر من مصنع بيانات. في الهويات المدارة المعينة من قبل المستخدم، تتم إدارة الهوية بشكل منفصل عن الموارد التي تستخدمها.

توفر الهوية المُدارة المزايا التالية:

  • تخزين البيانات الاعتماد في Azure Key Vault، وفي هذه الحالة تستخدم الهوية المدارة لمصادقة Azure Key Vault.
  • الوصول إلى البيانات المخازن أو الحسابات باستخدام مصادقة الهوية المُدارة، بما في ذلك تخزين Azure Blob، و Azure Data Explorer، وAzure Data Lake Storage Gen1، وAzure Data Lake Storage Gen2، وقاعدة بيانات Azure SQL، ومثيل Azure SQL المُدارة، و Azure Synapse Analytics، و REST، ونشاط Databricks، الويب النشاط والمزيد. يُرجى فحص الموصل ومقالات النشاط للحصول على مزيدٍ من التفاصيل.
  • تستخدم الهوية المدارة أيضا لتشفير/فك تشفير البيانات وبيانات التعريف باستخدام المفتاح المُدار للعميل المُخزّن في Azure Key Vault، ما يوفر تشفيراً مزدوجاً.

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

إشعار

يُشار أيضاً إلى الهوية المُدارة التي يُعينها النظام باسم "الهوية المُدارة" في أي مكان آخر في الوثائق وفي Data Factory Studio من أجل توافق الإصدارات السابقة. سنذكر صراحة "الهوية المُدارة التي يعينها المستخدم" عند الإشارة إليها.

إنشاء هوية مدارة معينة من قبل النظام

يتم إنشاء الهوية المُدارة المعينة من قبل النظام على النحو التالي:

  • عند إنشاء مصنع بيانات من خلال مدخل Azure أو PowerShell، سيتم دائماً إنشاء هوية مُدارة تلقائياً.
  • عند إنشاء مصنع بيانات من خلالSDK، يتم إنشاء هوية مُدارة فقط في حالة تحديد "Identity = new FactoryIdentity()" في عنصر المصنع للإنشاء. "راجع المثال في تشغيل .NET السريع - إنشاء مصنع بيانات.
  • عند إنشاء مصنع بيانات من خلال واجهة برمجة تطبيقات REST، سيتم إنشاء هوية مُدارة فقط في حالة تحديد المقطع "الهوية" في نص الطلب. انظر المثال في تشغيل سريع لREST– إنشاء مصنع البيانات.

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

إشعار

  • الهوية المدارة غير قابلة للتعديل. لن يكون لتحديث مثيل خدمة له هوية مُدارة بالفعل أي تأثير، وستظل الهوية المُدارة كما هي بدون تغيير.
  • إذا قمت بتحديث مثيل خدمة يحتوي بالفعل على هوية مُدارة دون تحديد معلمة "الهوية" في عناصر المصنع أو بدون تحديد المقطع "الهوية" في نص طلب REST، فسيحدث خطأ.
  • عند حذف مثيل خدمة، سيتم أيضا حذف الهوية المدارة المقترنة.

قم بإنشاء الهوية المُدارة المعينة من قبل النظام باستخدام PowerShell

استدعاء أمر Set-AzDataFactoryV2، ثم ترى حقول "الهوية" الصادرة حديثاً:

PS C:\> Set-AzDataFactoryV2 -ResourceGroupName <resourceGroupName> -Name <dataFactoryName> -Location <region>

DataFactoryName   : ADFV2DemoFactory
DataFactoryId     : /subscriptions/<subsID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/ADFV2DemoFactory
ResourceGroupName : <resourceGroupName>
Location          : East US
Tags              : {}
Identity          : Microsoft.Azure.Management.DataFactory.Models.FactoryIdentity
ProvisioningState : Succeeded

قم بإنشاء هوية مُدارة مخصصة من قبل النظام باستخدام واجهة برمجة تطبيقات REST

إشعار

إذا حاولت تحديث مثيل خدمة له هوية مُدارة بالفعل بدون تحديد معلمة الهوية في كائن المصنع أو توفير قسم الهوية في نص طلب REST، ستظهر لك رسالة خطأ.

استدعاء واجهة برمجة التطبيقات أدناه باستخدام قسم "الهوية" في متن الطلب:

PATCH https://management.azure.com/subscriptions/<subsID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<data factory name>?api-version=2018-06-01

نص الطلب: إضافة "الهوية": {"نوع": "SystemAssigned"}.

{
    "name": "<dataFactoryName>",
    "location": "<region>",
    "properties": {},
    "identity": {
        "type": "SystemAssigned"
    }
}

الاستجابة: يتم إنشاء الهوية المُدارة تلقائياً، ويتم تعبئة قسم "الهوية" وفقاً لذلك.

{
    "name": "<dataFactoryName>",
    "tags": {},
    "properties": {
        "provisioningState": "Succeeded",
        "loggingStorageAccountKey": "**********",
        "createTime": "2017-09-26T04:10:01.1135678Z",
        "version": "2018-06-01"
    },
    "identity": {
        "type": "SystemAssigned",
        "principalId": "765ad4ab-XXXX-XXXX-XXXX-51ed985819dc",
        "tenantId": "72f988bf-XXXX-XXXX-XXXX-2d7cd011db47"
    },
    "id": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>",
    "type": "Microsoft.DataFactory/factories",
    "location": "<region>"
}

قم بإنشاء الهوية المُدارة المعينة من قبل النظام باستخدام قالبAzure Resource Manager

قالب: إضافة "الهوية": {"نوع": "SystemAssigned"}.

{
    "contentVersion": "1.0.0.0",
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "resources": [{
        "name": "<dataFactoryName>",
        "apiVersion": "2018-06-01",
        "type": "Microsoft.DataFactory/factories",
        "location": "<region>",
        "identity": {
            "type": "SystemAssigned"
        }
    }]
}

قم بإنشاء هوية مُدارة مخصصة من قبل النظام باستخدام عدة تطوير البرامج

قد باستدعاء الدالة create_or_update مع الهوية = FactoryIdentity جديدة(). عينة التعليمات البرمجية باستخدام .NET:

Factory dataFactory = new Factory
{
    Location = <region>,
    Identity = new FactoryIdentity()
};
client.Factories.CreateOrUpdate(resourceGroup, dataFactoryName, dataFactory);

استرداد الهوية المدارة المعينة من قبل النظام

يمكنك استرداد الهوية المدارة من مدخل Microsoft Azure أو برمجياً. تعرض الأقسام التالية بعض العينات.

تلميح

إذا كنت لا ترى الهوية المدارة، يمكنك إنشاء هوية مُدارة عن طريق تحديث مثيل الخدمة.

استرداد الهوية المُدارة المعينة من قبل النظام باستخدام مدخل Microsoft Azure

يمكنك العثور على معلومات حول الهوية المُدارة من مدخل Azure -> مصنع البيانات -> الخصائص.

Shows the Azure portal with the system-managed identity object ID and Identity Tenant for an Azure Data Factory.

  • معرِّف كائن الهوية المدارة
  • مستأجر الهوية المُدارة

ستظهر معلومات الهوية المُدارة أيضاً عند إنشاء خدمة مرتبطة، والتي تدعم مصادقة الهوية المُدارة، مثل Azure Blob، وAzure Data Lake Storage، و Azure Key Vault، وما إلى ذلك.

لإعطاء الأذونات، اتبع الخطوات التالية. للحصول على خطوات تفصيلية، راجع تعيين أدوار Azure باستخدام مدخل Azure.

  1. حدد Access control (IAM).

  2. حدد إضافة>Add role assignmen.

    Screenshot that shows Access control (IAM) page with Add role assignment menu open.

  3. في علامة التبويب الأعضاء، حدد الهوية المُدارة، ثم حدد تحديد الأعضاء.

  4. حدد اشتراك Azure الخاص بك.

  5. تعيينالهوية المدارة المعينة من قبل النظام، حدد Data Factory، ثم حدد مصنع بيانات. يمكنك أيضا استخدام معرف الكائن أو اسم مصنع البيانات (كاسم هوية مدارة) للعثور على الهوية. للحصول على معرف تطبيق الهوية المدارة، استخدم تطبيق PowerShell.

  6. في علامة التبويب Review + assign ، حدد Review + assign لتعيين الدور.

قم باسترداد الهوية المُدارة المعينة من قبل النظام باستخدام PowerShell

سيتم إرجاع المعرف الأساسي للهوية المدارة ومعرف المستأجر عندما تحصل على مثيل خدمة معينة على النحو التالي. استخدم معرف أساسي لمنح حق الوصول:

PS C:\> (Get-AzDataFactoryV2 -ResourceGroupName <resourceGroupName> -Name <dataFactoryName>).Identity

PrincipalId                          TenantId
-----------                          --------
765ad4ab-XXXX-XXXX-XXXX-51ed985819dc 72f988bf-XXXX-XXXX-XXXX-2d7cd011db47

يمكنك الحصول على معرف التطبيق عن طريق النسخ فوق المعرف الأساسي، ثم تشغيل أسفل الأمر Microsoft Entra ID مع المعرف الأساسي كمعلمة.

PS C:\> Get-AzADServicePrincipal -ObjectId 765ad4ab-XXXX-XXXX-XXXX-51ed985819dc

ServicePrincipalNames : {76f668b3-XXXX-XXXX-XXXX-1b3348c75e02, https://identity.azure.net/P86P8g6nt1QxfPJx22om8MOooMf/Ag0Qf/nnREppHkU=}
ApplicationId         : 76f668b3-XXXX-XXXX-XXXX-1b3348c75e02
DisplayName           : ADFV2DemoFactory
Id                    : 765ad4ab-XXXX-XXXX-XXXX-51ed985819dc
Type                  : ServicePrincipal

استرداد الهوية المدارة باستخدام واجهة برمجة تطبيقات REST

سيتم إرجاع المعرف الأساسي للهوية المدارة ومعرف المستأجر عندما تحصل على مثيل خدمة معينة على النحو التالي.

قم باستدعاء واجهة برمجة التطبيقات في الطلب أدناه:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}?api-version=2018-06-01

الرد: ستحصل على رد كما هو موضح في المثال أدناه. يتم ملء قسم "الهوية" وفقاً لذلك.

{
    "name":"<dataFactoryName>",
    "identity":{
        "type":"SystemAssigned",
        "principalId":"554cff9e-XXXX-XXXX-XXXX-90c7d9ff2ead",
        "tenantId":"72f988bf-XXXX-XXXX-XXXX-2d7cd011db47"
    },
    "id":"/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>",
    "type":"Microsoft.DataFactory/factories",
    "properties":{
        "provisioningState":"Succeeded",
        "createTime":"2020-02-12T02:22:50.2384387Z",
        "version":"2018-06-01",
        "factoryStatistics":{
            "totalResourceCount":0,
            "maxAllowedResourceCount":0,
            "factorySizeInGbUnits":0,
            "maxAllowedFactorySizeInGbUnits":0
        }
    },
    "eTag":"\"03006b40-XXXX-XXXX-XXXX-5e43617a0000\"",
    "location":"<region>",
    "tags":{

    }
}

تلميح

لاسترداد الهوية المدارة من قالب ARM، أضف قسم المخرجات في قالب ARM JSON:

{
    "outputs":{
        "managedIdentityObjectId":{
            "type":"string",
            "value":"[reference(resourceId('Microsoft.DataFactory/factories', parameters('<dataFactoryName>')), '2018-06-01', 'Full').identity.principalId]"
        }
    }
}

الهوية المُدارة التي يعيّنها المُستخدم

يمكنك إنشاء الهويات المدارة المعينة من قبل المستخدم وحذفها وإدارتها في معرف Microsoft Entra. لمزيد من التفاصيل، راجع إنشاء أو سرد أو حذف أو تعيين دور لهوية مُدارة معينة بواسطة المستخدم باستخدام مدخل Microsoft Azure.

من أجل استخدام هوية مُدارة يعينها المستخدم، ينبغي أولاً إنشاء بيانات اعتماد في مثيل خدمتك لـ UAMI.

راجع الموضوعات التالية التي توضح متى وكيف يتم استخدام الهوية المُدارة:

راجع نظرة عامة على الهويات المُدارة لموارد Azure لمزيد من المعلومات الأساسية حول الهويات المُدارة لموارد Azure، والتي تستند إليها الهوية المُدارة في Azure Data Factory.

راجع قيود الهويات المدارة، والتي تنطبق أيضا على الهويات المدارة في Azure Data Factory.