Implantar um aplicativo do Service Fabric com identidade gerenciada atribuída pelo sistema
Observação
Não há suporte para habilitar a identidade de um aplicativo existente implantado inicialmente com os cmdlets do Azure.
Para acessar o recurso de identidade gerenciada para aplicativos do Azure Service Fabric, primeiro é preciso habilitar o Serviço de Token da Identidade Gerenciada no cluster. Esse serviço é responsável pela autenticação de aplicativos do Service Fabric usando as respectivas identidades gerenciadas, bem como pela obtenção de tokens de acesso em nome dos aplicativos. Após a habilitar o serviço, será possível vê-lo na seção Sistema do painel esquerdo do Service Fabric Explorer. Além disso, ele estará em execução ao lado de outros serviços do sistema com o nome fabric:/System/ManagedIdentityTokenService.
Observação
A implantação de aplicativos do Service Fabric com identidades gerenciadas é compatível com a versão da API "2019-06-01-preview"
em diante. Também é possível usar a mesma versão da API no tipo de aplicativo, na versão do tipo de aplicativo e nos recursos de serviço. O runtime mínimo compatível com o Service Fabric é a CU2 6.5. Além disso, o ambiente de build/pacote também deverá ter o SDK do Service Fabric .NET no CU2 ou posterior
Identidade gerenciada atribuída pelo sistema
Modelo de aplicativo
Para habilitar o aplicativo usando uma identidade gerenciada atribuída pelo sistema, adicione a propriedade de identidade ao recurso de aplicativo 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": {
}
}
}
Essa propriedade declara, respectivamente, ao Azure Resource Manager, à Identidade Gerenciada e aos Provedores de Recursos do Service Fabric que esse recurso deverá ter uma identidade gerenciada implícita (system assigned
).
Pacote de aplicativos e serviço
Atualize o manifesto do aplicativo para adicionar um elemento ManagedIdentity à seção Entidades de Segurança contendo uma entrada única, conforme mostrado abaixo:
ApplicationManifest.xml
<Principals> <ManagedIdentities> <ManagedIdentity Name="SystemAssigned" /> </ManagedIdentities> </Principals>
Esse elemento mapeia a identidade atribuída ao aplicativo como um recurso para um nome amigável a fim de executar uma atribuição posterior aos serviços que compõem o aplicativo.
Na seção ServiceManifestImport correspondente ao serviço que está sendo atribuído à identidade gerenciada, adicione um elemento IdentityBindingPolicy, conforme indicado abaixo:
ApplicationManifest.xml
<ServiceManifestImport> <Policies> <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="SystemAssigned" /> </Policies> </ServiceManifestImport>
Esse elemento atribui a identidade do aplicativo ao serviço. Sem essa atribuição, o serviço não será capaz de acessar a identidade do aplicativo. No snippet acima, a identidade
SystemAssigned
(uma palavra-chave reservada) é mapeada para obter a definição de serviço com o nome amigávelWebAdmin
.Atualize o manifesto do serviço para adicionar um elemento ManagedIdentity dentro da seção Recursos com um nome correspondente ao valor da configuração
ServiceIdentityRef
da definiçãoIdentityBindingPolicy
no manifesto do aplicativo:ServiceManifest.xml
<Resources> ... <ManagedIdentities DefaultIdentity="WebAdmin"> <ManagedIdentity Name="WebAdmin" /> </ManagedIdentities> </Resources>
Esse é o mapeamento equivalente de uma identidade usada em um serviço conforme descrito acima, no entanto, da perspectiva da definição de serviço. A identidade é referenciada aqui pelo respectivo nome amigável (
WebAdmin
), conforme declarado no manifesto do aplicativo.
Próximas etapas
- Examinar o suporte à identidade gerenciada no Azure Service Fabric
- Implantar um novo cluster do Azure Service Fabric com suporte à identidade gerenciada
- Habilitar identidade gerenciada em um cluster existente do Azure Service Fabric
- Aproveitar a identidade gerenciada do código-fonte de um aplicativo do Service Fabric
- Implantar um aplicativo do Azure Service Fabric com uma identidade gerenciada atribuída pelo usuário
- Permitir que um aplicativo do Azure Service Fabric acesse outros recursos do Azure