Implementar uma aplicação do Service Fabric com uma Identidade Gerida User-Assigned
Para implementar uma aplicação do Service Fabric com identidade gerida, a aplicação tem de ser implementada através do Azure Resource Manager, normalmente com um modelo de Resource Manager do Azure. Para obter mais informações sobre como implementar a aplicação do Service Fabric através do Azure Resource Manager, veja Gerir aplicações e serviços como recursos do Azure Resource Manager.
Nota
As aplicações que não são implementadas como um recurso do Azure não podem ter Identidades Geridas.
A implementação de aplicações do Service Fabric com Identidade Gerida é suportada com a versão "2019-06-01-preview"
da API . Também pode utilizar a mesma versão da API para o tipo de aplicação, a versão do tipo de aplicação e os recursos de serviço.
Identidade do User-Assigned
Para ativar a aplicação com User-Assigned identidade, adicione primeiro a propriedade de identidade ao recurso da aplicação com o tipo userAssigned e as identidades atribuídas pelo utilizador referenciadas. Em seguida, adicione uma secção managedIdentities na secção de propriedades do recurso da aplicação que contém uma lista de nomes amigáveis para mapeamento principalId para cada uma das identidades atribuídas pelo utilizador. Para obter mais informações sobre as Identidades Atribuídas pelo Utilizador , consulte Criar, listar ou eliminar uma identidade gerida atribuída pelo utilizador.
Modelo de aplicação
Para ativar a aplicação com a identidade Atribuída pelo Utilizador, primeiro adicione a propriedade de identidade ao recurso da aplicação com o tipo userAssigned e as identidades atribuídas pelo utilizador referenciado e, em seguida, adicione um objeto managedIdentities dentro da secção de propriedades que contém uma lista de nomes amigáveis para mapeamento de principalId para cada uma das identidades atribuídas pelo utilizador.
{
"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]"
}
]
}
}
No exemplo acima, o nome do recurso da identidade atribuída pelo utilizador está a ser utilizado como o nome amigável da identidade gerida da aplicação. Os exemplos seguintes partem do princípio de que o nome amigável real é "AdminUser".
Pacote de aplicação
Para cada identidade definida na
managedIdentities
secção no modelo Resource Manager do Azure, adicione uma<ManagedIdentity>
etiqueta no manifesto da aplicação na secção Principais. OName
atributo tem de corresponder àname
propriedade definida namanagedIdentities
secção.ApplicationManifest.xml
<Principals> <ManagedIdentities> <ManagedIdentity Name="AdminUser" /> </ManagedIdentities> </Principals>
Na secção ServiceManifestImport , adicione um IdentityBindingPolicy para o serviço que utiliza a Identidade Gerida. Esta política mapeia a
AdminUser
identidade para um nome de identidade específico do serviço que tem de ser adicionado ao manifesto de serviço mais tarde.ApplicationManifest.xml
<ServiceManifestImport> <Policies> <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="AdminUser" /> </Policies> </ServiceManifestImport>
Atualize o manifesto do serviço para adicionar um ManagedIdentity na secção Recursos com o nome correspondente ao
ServiceIdentityRef
IdentityBindingPolicy
no manifesto da aplicação:ServiceManifest.xml
<Resources> ... <ManagedIdentities DefaultIdentity="WebAdmin"> <ManagedIdentity Name="WebAdmin" /> </ManagedIdentities> </Resources>