نشر تطبيق Service Fabric بهوية مُدارة يحددها المستخدم

لنشر تطبيق Service Fabric بهوية مدارة، يجب نشر التطبيق من خلال Azure Resource Manager، عادةً باستخدام قالب Azure Resource Manager. لمزيد من المعلومات حول كيفية نشر تطبيق Service Fabric من خلال Azure Resource Manager، راجع إدارة التطبيقات والخدمات كموارد Azure Resource Manager .

ملاحظة

التطبيقات التي لم يتم نشرها كمورد Azure لا يمكن أن تمتلك هويات مُدارة.

يتم دعم نشر تطبيق Service Fabric باستخدام هوية مدارة مع إصدار API "2019-06-01-preview". يمكنك أيضًا استخدام إصدار API نفسه لنوع التطبيق وإصدار نوع التطبيق وموارد الخدمة.

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

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

قالب التطبيق

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

{
  "apiVersion": "2019-06-01-preview",
  "type": "Microsoft.ServiceFabric/clusters/applications",
  "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
  "location": "[resourceGroup().location]",
  "dependsOn": [
    "[concat('Microsoft.ServiceFabric/clusters/', parameters('clusterName'), '/applicationTypes/', parameters('applicationTypeName'), '/versions/', parameters('applicationTypeVersion'))]",
    "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName'))]"
  ],
  "identity": {
    "type" : "userAssigned",
    "userAssignedIdentities": {
        "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName'))]": {}
    }
  },
  "properties": {
    "typeName": "[parameters('applicationTypeName')]",
    "typeVersion": "[parameters('applicationTypeVersion')]",
    "parameters": {
    },
    "managedIdentities": [
      {
        "name" : "[parameters('userAssignedIdentityName')]",
        "principalId" : "[reference(resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName')), '2018-11-30').principalId]"
      }
    ]
  }
}

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

حزمة مخصصة للتطبيق

  1. لكل هوية محددة في القسم managedIdentities في قالب Azure Resource Manager، أضف علامة <ManagedIdentity> في بيان التطبيق ضمن قسم الأساسيات. يجب أن تطابق السمة Name خاصية name المحددة في قسم managedIdentities.

    ApplicationManifest.xml

      <Principals>
        <ManagedIdentities>
          <ManagedIdentity Name="AdminUser" />
        </ManagedIdentities>
      </Principals>
    
  2. في قسم استيراد بيان الخدمة، أضف نهج ربط الخدمة للخدمة التي تستخدم الهوية المُدارة. يعين النهج AdminUser إلى اسم هوية خاص بالخدمة يحتاج إلى إضافته إلى بيان الخدمة لاحقًا.

    ApplicationManifest.xml

      <ServiceManifestImport>
        <Policies>
          <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="AdminUser" />
        </Policies>
      </ServiceManifestImport>
    
  3. قم بتحديث بيان الخدمة لإضافة هوية مدارة داخل قسم موارد بالاسم المطابق لـ ServiceIdentityRef في IdentityBindingPolicy بيان التطبيق:

    ServiceManifest.xml

      <Resources>
        ...
        <ManagedIdentities DefaultIdentity="WebAdmin">
          <ManagedIdentity Name="WebAdmin" />
        </ManagedIdentities>
      </Resources>
    

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