نشر تطبيق 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 نفسه لنوع التطبيق وإصدار نوع التطبيق وموارد الخدمة.

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

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

قالب التطبيق

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

{
  "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. في القسم ServiceManifestImport ، أضف سياسة تحديد الهوية للخدمة التي تستخدم الهوية المدارة. تقوم هذه السياسة بتعيين هوية 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>
    

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