Implementar a aplicação do Service Fabric com a identidade gerida atribuída pelo sistema
Nota
A ativação da identidade de uma aplicação existente que foi implementada inicialmente com cmdlets do Azure não é suportada.
Para aceder à funcionalidade de identidade gerida das aplicações do Azure Service Fabric, primeiro tem de ativar o Serviço de Tokens de Identidade Gerida no cluster. Este serviço é responsável pela autenticação das aplicações do Service Fabric que utilizam as respetivas identidades geridas e pela obtenção de tokens de acesso em seu nome. Assim que o serviço estiver ativado, pode vê-lo no Service Fabric Explorer na secção Sistema no painel esquerdo, em execução no recurso de infraestrutura de nome:/System/ManagedIdentityTokenService junto a outros serviços do sistema.
Nota
A implementação de aplicações do Service Fabric com identidades geridas é suportada a partir da 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. O runtime mínimo suportado do Service Fabric é de 6,5 CU2. Além disso, o ambiente de compilação/pacote também deve ter o SDK .NET do Service Fabric na CU2 ou superior
Identidade gerida atribuída pelo sistema
Modelo de aplicação
Para ativar a aplicação com uma identidade gerida atribuída pelo sistema, adicione a propriedade de identidade ao recurso da aplicação, com o tipo systemAssigned conforme mostrado no exemplo abaixo:
{
"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'))]"
],
"identity": {
"type" : "systemAssigned"
},
"properties": {
"typeName": "[parameters('applicationTypeName')]",
"typeVersion": "[parameters('applicationTypeVersion')]",
"parameters": {
}
}
}
Esta propriedade declara (ao Azure Resource Manager e aos Fornecedores de Recursos do Service Fabric e identidade gerida, respetivamente, que este recurso deve ter uma identidade implícita (system assigned
) gerida.
Pacote de aplicações e serviços
Atualize o manifesto da aplicação para adicionar um elemento ManagedIdentity na secção Principais , que contém uma única entrada, conforme mostrado abaixo:
ApplicationManifest.xml
<Principals> <ManagedIdentities> <ManagedIdentity Name="SystemAssigned" /> </ManagedIdentities> </Principals>
Isto mapeia a identidade atribuída à aplicação como um recurso para um nome amigável, para uma atribuição adicional aos serviços que incluem a aplicação.
Na secção ServiceManifestImport correspondente ao serviço ao qual está a ser atribuída a identidade gerida, adicione um elemento IdentityBindingPolicy , conforme indicado abaixo:
ApplicationManifest.xml
<ServiceManifestImport> <Policies> <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="SystemAssigned" /> </Policies> </ServiceManifestImport>
Este elemento atribui a identidade da aplicação ao serviço; sem esta atribuição, o serviço não poderá aceder à identidade da aplicação. No fragmento acima, a
SystemAssigned
identidade (que é uma palavra-chave reservada) é mapeada para a definição do serviço com o nomeWebAdmin
amigável .Atualize o manifesto do serviço para adicionar um elemento ManagedIdentity dentro da secção Recursos com o nome correspondente ao valor da
ServiceIdentityRef
definiçãoIdentityBindingPolicy
na definição no manifesto da aplicação:ServiceManifest.xml
<Resources> ... <ManagedIdentities DefaultIdentity="WebAdmin"> <ManagedIdentity Name="WebAdmin" /> </ManagedIdentities> </Resources>
Este é o mapeamento equivalente de uma identidade para um serviço, conforme descrito acima, mas do ponto de vista da definição do serviço. A identidade é referenciada aqui pelo nome amigável (
WebAdmin
), conforme declarado no manifesto da aplicação.
Passos Seguintes
- Rever o suporte de identidade gerida no Azure Service Fabric
- Implementar um novo Cluster do Azure Service Fabric com suporte de identidade gerida
- Ativar a identidade gerida num cluster do Azure Service Fabric existente
- Tirar partido da identidade gerida de uma aplicação do Service Fabric a partir do código fonte
- Implementar uma aplicação do Azure Service Fabric com uma identidade gerida atribuída pelo utilizador
- Conceder acesso a uma aplicação do Azure Service Fabric a outros recursos do Azure