Kullanıcı Tarafından Atanan Yönetilen Kimlikle Service Fabric uygulaması dağıtma
Yönetilen kimliğe sahip bir Service Fabric uygulamasını dağıtmak için uygulamanın Azure Resource Manager aracılığıyla dağıtılması gerekir ve genellikle bir Azure Resource Manager şablonuyla dağıtılmalıdır. 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 uygulamalarda Yönetilen Kimlikler 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.
Kullanıcı Tarafından Atanan Kimlik
Uygulamayı Kullanıcı Tarafından Atanan kimlikle etkinleştirmek için önce userAssigned türüne ve başvuruda bulunan kullanıcı tarafından atanan kimliklere sahip kimlik özelliğini uygulama kaynağına 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 bulunan 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
Azure Resource Manager şablonunun
managedIdentities
bölümünde tanımlanan her kimlik için, Sorumlular bölümünün altındaki uygulama bildirimine bir<ManagedIdentity>
etiket ekleyin. özniteliğininName
bölümünde tanımlanan özelliğiyle eşleşmesiname
managedIdentities
gerekir.ApplicationManifest.xml
<Principals> <ManagedIdentities> <ManagedIdentity Name="AdminUser" /> </ManagedIdentities> </Principals>
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>
Hizmet bildirimini güncelleştirerek Kaynaklar bölümünün içine uygulama bildirimindeki
IdentityBindingPolicy
adıyla eşleşenServiceIdentityRef
bir ManagedIdentity ekleyin:ServiceManifest.xml
<Resources> ... <ManagedIdentities DefaultIdentity="WebAdmin"> <ManagedIdentity Name="WebAdmin" /> </ManagedIdentities> </Resources>