Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Credenciais de identidade federada flexíveis são um recurso avançado do Microsoft Entra Workload ID, que aprimora o modelo de credenciais de identidade federada existente. Este artigo explica como essas credenciais funcionam, seus benefícios e limitações atuais.
As credenciais de identidade federadas flexíveis permitem usar uma linguagem de expressão restrita para combinar declarações de entrada subject e permitir a inclusão de declarações personalizadas, ajudando a reduzir a sobrecarga de gerenciamento e resolver os limites de escala na federação de identidade de carga de trabalho. Se você estiver procurando simplificar a autenticação para cargas de trabalho externas com o Microsoft Entra, este guia fornecerá os insights e as etapas necessários para usar esse recurso poderoso.
Por que usar credenciais de identidade federadas flexíveis?
O comportamento atual das credenciais de identidade federadas dentro da federação de identidade para cargas de trabalho exige correspondência exata ao comparar os subject, issuere audience definidos na credencial de identidade federada com os subject, issuere audience contidos no token enviado ao Microsoft Entra. Quando combinado com o limite atual de 20 credenciais de identidade federadas para um determinado aplicativo ou identidade gerenciada atribuída pelo usuário, os limites de escala podem ser atingidos rapidamente.
As credenciais de identidade federadas flexíveis estendem o modelo de credencial de identidade federada existente, permitindo o uso de uma linguagem de expressões restrita ao comparar com declarações subject de entrada. Ele também pode ser usado para estender o modelo de autorização de credencial de identidade federada para além das declarações de subject, issuere audience habilitando a inclusão de determinadas declarações personalizadas permitidas em suas credenciais de identidade federadas.
As credenciais de identidade federadas flexíveis podem ajudar a reduzir a sobrecarga de gerenciamento ao tentar autenticar cargas de trabalho externas com o Microsoft Entra e resolver os limites de escala nas implementações de federação de identidade de carga de trabalho.
Como funcionam as credenciais de identidade federadas flexíveis?
As credenciais de identidade federadas flexíveis não alteram a funcionalidade de linha de base fornecida pelas credenciais de identidade federadas. Essas relações de confiança ainda são usadas para indicar qual token do IdP externo deve ser confiável pelo seu aplicativo. Em vez disso, eles estendem a capacidade de credenciais de identidade federadas habilitando cenários que anteriormente exigiam várias credenciais de identidade federadas para, em vez disso, serem gerenciados sob uma única credencial de identidade federada flexível. Alguns exemplos incluem:
- Repositórios do GitHub com vários fluxos de trabalho, cada um em execução em um branch diferente (ou sendo usado entre branches). Anteriormente, era necessária uma credencial de identidade federada exclusiva para cada uma das ramificações em que os fluxos de trabalho podiam ser executados. Com credenciais de identidade federadas flexíveis, esse cenário pode ser gerenciado em uma única credencial de identidade federada.
- Planos de nuvem
run_phasesdo Terraform, dos quais cada um exige uma credencial de identidade federada exclusiva. Com credenciais de identidade federadas flexíveis, isso pode ser gerenciado em uma única credencial de identidade federada flexível. - Fluxos de trabalho reutilizáveis do GitHub Actions, em que curingas podem ser usados na declaração
job_workflow_refpersonalizada do GitHub.
Nota
Atualmente, o suporte a credenciais de identidade federadas flexíveis é fornecido para correspondência com tokens emitidos pelo GitHub, GitLab e Terraform Cloud. Esse suporte existe apenas para credenciais de identidade federadas configuradas em objetos de aplicativo no momento. Você só pode criar e gerenciar credenciais de identidade federadas flexíveis por meio do Microsoft Graph ou do portal do Azure.
Estrutura de linguagem de credencial de identidade federada flexível
Uma expressão de credenciais de identidade federada flexível é composta por três partes, a pesquisa de declaração, o operador e o comparando. Consulte a tabela a seguir para obter um detalhamento de cada parte:
| Nome | Descrição | Exemplo |
|---|---|---|
| Pesquisa de declaração | A pesquisa de declaração deve seguir o padrão de claims['<claimName>'] |
claims['sub'] |
| Operador | A parte do operador deve ser apenas o nome do operador, separado da pesquisa e comparação de declaração por um só espaço | matches |
| Comparando | O comparando contém aquilo com que você pretende comparar a declaração especificada na pesquisa; deve estar entre aspas simples | 'repo:contoso/contoso-repo:ref:refs/heads/*' |
Juntas, uma expressão de credenciais de identidade federadas flexíveis de exemplo se pareceria com o seguinte objeto JSON:
"claims['sub'] matches 'repo:contoso/contoso-repo:ref:refs/heads/*'."
Configurar credenciais de identidade federadas por meio do Microsoft Graph
Para acomodar a funcionalidade de credencial de identidade federada flexível, o recurso federatedIdentityCredentials está sendo estendido com uma nova propriedade claimsMatchingExpression. Além disso, a propriedade subject agora é anulável. As propriedades claimsMatchingExpression e subject são mutuamente exclusivas, portanto, você não pode definir ambas dentro de uma credencial de identidade federada.
audiences: o público-alvo que pode aparecer no token externo. Esse campo é obrigatório e deve ser definido comoapi://AzureADTokenExchangepara a ID do Microsoft Entra. Especifica o que a plataforma de identidade da Microsoft deve aceitar na declaraçãoaudno token de entrada. Esse valor representa a ID do Microsoft Entra em seu provedor de identidade externo e não tem nenhum valor fixo entre provedores de identidade – talvez seja necessário criar um novo registro de aplicativo no IdP para servir como o público-alvo desse token.issuer: a URL do provedor de identidade externo. Deve corresponder à declaração do emissor do token externo que está sendo trocado.subject: o identificador da carga de trabalho de software externo dentro do provedor de identidade externo. Assim como o valor de público-alvo, ele não tem formato fixo, pois cada IdP usa o seu próprio, às vezes um GUID, às vezes um identificador delimitado por dois-pontos, às vezes cadeias de caracteres arbitrárias. O valor aqui deve corresponder à declaraçãosubdentro do token apresentado ao Microsoft Entra ID. Sesubjectfor definido,claimsMatchingExpressiondeverá ser definido como nulo.name: uma cadeia de caracteres exclusiva para identificar a credencial. Essa propriedade é uma chave alternativa e o valor pode ser usado para referenciar a credencial de identidade federada por meio das operações GETe UPSERT. claimsMatchingExpression: um novo tipo complexo que contém duas propriedades,valueelanguageVersion. O valor é usado para definir a expressão elanguageVersioné usado para definir a versão da FFL (linguagem de expressão de identidade federada) flexível que está sendo usada.languageVersionsempre deve ser definido como 1. SeclaimsMatchingExpressionfor definido,subjectdeverá ser definido como nulo.
Funcionalidade de linguagem flexível para expressão de credenciais de identidade federada
Atualmente, as credenciais de identidade federadas flexíveis dão suporte ao uso de alguns operadores entre os emissores habilitados. Aspas simples são interpretadas como caracteres de escape na linguagem flexível de expressão de credenciais de identidade federada.
| Operador | Descrição | Exemplo |
|---|---|---|
matches |
Habilita o uso de correspondência curinga de caractere único (indicado por ?) e de caracteres múltiplos (indicados por *) para a declaração especificada |
• "claims['sub'] matches 'repo:contoso/contoso-repo:ref:refs/heads/*'" • "claims['sub'] matches 'repo:contoso/contoso-repo-*:ref:refs/heads/????'" |
eq |
Usado para combinação explícita com uma declaração especificada | • "claims['sub'] eq 'repo:contoso/contoso-repo:ref:refs/heads/main'" |
and |
Operador booliano para combinar expressões com várias declarações | • "claims['sub'] eq 'repo:contoso/contoso-repo:ref:refs/heads/main' and claims['job_workflow_ref'] matches 'foo-org/bar-repo /.github/workflows/*@refs/heads/main'" |
URLs do emissor, declarações com suporte e operadores por plataforma
Você precisa implementar diferentes URLs, declarações de emissor e operadores, dependendo da plataforma que está usando. Use as abas a seguir para selecionar a plataforma desejada.
URLs de emissores compatíveis: https://token.actions.githubusercontent.com
Declarações e operadores com suporte para cada declaração:
- A declaração
subdá suporte aos operadoreseqematches - A declaração
job_workflow_refdá suporte aos operadoreseqematches
Provedores da CLI do Azure, do Azure PowerShell e do Terraform
O suporte explícito à credencial de identidade federada flexível ainda não existe na CLI do Azure, no Azure PowerShell ou nos provedores terraform. Se você tentar configurar uma credencial de identidade federada flexível com qualquer uma dessas ferramentas, verá um erro. Além disso, se você configurar uma credencial de identidade federada flexível por meio do Microsoft Graph ou do portal do Azure e tentar ler essa credencial de identidade federada flexível com qualquer uma dessas ferramentas, verá um erro.
Você pode usar o método az rest da CLI do Azure para fazer solicitações de API REST para criação e gerenciamento de credenciais de identidade federadas flexíveis.
az rest --method post \
--url https://graph.microsoft.com/beta/applications/{objectId}/federatedIdentityCredentials
--body "{'name': 'FlexFic1', 'issuer': 'https://token.actions.githubusercontent.com', 'audiences': ['api://AzureADTokenExchange'], 'claimsMatchingExpression': {'value': 'claims[\'sub\'] matches \'repo:contoso/contoso-org:ref:refs/heads/*\'', 'languageVersion': 1}}"
Conteúdo relacionado
- Implementar uma credencial de identidade federada flexível
- Configurar uma identidade gerenciada atribuída pelo usuário para confiar em um provedor de identidade externo
- Como criar, excluir, obter ou atualizar credenciais de identidade federadas em um registro de aplicativo.
- Leia a documentação do GitHub Actions para saber mais sobre como configurar o fluxo de trabalho do GitHub Actions para obter um token de acesso do provedor de identidade da Microsoft e acessar recursos protegidos do Microsoft Entra.
- Saiba mais sobre o formato de declaração.