الهوية المُدارة لمصنع بيانات Azure و Azure Synapse
ينطبق على:
Azure Data Factory
Azure Synapse Analytics
تساعدك هذه المقالة على فهم الهوية المدارة (التي كانت تعرف سابقاً باسم معرف الخدمة المدارة/MSI) وكيفية عملها في Azure Data Factory وAzure Synapse.
ملاحظة
تستخدم هذه المقالة الوحدة النمطية Azure Az PowerShell، وهي الوحدة النمطية PowerShell الموصى بها للتفاعل مع Azure. لبدء استخدام الوحدة النمطية Az PowerShell، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.
نظرة عامة
الهويات المُدارة تلغي الحاجة إلى إدارة بيانات الاعتماد. توفر الهويات المُدارة هوية لمثيل الخدمة عند الاتصال بالموارد التي تدعم مصادقة Azure Active Directory (Azure AD). على سبيل المثال، يمكن للخدمة استخدام هوية مُدارة للوصول إلى الموارد مثل Azure Key Vault ، إذ يمكن لمسؤولي البيانات تخزين بيانات الاعتماد بأمان أو الوصول إلى حسابات التخزين. تستخدم الخدمة الهوية المُدارة للحصول على رموزAzure Active Directory المميزة.
هناك نوعان من الهويات المدارة المدعومة:
- تسمح لك بعض خدمات Azure المعينة من قبل النظام بتمكين هوية مُدارة على مثيل الخدمة بشكل مباشر. عندما تسمح بهوية مُدارة يعينها النظام أثناء إنشاء الخدمة، يتم إنشاء هوية في AAD (دليل Azure النشط) مرتبطة بدورة حياة مثيل الخدمة. حسب التصميم، يمكن لمورد Azure هذا فقط استخدام هذه الهوية لطلب الرموز المميزة من Microsoft Azure AD. لذلك عند حذف المورد، يقوم Azure تلقائيًا بحذف الهوية نيابة عنك. يتطلب Azure Synapse Analytics إنشاء هوية مُدارة معينة من قبل النظام مع مساحة عمل Synapse.
- الهوية التي يعينها المستخدم: يمكنك أيضاً إنشاء هوية مُدارة كمورد Azure مستقل. يمكنك إنشاء هوية مُدارة يعينها المستخدم وتعيينها إلى مثيل واحد أو أكثر لمصنع بيانات أو مساحة عمل Synapse. في الهويات المدارة المعينة من قبل المستخدم، تتم إدارة الهوية بشكل منفصل عن الموارد التي تستخدمها.
توفر الهوية المُدارة المزايا التالية:
- تخزين بيانات الاعتماد في 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 وSynapse Studio UI لغرض التوافق مع الإصدارات السابقة. سنذكر صراحة "الهوية المُدارة التي يعينها المستخدم" عند الإشارة إليها.
إنشاء هوية مُدارة يعينها النظام
يتم إنشاء الهوية المُدارة المعينة من قبل النظام على النحو التالي:
- عند إنشاء مصنع بيانات أو مساحة عمل Synapse من خلال مدخل Microsoft Azure أو PowerShell ، سيتم دائماً إنشاء هوية مُدارة تلقائياً.
- عند إنشاء مصنع بيانات أو مساحة عمل من خلال SDK، سيتم إنشاء الهوية المدارة فقط إذا قمت بتحديد "الهوية = هوية المصنع الجديدة()" في كائن المصنع أو الهوية = الهوية المدارة الجديدة" في كائن مساحة عمل Synapse للإنشاء." راجع المثال في .NET Quickstart - إنشاء مصنع بيانات.
- عند إنشاء مصنع بيانات أو مساحة عمل Synapse من خلال واجهة برمجة تطبيقات REST، سيتم إنشاء هوية مُدارة فقط إذا قمت بتحديد قسم "الهوية" في نص الطلب. انظر المثال في تشغيل سريع لREST– إنشاء مصنع البيانات.
إذا وجدت أن مثيل الخدمة الخاص بك لا يحتوي على هوية مُدارة مقترنة باتباع تعليمات استرداد الهوية المُدارة، فيمكنك إنشاء واحدة بشكل صريح عن طريق تحديثها باستخدام بادئ الهوية برمجياً:
- إنشاء هوية مُدارة باستخدام PowerShell
- إنشاء هوية مُدارة باستخدام واجهة برمجة تطبيقات REST
- إنشاء هوية مُدارة باستخدام قالب Azure Resource Manager
- إنشاء هوية مُدارة باستخدام عدة تطوير البرامج
ملاحظة
- الهوية المدارة غير قابلة للتعديل. لن يكون لتحديث مثيل خدمة له هوية مُدارة بالفعل أي تأثير، وستظل الهوية المُدارة كما هي بدون تغيير.
- إذا قمت بتحديث مثيل خدمة تحتوي بالفعل على هوية مُدارة دون تحديد معلمة "الهوية" في كائنات المصنع أو مساحة العمل أو بدون تحديد قسم "الهوية" في نص طلب 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 - مصنع البيانات أو مساحة عمل Synapse ->> الخصائص.
- معرِّف كائن الهوية المدارة
- مستأجر الهوية المُدارة (ينطبق فقط على Azure Data Factory)
ستظهر معلومات الهوية المُدارة أيضاً عند إنشاء خدمة مرتبطة، والتي تدعم مصادقة الهوية المُدارة، مثل Azure Blob، وAzure Data Lake Storage، و Azure Key Vault، وما إلى ذلك.
لمنح الأذونات، اتبع الخطوات التالية. للحصول على خطوات تفصيلية، راجع تعيين أدوار Azure باستخدام مدخل Microsoft Azure.
حدد Access control (IAM).
حدد إضافة>تعيين دور.
ضمن علامة التبويب الأعضاء، حدد الهوية المدارة، ثم حدد تحديد الأعضاء.
حدد اشتراكك في Azure.
ضمن الهوية المدارة المعينة من قبل النظام، حدد مصنع البيانات، ثم حدد مصنع بيانات. يمكنك أيضا استخدام معرف الكائن أو اسم مصنع البيانات (كاسم الهوية المدارة) للعثور على هذه الهوية. للحصول على معرف تطبيق الهوية المدارة، استخدم PowerShell.
في علامة التبويب مراجعة + تعيين، حدد مراجعة + تعيين لتعيين الدور.
قم باسترداد الهوية المُدارة المعينة من قبل النظام باستخدام PowerShell
سيتم إرجاع المعرف الأساسي للهوية المدارة ومعرف المستأجر عندما تحصل على مثيل خدمة معينة على النحو التالي. استخدم معرف أساسي لمنح حق الوصول:
PS C:\> (Get-AzDataFactoryV2 -ResourceGroupName <resourceGroupName> -Name <dataFactoryName>).Identity
PrincipalId TenantId
----------- --------
765ad4ab-XXXX-XXXX-XXXX-51ed985819dc 72f988bf-XXXX-XXXX-XXXX-2d7cd011db47
يمكنك الحصول على معرف التطبيق عن طريق نسخ المعرف الرئيسي أعلاه، ثم تشغيل الأمر أدناه Microsoft Azure Active Directory بالمعرف الأساسي كمعلمة.
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 Azure.
من أجل استخدام هوية مُدارة يعينها المستخدم، ينبغي أولاً إنشاء بيانات اعتماد في مثيل خدمتك لـ UAMI.
الخطوات التالية
راجع الموضوعات التالية التي توضح متى وكيف يتم استخدام الهوية المُدارة:
- تخزين بيانات الاعتماد في Azure Key Vault.
- نسخ البيانات من/إلى Azure Data Lake Store باستخدام الهويات المُدارة لمصادقة موارد Azure.
راجع نظرة عامة على الهويات المُدارة لموارد Azure للحصول على مزيد من المعلومات الأساسية حول الهويات المُدارة لموارد Azure، والتي تستند إليها الهوية المُدارة في Azure Data Factory وAzure Synapse.

