Federação de identidade de carga de trabalho

Este artigo fornece uma visão geral da federação de identidade de carga de trabalho para cargas de trabalho de software. O uso da federação de identidade de carga de trabalho permite que você acesse recursos protegidos do Microsoft Entra sem a necessidade de gerenciar segredos (para cenários com suporte).

Você pode usar a federação de identidade de carga de trabalho em cenários como GitHub Actions, cargas de trabalho em execução no Kubernetes ou cargas de trabalho em execução em plataformas de computação fora do Azure.

Por que usar a federação de identidade de carga de trabalho?

Assista a este vídeo para saber por que você usaria a federação de identidade de carga de trabalho.

Normalmente, uma carga de trabalho de software (como um aplicativo, serviço, script ou aplicativo baseado em contêiner) precisa de uma identidade para se autenticar e acessar recursos ou para se comunicar com outros serviços. Quando essas cargas de trabalho são executadas no Azure, você pode usar identidades gerenciadas e a plataforma do Azure gerenciará as credenciais para você. Você só pode usar identidades gerenciadas para cargas de trabalho de software em execução no Azure. Para uma carga de trabalho de software em execução fora do Azure, você precisa usar credenciais de aplicativo (um segredo ou certificado) para acessar recursos protegidos do Microsoft Entra (como o Azure, Microsoft Graph, Microsoft 365 ou recursos de terceiros). Essas credenciais representam um risco de segurança e precisam ser armazenadas com segurança e trocadas regularmente. Você também corre o risco do tempo de inatividade do serviço se as credenciais expirarem.

Use a federação de identidade de carga de trabalho para configurar uma identidade gerenciada atribuída pelo usuário ou um registro de aplicativo no Microsoft Entra ID para confiar em tokens de um IdP (provedor de identidade) externo, como o GitHub ou o Google. A identidade gerenciada atribuída pelo usuário ou o registro de aplicativo no Microsoft Entra ID se torna uma identidade para cargas de trabalho de software em execução, por exemplo, em Kubernetes locais ou fluxos de trabalho do GitHub Actions. Quando essa relação de confiança é criada, sua carga de trabalho de software externa troca tokens confiáveis do IdP externo por tokens de acesso da plataforma de identidade da Microsoft. A carga de trabalho do software usa esse token de acesso para acessar os recursos protegidos do Microsoft Entra aos quais a carga de trabalho recebeu acesso. Você elimina a carga de manutenção do gerenciamento manual de credenciais e elimina o risco de vazamento de segredos ou de expiração de certificados.

Cenários com suporte

Os seguintes cenários têm suporte para acessar recursos protegidos do Microsoft Entra usando a federação de identidade de carga de trabalho:

  • Carga de trabalho em execução em qualquer cluster do Kubernetes (Serviço de Contêiner do Azure (AKS), Amazon Web Services EKS, Google Kubernetes Engine(GKE) ou local). Estabeleça uma relação de confiança entre o seu aplicativo ou a identidade gerenciada atribuída pelo usuário no Microsoft Entra ID e uma carga de trabalho do Kubernetes (descrita na visão geral da identidade da carga de trabalho).
  • GitHub Actions. Primeiro, configure uma relação de confiança entre sua identidade gerenciada atribuída pelo usuário ou seu aplicativo no Microsoft Entra ID e um repositório do GitHub no centro de administração do Microsoft Entra ou usando o Microsoft Graph. Em seguida, configure um fluxo de trabalho de GitHub Actions para obter um token de acesso do provedor de identidade da Microsoft e acessar recursos do Azure.
  • Google Cloud. Primeiro, configure uma relação de confiança entre a identidade gerenciada atribuída pelo usuário ou o aplicativo no Microsoft Entra ID e uma identidade no Google Cloud. Em seguida, configure sua carga de trabalho de software em execução no Google Cloud para obter um token de acesso do provedor de identidade da Microsoft e acessar os recursos protegidos do Microsoft Entra. Confira Acessar os recursos protegidos do Microsoft Entra de um aplicativo no Google Cloud.
  • Cargas de trabalho em execução na Amazon Web Services (AWS). Primeiro, configure uma relação de confiança entre a identidade gerenciada atribuída pelo usuário ou o aplicativo no Microsoft Entra ID e uma identidade no Amazon Cognito. Em seguida, configure sua carga de trabalho de software em execução no AWS para obter um token de acesso do provedor de identidade da Microsoft e acessar os recursos protegidos do Microsoft Entra. Confira Federação de identidade de carga de trabalho com a AWS.
  • Outras cargas de trabalho em execução em plataformas de computação fora do Azure. Configure uma relação de confiança entre a identidade gerenciada atribuída pelo usuário ou o aplicativo no Microsoft Entra ID e o IdP externo para a sua plataforma de computação. Você pode usar tokens emitidos por essa plataforma para se autenticar com a plataforma de identidade da Microsoft e chamar APIs no ecossistema da Microsoft. Use o fluxo de credenciais do cliente para obter um token de acesso da plataforma de identidade da Microsoft, passando o JWT do provedor de identidade em vez de criar um usando um certificado armazenado.
  • SPIFFE e SPIRE são um conjunto de padrões independentes de plataforma de código aberto para fornecer identidades para suas cargas de trabalho de software implantadas entre plataformas e fornecedores de nuvem. Primeiro, configure uma relação de confiança entre a identidade gerenciada atribuída pelo usuário ou aplicativo no Microsoft Entra ID e uma ID SPIFFE para uma carga de trabalho externa. Em seguida, configure sua carga de trabalho de software externa para obter um token de acesso do provedor de identidade da Microsoft e acessar os recursos protegidos do Microsoft Entra. Confira Federação de identidade de carga de trabalho com SPIFFE e SPIRE.
  • Crie uma nova conexão de serviço no Azure Pipelines (versão prévia). Crie uma conexão de serviço do Azure Resource Manager usando a federação de identidade de carga de trabalho.

Observação

Os tokens emitidos pelo Microsoft Entra ID não podem ser usados para fluxos de identidade federados. O fluxo de credenciais de identidade federada não dá suporte a tokens emitidos pelo Microsoft Entra ID.

Como ele funciona

Crie uma relação de confiança entre o IdP externo e uma entidade gerenciada atribuída pelo usuário ou um aplicativo no Microsoft Entra ID. A credencial de identidade federada é usada para indicar qual token do IdP externo deve ser confiável para seu aplicativo ou identidade gerenciada. Configure uma identidade federada das seguintes formas:

O fluxo de trabalho para a troca de um token externo para um token de acesso é o mesmo, no entanto, para todos os cenários. O diagrama a seguir mostra o fluxo de trabalho geral de uma carga de trabalho que troca um token externo por um token de acesso e, em seguida, acessa os recursos protegidos do Microsoft Entra.

Diagram showing an external token exchanged for an access token and accessing Azure

  1. A carga de trabalho externa (como um fluxo de trabalho de GitHub Actions) solicita um token do IdP externo (como o GitHub).
  2. O IdP externo emite um token para a carga de trabalho externa.
  3. A carga de trabalho externa (a ação de logon em um fluxo de trabalho do GitHub, por exemplo) envia o token para a plataforma de identidade da Microsoft e solicita um token de acesso.
  4. A plataforma de identidade da Microsoft verifica a relação de confiança na identidade gerenciada atribuída pelo usuário ou no registro de aplicativo e valida o token externo na URL do emissor do OIDC (Open ID Connect) no IdP externo.
  5. Quando as verificações forem satisfeitas, a plataforma de identidade da Microsoft emitirá um token de acesso para a carga de trabalho externa.
  6. A carga de trabalho externa acessa recursos protegidos do Microsoft Entra usando o token de acesso da plataforma de identidade da Microsoft. Um fluxo de trabalho de GitHub Actions, por exemplo, usa o token de acesso para publicar um aplicativo Web no Serviço de Aplicativo do Azure.

A plataforma de identidade da Microsoft armazena apenas as 100 primeiras chaves de assinatura quando elas são baixadas do ponto de extremidade OIDC do IdP externo. Se o IdP externo expuser mais de 100 chaves de assinatura, você poderá ter erros ao usar a federação de identidade de carga de trabalho.

Próximas etapas

Saiba mais sobre como funciona a federação de identidade de carga de trabalho: