مشاركة عبر


إضافة هوية مدارة إلى نوع عقدة نظام مجموعة مدارة من تصميم الخدمة

يتم تشغيل كل نوع عقدة في مجموعة مدارة من تصميم الخدمة بواسطة مجموعة تحجيم جهاز ظاهري. للسماح باستخدام الهويات المدارة مع نوع عقدة نظام مجموعة مدارة، تمت إضافة خاصية vmManagedIdentity إلى تعريفات نوع العقدة التي تحتوي على قائمة بالهويات التي يمكن استخدامها، userAssignedIdentities. تعكس الوظيفة كيفية استخدام الهويات المدارة في المجموعات غير المدارة، مثل استخدام هوية مدارة مع ملحق مجموعة تحجيم الجهاز الظاهري Azure Key Vault.

للحصول على مثال لنشر نظام مجموعة مدار بواسطة تصميم الخدمة يستخدم الهوية المدارة على نوع عقدة، راجع هذه القوالب. يحتوي المثال على قالبين:

  1. تعيين الهوية والدور المدار: قالب لإنشاء الهوية المدارة وتعيين الدور للسماح لـ Service Fabric RP بتعيين الهوية إلى مجموعة تحجيم الجهاز الظاهري للمجموعة المدارة. يجب توزيع هذا مرة واحدة فقط قبل استخدام الهوية المدارة على مورد نوع العقدة.

  2. نوع الكتلة والعقدة المدارة: قالب لموارد الكتلة والعقدة المدارة من قبل بنية الخدمة باستخدام الهوية المدارة التي تم إنشاؤها من قبل.

إشعار

يتم حاليًّا دعم الهويات المعينة من قبل المستخدم فقط لهذه الميزة.

إشعار

راجع تكوين التطبيقات واستخدامها مع الهوية المدارة على مجموعة مدارة من Service Fabric لتكوين التطبيق.

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

قبل البدء:

  • في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
  • إذا كنت تخطط لاستخدام PowerShell، فقم بتثبيت واجهة سطر الأوامر Azure لتشغيل الأوامر المرجعية لواجهة سطر الأوامر.

1. إنشاء تعيين الهوية والدور

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

يمكن تعريف الهوية المدارة المعينة من قبل المستخدم في قسم الموارد في قالب Azure Resource Manager (ARM) للإنشاء عند التوزيع:

{
  "type": "Microsoft.ManagedIdentity/userAssignedIdentities",
  "name": "[parameters('userAssignedIdentityName')]",
  "apiVersion": "2023-01-31",
  "location": "[resourceGroup().location]"
}

أو تم إنشاؤها عبر PowerShell:

New-AzResourceGroup -Name <managedIdentityRGName> -Location <location>
New-AzUserAssignedIdentity -ResourceGroupName <managedIdentityRGName> -Name <userAssignedIdentityName>

إضافة تعيين دور مع موفر موارد تصميم الخدمة

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

الحصول على مبدأ الخدمة لتطبيق موفر موارد تصميم الخدمة:

Login-AzAccount
Select-AzSubscription -SubscriptionId <SubId>
Get-AzADServicePrincipal -DisplayName "Azure Service Fabric Resource Provider"

إشعار

تأكد من أنك في الاشتراك الصحيح، سيتغير المعرف الأساسي إذا كان الاشتراك في مستأجر مختلف.

ServicePrincipalNames : {74cb6831-0dbb-4be1-8206-fd4df301cdc2}
ApplicationId         : 74cb6831-0dbb-4be1-8206-fd4df301cdc2
ObjectType            : ServicePrincipal
DisplayName           : Azure Service Fabric Resource Provider
Id                    : 00000000-0000-0000-0000-000000000000

استخدم معرّف الإخراج السابق كمعرّف رئيسي ومعرف تعريف الدور أدناه كـ roleDefinitionId حيثما ينطبق ذلك على القالب أو الأمر PowerShell:

اسم تعريف الدور معرّف تعريف الدور
مشغل الهوية المدارة f1a07417-d97a-45cb-824c-7a7467783830

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

{
  "type": "Microsoft.Authorization/roleAssignments",
  "apiVersion": "2022-04-01",
  "name": "[parameters('vmIdentityRoleNameGuid')]",
  "scope": "[concat('Microsoft.ManagedIdentity/userAssignedIdentities', '/', parameters('userAssignedIdentityName'))]",
  "dependsOn": [
    "[concat('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName'))]"
  ],
  "properties": {
    "roleDefinitionId": "[resourceId('Microsoft.Authorization/roleDefinitions', 'f1a07417-d97a-45cb-824c-7a7467783830')]",
    "principalId": "<Service Fabric Resource Provider ID>"
  }
}

إشعار

يجب أن يكون vmIdentityRoleNameGuid معرفًا صالحًا للمعرفة العمومية. إذا قمت بنشر نفس القالب مرة أخرى بما في ذلك تعيين الدور هذا، فتأكد من أن المعرف الفريد العمومي (GUID) هو نفسه المستخدم أصلًا أو قم بإزالة هذا المورد لأنه يحتاج فقط إلى إنشائه مرة واحدة.

أو تم إنشاؤه عبر PowerShell باستخدام المعرف الرئيسي واسم تعريف الدور:

New-AzRoleAssignment -PrincipalId "<Service Fabric Resource Provider ID>" -RoleDefinitionName "Managed Identity Operator" -Scope "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>"

وزّع الهوية المدارة وعيِّن الدور.

قم بتشغيل cmdlet New-AzResourceGroupDeployment لإنشاء الهوية المدارة وإضافة تعيين الدور:

New-AzResourceGroupDeployment -ResourceGroupName <managedIdentityRGName> -TemplateFile ".\MangedIdentityAndSfrpRoleAssignment.json" -TemplateParameterFile ".\MangedIdentityAndSfrpRoleAssignment.Parameters.json" -Verbose

2. تعيين الهوية لمورد نوع العقدة

إضافة خصائص الهوية المدارة إلى تعريف نوع العقدة

وأخيرًا، أضف الخصائص vmManagedIdentity و userAssignedIdentities إلى تعريف نوع عقدة الكتلة المدارة باستخدام معرف المورد الكامل للهوية التي تم إنشاؤها في الخطوة الأولى. تأكد من استخدام 2021-05-01 أو إصدار أحدث لـ apiVersion.

{
  "type": "Microsoft.ServiceFabric/managedClusters/nodeTypes",
  "apiVersion": "2022-01-01",
  "properties": {
    "isPrimary": true,
    "vmInstanceCount": 5,
    "dataDiskSizeGB": 100,
    "vmSize": "Standard_D2_v2",
    "vmImagePublisher": "MicrosoftWindowsServer",
    "vmImageOffer": "WindowsServer",
    "vmImageSku": "2019-Datacenter",
    "vmImageVersion": "latest",
    "vmManagedIdentity": {
      "userAssignedIdentities": [
        "[parameters('userAssignedIdentityResourceId')]"
      ]
    }
  }
}

توزيع مورد نوع العقدة الذي يعين الهوية

قم بتشغيل cmdlet New-AzResourceGroupDeployment لنشر قالب المجموعات المدارة بنية الخدمة الذي يعين الهوية المدارة إلى مورد نوع العقدة.

New-AzResourceGroupDeployment -ResourceGroupName <sfmcRGName> -TemplateFile ".\SfmcVmMangedIdentity.json" -TemplateParameterFile ".\SfmcVmMangedIdentity.Parameters.json" -Verbose

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

استكشاف الأخطاء وإصلاحها

سيقابل الفشل في إضافة تعيين دور بشكل صحيح بالخطأ التالي عند التوزيع:

يظهر خطأ نشر مدخل Microsoft Azure العميل الذي لديه معرف كائن/تطبيق SFRP ليس لديه إذن لتنفيذ نشاط إدارة الهوية

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

خصائص تعيين الدور لموفر موارد Service Fabric على الهوية المدارة المعينة من قبل المستخدم الموضحة في مدخل Microsoft Azure

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