Implementar uma aplicação do Service Fabric com identidade gerida atribuída pelo sistema
Nota
Não há suporte para habilitar a identidade para um aplicativo existente que foi implantado inicialmente usando cmdlets do Azure.
Para acessar o recurso de identidade gerenciada para aplicativos do Azure Service Fabric, você deve primeiro habilitar o Serviço de Token de Identidade Gerenciada no cluster. Esse serviço é responsável pela autenticação de aplicativos do Service Fabric usando suas identidades gerenciadas e pela obtenção de tokens de acesso em seu nome. Depois que o serviço estiver habilitado, você poderá vê-lo no Service Fabric Explorer na seção Sistema no painel esquerdo, executando sob o nome fabric:/System/ManagedIdentityTokenService ao lado de outros serviços do sistema.
Nota
A implantação de aplicativos do Service Fabric com identidades gerenciadas é suportada a partir da versão "2019-06-01-preview"
da API. Você também pode usar a mesma versão da API para o tipo de aplicativo, versão do tipo de aplicativo e recursos de serviço. O tempo de execução mínimo suportado do Service Fabric é 6,5 CU2. Além disso, o ambiente de compilação/pacote também deve ter o SDK .NET do Service Fabric em CU2 ou superior
Identidade gerida atribuída pelo sistema
Modelo de aplicação
Para habilitar o aplicativo com uma identidade gerenciada atribuída pelo sistema, adicione a propriedade identity ao recurso do aplicativo, com o tipo systemAssigned como 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 (para o Azure Resource Manager e os Managed Identity e Service Fabric Resource Providers, respectivamente), que esse recurso deve ter uma identidade gerenciada implícita (system assigned
).
Pacote de aplicativos e serviços
Atualize o manifesto do aplicativo para adicionar um elemento ManagedIdentity na seção Principals , contendo uma única entrada, conforme mostrado abaixo:
ApplicationManifest.xml
<Principals> <ManagedIdentities> <ManagedIdentity Name="SystemAssigned" /> </ManagedIdentities> </Principals>
Isso mapeia a identidade atribuída ao aplicativo como um recurso para um nome amigável, para posterior atribuição aos serviços que compõem o aplicativo.
Na seção ServiceManifestImport correspondente ao serviço ao qual está sendo atribuída a identidade gerenciada, 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 essa atribuição, o serviço não poderá acessar a identidade do aplicativo. No trecho acima, a
SystemAssigned
identidade (que é uma palavra-chave reservada) é mapeada para a definição do serviço sob o nomeWebAdmin
amigável.Atualize o manifesto do serviço para adicionar um elemento ManagedIdentity dentro da seção Recursos com o nome correspondente ao valor da
ServiceIdentityRef
configuração da definição no manifesto doIdentityBindingPolicy
aplicativo: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 da perspetiva da definição de serviço. A identidade é aqui referenciada pelo seu nome amigável (
WebAdmin
), conforme declarado no manifesto do pedido.
Passos Seguintes
- Revisar o suporte de identidade gerenciada no Azure Service Fabric
- Implantar um novo cluster do Azure Service Fabric com suporte a identidade gerenciada
- Habilitar identidade gerenciada em um cluster existente do Azure Service Fabric
- Aproveite a identidade gerenciada de um aplicativo do Service Fabric a partir do código-fonte
- Implantar um aplicativo do Azure Service Fabric com uma identidade gerenciada atribuída pelo usuário
- Conceder a um aplicativo do Azure Service Fabric acesso a outros recursos do Azure