Wdrażanie aplikacji usługi Service Fabric z przypisaną przez użytkownika tożsamością zarządzaną
Aby wdrożyć aplikację usługi Service Fabric z tożsamością zarządzaną, aplikacja musi zostać wdrożona za pośrednictwem usługi Azure Resource Manager, zazwyczaj przy użyciu szablonu usługi Azure Resource Manager. Aby uzyskać więcej informacji na temat wdrażania aplikacji usługi Service Fabric za pomocą usługi Azure Resource Manager, zobacz Zarządzanie aplikacjami i usługami jako zasobami usługi Azure Resource Manager.
Uwaga
Aplikacje, które nie są wdrażane jako zasób platformy Azure, nie mogą mieć tożsamości zarządzanych.
Wdrażanie aplikacji usługi Service Fabric z tożsamością zarządzaną jest obsługiwane w wersji "2019-06-01-preview"
interfejsu API. Możesz również użyć tej samej wersji interfejsu API dla typu aplikacji, wersji typu aplikacji i zasobów usługi.
Tożsamość przypisana przez użytkownika
Aby włączyć aplikację z tożsamością przypisaną przez użytkownika, najpierw dodaj właściwość tożsamości do zasobu aplikacji z typem userAssigned i przywoływane tożsamości przypisane przez użytkownika. Następnie dodaj sekcję ManagedIdentities wewnątrz sekcji właściwości zasobu aplikacji , która zawiera listę przyjaznych nazw do mapowania principalId dla każdej tożsamości przypisanej przez użytkownika. Aby uzyskać więcej informacji na temat tożsamości przypisanych przez użytkownika, zobacz Tworzenie, wyświetlanie listy lub usuwanie tożsamości zarządzanej przypisanej przez użytkownika.
Szablon aplikacji
Aby włączyć aplikację z tożsamością przypisaną przez użytkownika, najpierw dodaj właściwość tożsamości do zasobu aplikacji z typem userAssigned i przywoływane tożsamości przypisane przez użytkownika, a następnie dodaj obiekt managedIdentities wewnątrz sekcji właściwości , która zawiera listę przyjaznych nazw do mapowania principalId dla każdej tożsamości przypisanej przez użytkownika.
{
"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]"
}
]
}
}
W powyższym przykładzie nazwa zasobu tożsamości przypisanej przez użytkownika jest używana jako przyjazna nazwa tożsamości zarządzanej dla aplikacji. W poniższych przykładach założono, że rzeczywista przyjazna nazwa to "AdminUser".
Pakiet aplikacji
Dla każdej tożsamości zdefiniowanej
managedIdentities
w sekcji w szablonie usługi Azure Resource Manager dodaj<ManagedIdentity>
tag w manifeście aplikacji w sekcji Podmioty zabezpieczeń . AtrybutName
musi być zgodny z właściwością zdefiniowanąname
managedIdentities
w sekcji .ApplicationManifest.xml
<Principals> <ManagedIdentities> <ManagedIdentity Name="AdminUser" /> </ManagedIdentities> </Principals>
W sekcji ServiceManifestImport dodaj element IdentityBindingPolicy dla usługi korzystającej z tożsamości zarządzanej. Te zasady mapują
AdminUser
tożsamość na nazwę tożsamości specyficzną dla usługi, która musi zostać później dodana do manifestu usługi.ApplicationManifest.xml
<ServiceManifestImport> <Policies> <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="AdminUser" /> </Policies> </ServiceManifestImport>
Zaktualizuj manifest usługi, aby dodać identyfikator ManagedIdentity wewnątrz sekcji Resources o nazwie pasującej do
ServiceIdentityRef
IdentityBindingPolicy
nazwy w manifeście aplikacji:ServiceManifest.xml
<Resources> ... <ManagedIdentities DefaultIdentity="WebAdmin"> <ManagedIdentity Name="WebAdmin" /> </ManagedIdentities> </Resources>