توزيع تطبيق Service Fabric باستخدام هوية مُدارة مُعيَّنة من قبل النظام

ملاحظة

تمكين الهوية لتطبيق موجود تم نشره في البداية باستخدام Azure cmdlets غير مدعوم.

من أجل الوصول إلى ميزة الهوية المُدارة لتطبيقات Azure Service Fabric، يجب أولاً تمكين Managed Identity Token Service في نظام المجموعة. هذه الخدمة مسؤولة عن مصادقة تطبيقات Service Fabric باستخدام الهويات المدارة، والحصول على رموز الوصول نيابة عنها. بمجرد تمكين الخدمة، يمكنك رؤيتها في Service Fabric Explorer ضمن قسم النظام في الجزء الأيمن، والذي يعمل تحت اسم fabric:/System/ManagedIdentityTokenService بجوار خدمات النظام الأخرى.

ملاحظة

يتم دعم توزيع تطبيقات Service Fabric باستخدام الهويات المدارة بدءاً من إصدار واجهة برمجة التطبيقات (API) "2019-06-01-preview". يمكنك أيضاً استخدام إصدار API نفسه لنوع التطبيق وإصدار نوع التطبيق وموارد الخدمة. الحد الأدنى لوقت تشغيل Service Fabric المدعوم هو 6.5 CU2. بالإضافة إلى ذلك، يجب أن تحتوي بيئة الإنشاء / الحزمة أيضا على Service Fabric .NET SDK عند CU2 أو أعلى

الهوية المُدارة التي يُعيّنها النظام

قالب التطبيق

لتمكين التطبيق بهوية مُدارة معينة من قبل النظام، أضف خاصية identity إلى مورد التطبيق، بالنوع systemAssigned كما هو موضح في المثال أدناه:

    {
      "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'))]"
      ],
      "identity": {
        "type" : "systemAssigned"
      },
      "properties": {
        "typeName": "[parameters('applicationTypeName')]",
        "typeVersion": "[parameters('applicationTypeVersion')]",
        "parameters": {
        }
      }
    }

تُعلن هذه الخاصية (إلى Azure Resource Manager، وManaged Identity وService Fabric Resource Providers، على التوالي، أن هذا المورد يجب أن تكون له هوية مُدارة ضمنية (system assigned).

حزمة التطبيق والخدمة

  1. حدِّث بيان التطبيق لإضافة عنصر ManagedIdentity في قسم Principals الذي يحتوي على إدخال واحد كما هو موضح أدناه:

    ApplicationManifest.xml

    <Principals>
      <ManagedIdentities>
        <ManagedIdentity Name="SystemAssigned" />
      </ManagedIdentities>
    </Principals>
    

    يقوم هذا بتعيين الهوية المعينة للتطبيق كمورد لاسم مألوف، لمزيد من التخصيص للخدمات التي يتكون منها التطبيق.

  2. في القسم ServiceManifestImport المقابل للخدمة التي يتم تخصيص الهوية المُدارة لها، أضف عنصر IdentityBindingPolicy، كما هو موضح أدناه:

    ApplicationManifest.xml

      <ServiceManifestImport>
        <Policies>
          <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="SystemAssigned" />
        </Policies>
      </ServiceManifestImport>
    

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

  3. حدِّث بيان الخدمة لإضافة عنصر ManagedIdentity داخل قسم Resources مع تطابق الاسم مع قيمة الإعداد ServiceIdentityRef من تعريف IdentityBindingPolicy في بيان التطبيق:

    ServiceManifest.xml

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

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

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