نشر تطبيق 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، أضف علامة <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>
    

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