Usar identidades gerenciadas para o Azure com o Service Fabric
Um desafio comum ao criar aplicativos em nuvem é como gerenciar com segurança as credenciais em seu código para autenticação a vários serviços sem salvá-las localmente em uma estação de trabalho do desenvolvedor ou no controle do código-fonte. As identidades gerenciadas do Azure resolvem esse problema para todos os seus recursos no Microsoft Entra ID, fornecendo-lhes identidades gerenciadas automaticamente dentro do Microsoft Entra ID. Você pode usar a identidade de um serviço para autenticação em qualquer serviço que dê suporte à autenticação do Microsoft Entra, incluindo o Key Vault, sem credenciais armazenadas em seu código.
As identidades gerenciadas para recursos do Azure são gratuitas com o Microsoft Entra ID para assinaturas do Azure. Não há custo adicional.
Observação
Identidades gerenciadas para o Azure é o novo nome do serviço anteriormente conhecido como Identidade de Serviço Gerenciada (MSI).
Conceitos
As Identidades gerenciadas para o Azure se baseiam em diversos conceitos principais:
ID do cliente – um identificador exclusivo gerado pelo Microsoft Entra ID que está vinculado a um aplicativo e entidade de serviço durante seu provisionamento inicial (confira também ID do aplicativo (cliente)).
ID da Entidade de Segurança – a ID de objeto do objeto da entidade de serviço para a identidade gerenciada usada para permitir acesso baseado em função a um recurso do Azure.
Entidade de serviço – um objeto do Microsoft Entra, que representa a projeção de um aplicativo do Microsoft Entra em um determinado locatário (confira também entidade de serviço).
Há dois tipos de identidades gerenciadas:
- Uma identidade gerenciada atribuída pelo sistema é habilitada diretamente em uma instância de serviço do Microsoft Azure. O ciclo de vida de uma identidade atribuída ao sistema é exclusivo da instância de serviço do Azure na qual essa entidade está habilitada.
- Uma identidade gerenciada atribuída pelo usuário é criada como um recurso autônomo do Azure. A identidade pode ser atribuída a uma ou mais instâncias de serviço do Azure e é gerenciada separadamente dos ciclos de vida dessas instâncias.
Para entender ainda melhor a diferença entre os tipos de identidade gerenciada, consulte Como funcionam as identidades gerenciadas dos recursos do Azure?.
Cenários com suporte para aplicativos do Service Fabric
Identidades gerenciadas para o Service Fabric só tem suporte em clusters do Service Fabric implantados pelo Azure e para aplicativos implantados como recursos do Azure. Um aplicativo não implantado como um recurso do Azure não pode receber uma identidade. Conceitualmente falando, o suporte para identidades gerenciadas em um cluster de Service Fabric do Azure consiste em duas fases:
Atribuir uma ou mais identidades gerenciadas ao recurso de aplicativo; um aplicativo pode receber uma única identidade atribuída pelo sistema e/ou até 32 identidades atribuídas pelo usuário, respectivamente.
Na definição do aplicativo, mapeie uma das identidades atribuídas ao aplicativo a qualquer serviço individual que compõe o aplicativo.
A identidade atribuída pelo sistema de um aplicativo é exclusiva para esse aplicativo; uma identidade atribuída pelo usuário é um recurso autônomo que pode ser atribuído a vários aplicativos. Em um aplicativo, uma única identidade (seja ela atribuída pelo sistema ou pelo usuário) pode ser atribuída a vários serviços do aplicativo, mas para cada serviço individual só pode ser atribuída uma identidade. Por fim, uma entidade deve ser atribuída explicitamente a um serviço para que o serviço tenha acesso a essa funcionalidade. De fato, o mapeamento das identidades de um aplicativo aos serviços constituintes permite o isolamento no aplicativo – um serviço só pode usar a identidade mapeada para ele.
Há suporte para os seguintes cenários com este recurso:
Implantar um novo aplicativo com um ou mais serviços e uma ou mais identidades atribuídas
Atribuir uma ou mais identidades gerenciadas a um aplicativo existente (implantado no Azure) para acessar recursos do Azure
Os cenários a seguir não têm suporte ou não são recomendados. Essas ações não pode ser bloqueadas, mas podem levar a indisponibilidades em seus aplicativos:
Remover ou alterar as identidades atribuídas a um aplicativo. Se você precisar fazer alterações, envie implantações separadas para primeiro adicionar uma nova atribuição de identidade e, em seguida, remova uma atribuída anteriormente. A remoção de uma identidade de um aplicativo existente pode ter efeitos indesejáveis, incluindo deixar seu aplicativo em um estado não atualizável. É seguro excluir o aplicativo completamente se a remoção de uma identidade for necessária. Excluir o aplicativo exclui qualquer identidade atribuída pelo sistema associada ao aplicativo e remove todas as associações com todas as identidades atribuídas pelo usuário atribuídas ao aplicativo.
O Service Fabric não dá suporte a identidades gerenciadas no AzureServiceTokenProvider preterido. Em vez disso, use identidades gerenciadas no Service Fabric usando o SDK de Identidade do Azure
Próximas etapas
- Implantar um novo cluster do Azure Service Fabric com suporte à identidade gerenciada
- Habilitar o suporte à identidade gerenciada em um cluster existente do Azure Service Fabric
- Implantar um aplicativo do Azure Service Fabric com uma identidade gerenciada atribuída pelo sistema
- Implantar um aplicativo do Azure Service Fabric com uma identidade gerenciada atribuída pelo usuário
- Usar a identidade gerenciada de um aplicativo do Service Fabric do código de serviço
- Permitir que um aplicativo do Azure Service Fabric acesse outros recursos do Azure
- Declarar e usar segredos do aplicativo como KeyVaultReferences