Menerapkan aplikasi Service Fabric dengan User-Assigned Managed Identity
Untuk menerapkan aplikasi Service Fabric dengan identitas terkelola, aplikasi perlu digunakan melalui Azure Resource Manager, biasanya dengan templat Azure Resource Manager. Untuk informasi selengkapnya tentang cara menggunakan aplikasi Service Fabric melalui Azure Resource Manager, lihat Mengelola aplikasi dan layanan sebagai sumber daya Azure Resource Manager.
Catatan
Aplikasi yang tidak digunakan sebagai sumber daya Azure tidak dapat memiliki Identitas Terkelola.
Penyebaran aplikasi Service Fabric dengan Managed Identity didukung dengan versi API "2019-06-01-preview"
. Anda juga dapat menggunakan versi API yang sama untuk jenis aplikasi, versi jenis aplikasi, dan sumber daya layanan.
Identitas User-Assigned
Untuk mengaktifkan aplikasi dengan identitas User-Assigned, pertama-tama tambahkan properti identitas ke sumber daya aplikasi dengan jenis userAssigned dan identitas yang ditetapkan pengguna yang direferensikan. Kemudian tambahkan bagian managedIdentities di dalam bagian properti untuk sumber daya aplikasi yang berisi daftar nama yang ramah ke pemetaan principalId untuk setiap identitas user-assigned. Untuk informasi selengkapnya tentang Identitas User Assigned, lihat Membuat, mencantumkan, atau menghapus identitas user-assigned.
Templat aplikasi
Untuk mengaktifkan aplikasi dengan User Assigned identity, pertama-tama tambahkan properti identitas ke sumber daya aplikasi dengan jenis userAssigned dan identitas yang ditetapkan pengguna yang direferensikan, lalu tambahkan objek managedIdentities di dalam bagian properti yang berisi daftar nama yang mudah dipahami ke pemetaan principalId untuk setiap identitas yang ditetapkan pengguna.
{
"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]"
}
]
}
}
Dalam contoh di atas, nama sumber daya identitas yang ditetapkan pengguna digunakan sebagai nama yang mudah dipahami dari identitas terkelola untuk aplikasi. Contoh berikut mengasumsikan nama yang mudah dipahami secara aktual adalah "AdminUser".
Paket aplikasi
Untuk setiap identitas yang ditentukan dalam bagian
managedIdentities
di templat Azure Resource Manager, tambahkan tag<ManagedIdentity>
dalam manifes aplikasi di bawah bagian Prinsipal. AtributName
harus cocok dengan propertiname
yang ditentukan di bagianmanagedIdentities
.ApplicationManifest.xml
<Principals> <ManagedIdentities> <ManagedIdentity Name="AdminUser" /> </ManagedIdentities> </Principals>
Di bagian ServiceManifestImport, tambahkan IdentityBindingPolicy untuk layanan yang menggunakan Managed Identity. Kebijakan ini memetakan identitas
AdminUser
ke nama identitas khusus layanan yang perlu ditambahkan ke dalam manifes layanan di kemudian hari.ApplicationManifest.xml
<ServiceManifestImport> <Policies> <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="AdminUser" /> </Policies> </ServiceManifestImport>
Perbarui manifes layanan untuk menambahkan ManagedIdentity di dalam bagian Sumber Daya dengan nama yang cocok dengan
ServiceIdentityRef
diIdentityBindingPolicy
manifes aplikasi:ServiceManifest.xml
<Resources> ... <ManagedIdentities DefaultIdentity="WebAdmin"> <ManagedIdentity Name="WebAdmin" /> </ManagedIdentities> </Resources>