Share via


User-Assigned Yönetilen Kimliği ile Service Fabric uygulaması dağıtma

Yönetilen kimliğe sahip bir Service Fabric uygulaması dağıtmak için, uygulamanın genellikle Azure Resource Manager şablonuyla Azure Resource Manager aracılığıyla dağıtılması gerekir. Service Fabric uygulamasını Azure Resource Manager aracılığıyla dağıtma hakkında daha fazla bilgi için bkz. Uygulamaları ve hizmetleri Azure Resource Manager kaynakları olarak yönetme.

Not

Azure kaynağı olarak dağıtılmayan uygulamaların Yönetilen Kimlikleri olamaz .

Yönetilen Kimlik ile Service Fabric uygulama dağıtımı API sürümü "2019-06-01-preview"ile desteklenir. Uygulama türü, uygulama türü sürümü ve hizmet kaynakları için de aynı API sürümünü kullanabilirsiniz.

User-Assigned Kimliği

Uygulamayı User-Assigned kimlikle etkinleştirmek için önce userAssigned türüne ve başvuruda bulunan kullanıcı tarafından atanan kimliklere sahip uygulama kaynağına kimlik özelliğini ekleyin. Ardından uygulama kaynağının özellikler bölümünün içine kullanıcı tarafından atanan kimliklerin her biri için principalId eşlemesine kolay ad listesini içeren bir managedIdentities bölümü ekleyin. Kullanıcı Tarafından Atanan Kimlikler hakkında daha fazla bilgi için bkz. Kullanıcı tarafından atanan yönetilen kimliği oluşturma, listeleme veya silme.

Uygulama şablonu

Kullanıcı Tarafından Atanan kimlikle uygulamayı etkinleştirmek için, önce userAssigned türüne ve başvuruda bulunılan kullanıcı tarafından atanan kimliklere sahip uygulama kaynağına kimlik özelliği ekleyin, ardından özellikler bölümünün içine kullanıcı tarafından atanan kimliklerin her biri için principalId eşlemesine kolay ad listesini içeren bir managedIdentities nesnesi ekleyin.

{
  "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]"
      }
    ]
  }
}

Yukarıdaki örnekte kullanıcı tarafından atanan kimliğin kaynak adı, uygulama için yönetilen kimliğin kolay adı olarak kullanılıyor. Aşağıdaki örneklerde gerçek kolay adın "AdminUser" olduğu varsayılır.

Uygulama paketi

  1. Azure Resource Manager şablonunun managedIdentities bölümünde tanımlanan her kimlik için, Uygulama bildiriminde Sorumlular bölümünün altına bir <ManagedIdentity> etiket ekleyin. özniteliğinin Name bölümünde tanımlanan özelliğiyle eşleşmesi namemanagedIdentities gerekir.

    ApplicationManifest.xml

      <Principals>
        <ManagedIdentities>
          <ManagedIdentity Name="AdminUser" />
        </ManagedIdentities>
      </Principals>
    
  2. ServiceManifestImport bölümünde, Yönetilen Kimliği kullanan hizmet için bir IdentityBindingPolicy ekleyin. Bu ilke, AdminUser kimliği daha sonra hizmet bildirimine eklenmesi gereken hizmete özgü bir kimlik adıyla eşler.

    ApplicationManifest.xml

      <ServiceManifestImport>
        <Policies>
          <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="AdminUser" />
        </Policies>
      </ServiceManifestImport>
    
  3. Hizmet bildirimini, Uygulamalar bölümünün içine uygulama bildirimindeki adıyla eşleşen ServiceIdentityRefIdentityBindingPolicy bir ManagedIdentity eklemek için güncelleştirin:

    ServiceManifest.xml

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

Sonraki adımlar