Como proteger entidades de serviço no Microsoft Entra ID
Artigo
Uma entidade de serviço do Microsoft Entra é a representação local de um objeto de aplicativo em um locatário ou diretório. É a identidade da instância do aplicativo. As entidades de serviço definem o acesso ao aplicativo e aos recursos que o aplicativo acessa. Uma entidade de serviço é criada em cada locatário em que o aplicativo é usado e faz referência ao objeto de aplicativo exclusivo globalmente. O locatário protege a entrada da entidade de serviço e o acesso aos recursos.
Um aplicativo de locatário único tem uma entidade de serviço em seu locatário inicial. Um aplicativo Web multilocatário ou uma API requer uma entidade de serviço em cada locatário. Uma entidade de serviço é criada quando um usuário desse locatário consente em usar o aplicativo ou a API. Esse consentimento cria uma relação um-para-muitos entre o aplicativo multilocatário e suas entidades de serviço associadas.
Um aplicativo multilocatário é hospedado em um locatário e conta com instâncias em outros locatários. A maioria dos aplicativos de SaaS (software como serviço) acomoda a multilocação. Use entidades de serviço para garantir a postura de segurança necessária para o aplicativo e seus usuários, em casos de locatário único e multilocatário.
ApplicationID e ObjectID
Uma instância de aplicativo tem duas propriedades: ApplicationID (ou ClientID) e ObjectID.
Observação
Os termos aplicativo e entidade de serviço são usados de maneira intercambiável ao se referir a um aplicativo em tarefas de autenticação. No entanto, eles são duas representações de aplicativos no Microsoft Entra ID.
O ApplicationID representa o aplicativo global e é o mesmo para instâncias de aplicativo em diferentes locatários. O ObjectID é um valor exclusivo para um objeto de aplicativo. Assim como acontece com usuários, grupos e outros recursos, o ObjectID ajuda a identificar uma instância de aplicativo no Microsoft Entra ID.
Criar um aplicativo e seu objeto de entidade de serviço
É possível criar um aplicativo e seu objeto de entidade de serviço (ObjectID) em um locatário usando:
PowerShell do Azure
PowerShell do Microsoft Graph
Interface de linha de comando do Azure (CLI do Azure)
API do Microsoft Graph
O portal do Azure
Outras ferramentas
Autenticação de entidade de serviço
Ao usar entidades de serviço, há dois mecanismos de autenticação: certificados e segredos de cliente.
Como os certificados são mais seguros, é recomendável usá-los, quando possível. Ao contrário dos segredos do cliente, os certificados do cliente não podem ser inseridos no código acidentalmente. Quando possível, use o Azure Key Vault para o gerenciamento de certificados e segredos para criptografar ativos com chaves protegidas por módulos de segurança de hardware:
Chaves de autenticação
Chaves de conta de armazenamento
Chaves de criptografia de dados
Arquivos .pfx
Senhas
Para obter mais informações sobre o Azure Key Vault e como usá-lo para o gerenciamento de certificados e segredos, veja:
Ao usar entidades de serviço, use a tabela a seguir para corresponder aos desafios e mitigações.
Desafio
Atenuação
Revisões de acesso para entidades de serviço atribuídas a funções com privilégios
Essa funcionalidade está em versão prévia
Revisões de acesso da entidade de serviço
Verificação manual da lista de controle de acesso aos recursos usando o portal do Azure
Entidades de serviço com permissão excessiva
Ao criar contas de serviço de automação ou entidades de serviço, conceda as permissões para a tarefa. Avaliar as entidades de serviço para reduzir os privilégios.
Identificar modificações nas credenciais de entidades de serviço ou nos métodos de autenticação
Para avaliar a segurança, avalie o armazenamento de credenciais e privilégios. Use a tabela a seguir para ajudar a atenuar os desafios:
Desafio
Atenuação
Detectar o usuário que consentiu em um aplicativo multilocatário e detectar concessões de consentimento ilícitas a um aplicativo multilocatário
- Execute o PowerShell a seguir para localizar aplicativos multilocatários Get-MgServicePrincipal -All:$true | ? {$_.Tags -eq "WindowsAzureActiveDirectoryIntegratedApp"} - Desabilite o consentimento do usuário - Permita o consentimento do usuário de editores verificados, para permissões selecionadas (recomendado) - Configure-as no contexto do usuário - Use seus tokens para disparar a entidade de serviço
Uso de um segredo compartilhado codificado em um script por meio de uma entidade de serviço
Usar um certificado
Acompanhar quem usa o certificado ou o segredo
Monitorar as entradas da entidade de serviço usando os logs de entrada do Microsoft Entra
Não é possível gerenciar a entrada das entidades de serviço com o Acesso Condicional
Monitorar as entradas usando os logs de entrada do Microsoft Entra
Colaborador é a função padrão de RBAC (controle de acesso baseado em função) do Azure
Avaliar as necessidades e aplicar o mínimo de permissões possível
Mover de uma conta de usuário para uma entidade de serviço
Se você estiver usando uma conta de usuário do Azure como uma entidade de serviço, considere mudar para uma identidade gerenciada ou uma entidade de serviço. Se não for possível usar uma identidade gerenciada, conceda a uma entidade de serviço permissões e escopo suficientes para realizar as tarefas necessárias. Você pode criar uma entidade de serviço registrando um aplicativoou com o PowerShell.
Ao usar o Microsoft Graph, verifique a documentação da API. Verifique se o tipo de permissão é compatível com o aplicativo. Veja, Criar servicePrincipal
Saiba como criar, gerenciar e conceder permissões para entidades de serviço, que permitem que seus pipelines de implantação se autentiquem com segurança ao Azure.
Demonstrar os recursos do Microsoft Entra ID para modernizar as soluções de identidade, implementar soluções híbridas e implementar a governança de identidade.