Configurar um aplicativo para confiar em um provedor de identidade externo
Este artigo descreve como gerenciar uma credencial de identidade federada em um aplicativo no Microsoft Entra ID. A credencial de identidade federada cria uma relação de confiança entre um aplicativo e um provedor de identidade externo (IdP).
Em seguida, você pode configurar uma carga de trabalho de software externo para trocar um token do IdP externo por um token de acesso da plataforma de identidade da Microsoft. A carga de trabalho externa pode acessar recursos protegidos do Microsoft Entra sem a necessidade de gerenciar segredos (em cenários suportados). Para saber mais sobre o fluxo de trabalho de troca de tokens, leia sobre federação de identidades de carga de trabalho .
Neste artigo, você aprenderá a criar, listar e excluir credenciais de identidade federada em um aplicativo no Microsoft Entra ID.
Considerações e restrições importantes
Para criar, atualizar ou excluir uma credencial de identidade federada, a conta que executa a ação deve ter o de Administrador de Aplicativos, de Desenvolvedor de Aplicativos, de Administrador de Aplicativos na Nuvem ou a função de Proprietário do Aplicativo. O de permissão microsoft.directory/applications/credentials/update é necessário para atualizar uma credencial de identidade federada.
Um máximo de 20 credenciais de identidade federada pode ser adicionado a um aplicativo ou identidade gerenciada atribuída pelo usuário.
Quando você configura uma credencial de identidade federada, há várias informações importantes a serem fornecidas:
emissor e sujeito são as principais informações necessárias para estabelecer a relação de confiança. A combinação de
issuer
esubject
deve ser exclusiva no aplicativo. Quando a carga de trabalho de software externo solicita que a plataforma de identidade da Microsoft troque o token externo por um token de acesso, os do emissore valores de sujeito da credencial de identidade federada são verificados em relação às declarações dee fornecidas no token externo. Se essa verificação de validação for aprovada, a plataforma de identidade da Microsoft emitirá um token de acesso à carga de trabalho de software externo. do emissor é a URL do provedor de identidade externo e deve corresponder à declaração de
issuer
do token externo que está sendo trocado. Obrigatório. Se a declaração deissuer
tiver espaço em branco à esquerda ou à direita no valor, a troca de token será bloqueada. Este campo tem um limite de caracteres de 600 caracteres.assunto é o identificador da carga de trabalho de software externo e deve corresponder à declaração
sub
(subject
) do token externo que está a ser trocado. assunto não tem formato fixo, pois cada IdP usa seu próprio - às vezes um GUID, às vezes um identificador delimitado por dois pontos, às vezes cadeias de caracteres arbitrárias. Este campo tem um limite de caracteres de 600 caracteres.Importante
Os valores de configuração associados ao assunto e à configuração devem corresponder exatamente à do fluxo de trabalho do GitHub. Caso contrário, a plataforma de identidade da Microsoft examinará o token externo de entrada e rejeitará a troca por um token de acesso. Você não receberá um erro, a troca falha sem erro.
Importante
Se você acidentalmente adicionar informações incorretas da carga de trabalho externa na configuração do assunto , a credencial de identidade federada será criada com êxito, sem erro. O erro não se torna aparente até que a troca de token falhe.
público lista os públicos que podem aparecer no token externo. Necessário. Você deve adicionar um único valor de público, que tem um limite de 600 caracteres. O valor recomendado é "api://AzureADTokenExchange". Indica o que a plataforma de identidade da Microsoft deve aceitar na declaração
aud
no token recebido.nome é o identificador exclusivo da credencial de identidade federada. Necessário. Este campo tem um limite de caracteres de 3 a 120 caracteres e deve ser amigável para URL. Há suporte para caracteres alfanuméricos, traços ou sublinhados; o primeiro caractere deve ser alfanumérico. É imutável uma vez criado.
descrição é a descrição fornecida pelo usuário da credencial de identidade federada. Opcional. A descrição não é validada ou verificada pela ID do Microsoft Entra. Este campo tem um limite de 600 caracteres.
Não há suporte para caracteres coringa em nenhum valor de propriedade de credencial de identidade federada.
Para saber mais sobre regiões com suporte, tempo para propagar atualizações de credenciais federadas, emissores com suporte e muito mais, leia Considerações e restrições importantes para credenciais de identidade federada.
Pré-requisitos
- Crie um registo de aplicação ou uma identidade gerida no Microsoft Entra ID. Conceda à sua aplicação acesso aos recursos do Azure visados pela sua carga de trabalho de software externo.
- Encontre o ID do objeto do aplicativo (não o ID do aplicativo (cliente)), que você precisa nas etapas a seguir. Você pode encontrar a ID do objeto do aplicativo no centro de administração do Microsoft Entra. Aceda à lista de registos de aplicações e selecione o registo da sua aplicação. No Visão Geral, pode-se encontrar o ID do objeto.
- Obtenha as informações do assunto e do emissor para sua IdP externa e carga de trabalho de software, que são necessárias nas etapas a seguir.
Configurar uma credencial de identidade federada em um aplicativo
Ações do GitHub
Para adicionar uma identidade federada para ações do GitHub, siga estas etapas:
Encontre o registo da sua aplicação na experiência de registos de aplicações do centro de administração do Microsoft Entra. Selecione Certificados & segredos no painel de navegação esquerdo, selecione a guia credenciais federadas e selecione Adicionar credenciais.
Na caixa suspensa cenário de credenciais federadas, selecione ações do GitHub implantando recursos do Azure.
Especifique o Organization e Repository para seu fluxo de trabalho de Ações do GitHub.
Para tipo de entidade, selecione de ambiente , de ramificação , Pull requestou Tag e especifique o valor. Os valores devem corresponder exatamente à configuração no fluxo de trabalho GitHub. A correspondência de padrões não é suportada para ramificações e tags. Especifique um ambiente caso o fluxo de trabalho on-push seja executado em várias ramificações ou tags. Para mais informações, leia os exemplos.
Adicione um Nome para a credencial federada.
Os campos Emissor, Audiênciase Identificador de assunto são preenchidos automaticamente com base nos valores inseridos.
Selecione Adicionar para configurar a credencial federada.
Use os seguintes valores do registro do aplicativo Microsoft Entra para seu fluxo de trabalho do GitHub:
AZURE_CLIENT_ID
o ID do Aplicativo (cliente)AZURE_TENANT_ID
a ID do Directory (locatário)A captura de tela a seguir demonstra como copiar a ID do aplicativo e a ID do locatário.
AZURE_SUBSCRIPTION_ID
o seu ID de subscrição. Para obter a ID da assinatura, abra Assinaturas no portal Azure e encontre sua assinatura. Em seguida, copie o ID de Subscrição .
Exemplos de tipo de entidade
Exemplo de ramificação
Para um fluxo de trabalho acionado por um evento de solicitação push ou pull na ramificação principal:
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
Especifique um tipo de Entidade de, um tipo de ramificação de, e um nome de ramificação do GitHub de como "main".
Exemplo de ambiente
Para trabalhos vinculados a um ambiente chamado "produção":
on:
push:
branches:
- main
jobs:
deployment:
runs-on: ubuntu-latest
environment: production
steps:
- name: deploy
# ...deployment-specific steps
Especifique um de tipo de entidade
Exemplo de tag
Por exemplo, para um fluxo de trabalho acionado por um push para a tag chamada "v2":
on:
push:
# Sequence of patterns matched against refs/heads
branches:
- main
- 'mona/octocat'
- 'releases/**'
# Sequence of patterns matched against refs/tags
tags:
- v2
- v1.*
Especifique um tipo de Entidade de Tag e um nome de tag GitHub de "v2".
Exemplo de solicitação pull
Para um fluxo de trabalho acionado por um evento de solicitação pull, especifique um do tipo Entity
Kubernetes
Encontre o registo da sua aplicação na experiência de registos de aplicações do centro de administração do Microsoft Entra. Selecione Certificados & segredos no painel de navegação esquerdo, selecione a guia credenciais federadas e selecione Adicionar credenciais.
Selecione o cenário Kubernetes acessando recursos do Azure no menu suspenso.
Preencha oURL do emissor do
URL do emissor do cluster é o de URL do emissor OIDCpara o cluster gerenciado ou o URL do emissor OIDC para um cluster autogerenciado. - nome da conta de serviço é o nome da conta de serviço do Kubernetes, que fornece uma identidade para processos executados num Pod.
- Namespace é o namespace da conta de serviço.
- Nome é o nome da credencial federada, que não pode ser alterada posteriormente.
Outros provedores de identidade
Encontre o registo da sua aplicação na experiência de registos de aplicações do centro de administração do Microsoft Entra. Selecione Certificados & segredos no painel de navegação esquerdo, selecione a guia credenciais federadas e selecione Adicionar credenciais.
Selecione o cenário Outro emissor no menu pendente.
Especifique os seguintes campos (usando uma carga de trabalho de software em execução no Google Cloud como exemplo):
- Nome é o nome da credencial federada, que não pode ser alterada posteriormente.
-
Identificador de assunto: deve corresponder à declaração de
sub
no token emitido pelo provedor de identidade externo. Neste exemplo usando o Google Cloud, assunto é o ID exclusivo da conta de serviço que você planeja usar. -
Emissor: deve corresponder à declaração
iss
no token emitido pelo fornecedor de identidade externo. Uma URL que está em conformidade com a especificação OIDC Discovery. O Microsoft Entra ID usa essa URL do emissor para buscar as chaves necessárias para validar o token. Para o Google Cloud, o emissor éhttps://accounts.google.com
.
Listar credenciais de identidade federada em um aplicativo
Encontre o registo da sua aplicação na experiência de registos de aplicações do centro de administração do Microsoft Entra. Selecione
Excluir uma credencial de identidade federada de um aplicativo
Encontre o registo da sua aplicação na interface de registos de aplicações do centro de administração do Microsoft Entra. Selecione Certificados & segredos no painel de navegação esquerdo e selecione o separador Credenciais federadas. As credenciais federadas configuradas na sua aplicação são listadas.
Para excluir uma credencial de identidade federada, selecione o ícone Excluir da credencial.
Configurar uma credencial de identidade federada flexível (pré-visualização)
- Navegue até Microsoft Entra ID e selecione o aplicativo onde deseja configurar a credencial de identidade federada.
- No painel de navegação à esquerda, selecione Certificados & Segredos.
- Na guia credenciais federadas, selecione + Adicionar credencial.
- Na janela Adicionar uma credencial exibida, no menu suspenso ao lado de cenário de credenciais federadas, selecione Outro emissor.
- No campo Valor, insira a expressão de correspondência de pedidos que pretende utilizar.
Pré-requisitos
- Se você ainda não tiver uma conta do Azure, inscreva-se para obter uma conta gratuita antes de continuar.
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se você estiver executando no Windows ou macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se você estiver usando uma instalação local, entre na CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para obter outras opções de início de sessão, consulte Iniciar sessão utilizando a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre extensões, consulte Usar extensões com a CLI do Azure.
Execute az version para descobrir a versão e as bibliotecas dependentes que estão instaladas. Para atualizar para a versão mais recente, execute az upgrade.
- Criar um registo de aplicação na Microsoft Entra ID. Conceda à sua aplicação acesso aos recursos do Azure visados pela carga de trabalho do seu software externo.
- Encontre o ID do objeto, o ID do aplicativo (cliente) ou o URI do identificador do aplicativo, que você precisa nas etapas a seguir. Pode encontrar estes valores no centro de administração do Microsoft Entra. Aceda à lista de aplicações registadas e selecione o registo da sua aplicação. Em
Visão Geral - Essentials , obtenha ode ID de Objeto, ID de Aplicativo (cliente) ouvalor de de URI de ID de Aplicativo, que você precisa nas etapas a seguir. - Obtenha as informações do assunto e do emissor para o seu IdP externo e a carga de trabalho de software, que você precisa nos passos seguintes.
Configurar uma credencial de identidade federada em um aplicativo
Execute o comando az ad app federated-credential create para criar uma nova credencial de identidade federada em seu aplicativo.
O parâmetro id
especifica o URI do identificador, a ID do aplicativo ou a ID do objeto do aplicativo. O parâmetro parameters
especifica os parâmetros, no formato JSON, para criar a credencial de identidade federada.
Exemplo de ações do GitHub
O nome especifica o nome da sua credencial de identidade federada.
O emissor identifica o caminho para o provedor OIDC do GitHub: https://token.actions.githubusercontent.com/
. Este emissor torna-se confiável para a sua aplicação do Azure.
O assunto identifica a organização, o repositório e o ambiente do GitHub para seu fluxo de trabalho de Ações do GitHub. Quando o fluxo de trabalho de Ações do GitHub solicita que a plataforma de identidade da Microsoft troque um token do GitHub por um token de acesso, os valores na credencial de identidade federada são verificados em relação ao token do GitHub fornecido. Antes de o Azure conceder um token de acesso, a solicitação deve corresponder às condições definidas aqui.
- Para trabalhos vinculados a um ambiente:
repo:< Organization/Repository >:environment:< Name >
- Para trabalhos não vinculados a um ambiente, inclua o caminho de referência para a ramificação/tag com base no caminho de referência usado para acionar o fluxo de trabalho:
repo:< Organization/Repository >:ref:< ref path>
. Por exemplo,repo:n-username/ node_express:ref:refs/heads/my-branch
ourepo:n-username/ node_express:ref:refs/tags/my-tag
. - Para fluxos de trabalho acionados por um evento pull request:
repo:< Organization/Repository >:pull-request
.
az ad app federated-credential create --id 00001111-aaaa-2222-bbbb-3333cccc4444 --parameters credential.json
("credential.json" contains the following content)
{
"name": "Testing",
"issuer": "https://token.actions.githubusercontent.com",
"subject": "repo:octo-org/octo-repo:environment:Production",
"description": "Testing",
"audiences": [
"api://AzureADTokenExchange"
]
}
Exemplo do Kubernetes
A URL do emissor ,, é a URL do emissor da conta de serviço (URL do emissor OIDC para o cluster gerido ou URL do emissor OIDC para um cluster autogerido).
O assunto é o nome do assunto nos tokens emitidos para a conta de serviço. O Kubernetes usa o seguinte formato para nomes de assunto: system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>
.
O nome é o nome da credencial federada, que não pode ser alterada posteriormente.
O audiências lista as audiências que podem aparecer no token externo. Este campo é obrigatório. O valor recomendado é api://AzureADTokenExchange
.
az ad app federated-credential create --id 00001111-aaaa-2222-bbbb-3333cccc4444 --parameters credential.json
("credential.json" contains the following content)
{
"name": "Kubernetes-federated-credential",
"issuer": "https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/",
"subject": "system:serviceaccount:erp8asle:pod-identity-sa",
"description": "Kubernetes service account federated credential",
"audiences": [
"api://AzureADTokenExchange"
]
}
Exemplo de outros provedores de identidade
Você pode configurar uma credencial de identidade federada em um aplicativo e criar uma relação de confiança com outros provedores de identidade externos. O exemplo a seguir usa uma carga de trabalho de software em execução no Google Cloud como exemplo:
-
name
é o nome da credencial federada, que não pode ser alterada posteriormente. -
id
: o ID do objeto, o ID do aplicativo (cliente) ou o URI do identificador do aplicativo. -
subject
: deve corresponder à declaração desub
no token emitido pelo provedor de identidade externo. Neste exemplo usando o Google Cloud, assunto é o ID exclusivo da conta de serviço que você planeja usar. -
issuer
: deve corresponder à declaraçãoiss
no token emitido pelo provedor de identidade externo. Uma URL que está em conformidade com a especificação OIDC Discovery. O Microsoft Entra ID usa essa URL do emissor para buscar as chaves necessárias para validar o token. Para o Google Cloud, o emissor éhttps://accounts.google.com
. -
audiences
: lista os públicos que podem aparecer no token externo. Este campo é obrigatório. O valor recomendado é "api://AzureADTokenExchange".
az ad app federated-credential create --id 00001111-aaaa-2222-bbbb-3333cccc4444 --parameters credential.json
("credential.json" contains the following content)
{
"name": "GcpFederation",
"issuer": "https://accounts.google.com",
"subject": "112633961854638529490",
"description": "Test GCP federation",
"audiences": [
"api://AzureADTokenExchange"
]
}
Listar credenciais de identidade federada em um aplicativo
Execute o comando az ad app federated-credential list para listar as credenciais de identidade federada em seu aplicativo.
O parâmetro id
especifica o URI do identificador, a ID do aplicativo ou a ID do objeto do aplicativo.
az ad app federated-credential list --id 00001111-aaaa-2222-bbbb-3333cccc4444
Obter uma credencial de identidade federada em um aplicativo
Execute o comando az ad app federated-credential show para obter uma credencial de identidade federada na sua aplicação.
O parâmetro id
especifica o URI do identificador, a ID do aplicativo ou a ID do objeto do aplicativo.
O federated-credential-id
especifica a ID ou o nome da credencial de identidade federada.
az ad app federated-credential show --id 00001111-aaaa-2222-bbbb-3333cccc4444 --federated-credential-id c79f8feb-a9db-4090-85f9-90d820caa0eb
Excluir uma credencial de identidade federada de um aplicativo
Execute a instrução az ad app federated-credential delete para remover uma credencial de identidade federada da sua aplicação.
O parâmetro id
especifica o URI do identificador, a ID do aplicativo ou a ID do objeto do aplicativo.
O federated-credential-id
especifica a ID ou o nome da credencial de identidade federada.
az ad app federated-credential delete --id 00001111-aaaa-2222-bbbb-3333cccc4444 --federated-credential-id c79f8feb-a9db-4090-85f9-90d820caa0eb
Pré-requisitos
- Para executar os scripts de exemplo, você tem duas opções:
- Use Azure Cloud Shell, que você pode abrir usando o botão Try It no canto superior direito dos blocos de código.
- Execute scripts localmente com o Azure PowerShell, conforme descrito na próxima seção.
- Criar um de registro de aplicativo na ID do Microsoft Entra. Conceda à sua aplicação acesso aos recursos do Azure visados pela sua carga de trabalho de software externo.
- Encontre o ID do objeto do aplicativo (não o ID do aplicativo (cliente)), que você precisa nas etapas a seguir. Você pode encontrar a ID do objeto do aplicativo no centro de administração do Microsoft Entra. Aceda à lista de aplicações registadas e selecione o registo da sua aplicação. No Visão geral ->Essentials, localize o ID do objeto.
- Obtenha as informações do assunto e do emissor para o seu IdP externo e a carga de trabalho de software, que necessita nas etapas a seguir.
Configurar o Azure PowerShell localmente
Para usar o Azure PowerShell localmente para este artigo em vez de usar o Cloud Shell:
Instale o a versão mais recente do Azure PowerShell se ainda não o fez.
Entre no Azure.
Connect-AzAccount
Instale a versão mais recente do PowerShellGet.
Install-Module -Name PowerShellGet -AllowPrerelease
Talvez seja necessário
Exit
da sessão atual do PowerShell depois de executar esse comando para a próxima etapa.Instale a versão de pré-lançamento do módulo
Az.Resources
para executar as operações de credenciais de identidade federada neste artigo.Install-Module -Name Az.Resources -AllowPrerelease
Configurar uma credencial de identidade federada em um aplicativo
Execute o cmdlet New-AzADAppFederatedCredential para criar uma nova credencial de identidade federada em um aplicativo.
Exemplo de ações do GitHub
- ApplicationObjectId: a ID do objeto do aplicativo (não a ID do aplicativo (cliente)) que você registrou anteriormente na ID do Microsoft Entra.
- O Emissor identifica o GitHub como o emissor externo de token.
-
Assunto identifica a organização, o repositório e o ambiente do GitHub para seu fluxo de trabalho de Ações do GitHub. Quando o fluxo de trabalho de Ações do GitHub solicita que a plataforma de identidade da Microsoft troque um token do GitHub por um token de acesso, os valores na credencial de identidade federada são verificados em relação ao token do GitHub fornecido.
- Para trabalhos vinculados a um ambiente:
repo:< Organization/Repository >:environment:< Name >
- Para trabalhos que não estão ligados a um ambiente, inclua o caminho de referência para a ramificação/tag com base no caminho de referência usado para acionar o workflow:
repo:< Organization/Repository >:ref:< ref path>
. Por exemplo,repo:n-username/ node_express:ref:refs/heads/my-branch
ourepo:n-username/ node_express:ref:refs/tags/my-tag
. - Para fluxos de trabalho acionados por um evento pull request:
repo:< Organization/Repository >:pull-request
.
- Para trabalhos vinculados a um ambiente:
- Nome é o nome da credencial federada, que não pode ser alterada posteriormente.
-
Lista de Públicos lista os públicos que podem aparecer no token externo. Este campo é obrigatório. O valor recomendado é
api://AzureADTokenExchange
.
New-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -Audience api://AzureADTokenExchange -Issuer 'https://token.actions.githubusercontent.com/' -Name 'GitHub-Actions-Test' -Subject 'repo:octo-org/octo-repo:environment:Production'
Exemplo do Kubernetes
- ApplicationObjectId: a ID do objeto do aplicativo (não a ID do aplicativo (cliente)) que você registrou anteriormente na ID do Microsoft Entra.
- do Emissor é a URL do emissor da conta de serviço (a URL do emissor OIDC para o cluster gerenciado ou a URL do Emissor OIDC para um cluster autogerenciado).
-
Assunto é o nome do assunto nos tokens emitidos para a conta de serviço. O Kubernetes usa o seguinte formato para nomes de assunto:
system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>
. - Nome é o nome da credencial federada, que não pode ser alterada posteriormente.
-
Audiência lista as audiências que podem aparecer na reivindicação de
aud
do token externo.
New-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -Audience api://AzureADTokenExchange -Issuer 'https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/' -Name 'Kubernetes-federated-credential' -Subject 'system:serviceaccount:erp8asle:pod-identity-sa'
Exemplo de outros provedores de identidade
Especifique os seguintes parâmetros (usando uma carga de trabalho de software em execução no Google Cloud como exemplo):
- ObjectID: a ID do objeto do aplicativo (não a ID do aplicativo (cliente)) que você registrou anteriormente na ID do Microsoft Entra.
- Nome é o nome da credencial federada, que não pode ser alterada posteriormente.
-
Assunto: deve corresponder à afirmação
sub
no token emitido pelo provedor de identidade externo. Neste exemplo usando o Google Cloud, assunto é o ID exclusivo da conta de serviço que você planeja usar. -
Emissor: deve corresponder à declaração de
iss
no token emitido pelo provedor de identidade externo. Uma URL que está em conformidade com a especificação OIDC Discovery. O Microsoft Entra ID usa essa URL do emissor para buscar as chaves necessárias para validar o token. Para o Google Cloud, o emissor éhttps://accounts.google.com
. -
Audiências: deve corresponder à declaração de
aud
no token externo. Por motivos de segurança, você deve escolher um valor que seja exclusivo para tokens destinados ao Microsoft Entra ID. O valor recomendado é "api://AzureADTokenExchange".
New-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -Audience api://AzureADTokenExchange -Issuer 'https://accounts.google.com' -Name 'GcpFederation' -Subject '112633961854638529490'
Listar credenciais de identidade federada em um aplicativo
Execute o cmdlet Get-AzADAppFederatedCredential para listar as credenciais de identidade federada de um aplicativo.
Get-AzADApplication -ObjectId $app | Get-AzADAppFederatedCredential
Obter uma credencial de identidade federada em um aplicativo
Execute o cmdlet Get-AzADAppFederatedCredential para obter a credencial de identidade federada por ID de um aplicativo.
Get-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -FederatedCredentialId $credentialId
Excluir uma credencial de identidade federada de um aplicativo
Execute o cmdlet Remove-AzADAppFederatedCredential para excluir uma credencial de identidade federada de um aplicativo.
Remove-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -FederatedCredentialId $credentialId
Pré-requisitos
Criar um de registro de aplicativo na ID do Microsoft Entra. Conceda à sua aplicação acesso aos recursos do Azure, alvo da carga de trabalho do seu software externo.
Encontre o ID do objeto do aplicativo (não o ID do aplicativo (cliente)), que você precisa nas etapas a seguir. Você pode encontrar a ID do objeto do aplicativo no centro de administração do Microsoft Entra. Aceda à lista de aplicações registadas e selecione o registo da sua aplicação. No Visão geral ->Essentials, localize o ID do objeto.
Obtenha as informações do assunto e do emissor para o seu IdP externo e a carga de trabalho de software, que você precisa nos passos seguintes.
O ponto de extremidade do Microsoft Graph (https://graph.microsoft.com
) expõe APIs REST para criar, atualizar, excluir federatedIdentityCredentials em aplicativos. Lance o Azure Cloud Shell e inicie sessão no seu locatário para executar comandos do Microsoft Graph a partir da AZ CLI.
Configurar uma credencial de identidade federada em um aplicativo
Ações do GitHub
Execute o seguinte método para criar uma nova credencial de identidade federada no seu aplicativo (especificado pela ID do objeto do aplicativo). O issuer
identifica o GitHub como o emissor de token externo.
subject
identifica a organização, o repositório e o ambiente do GitHub para seu fluxo de trabalho de Ações do GitHub. Quando o fluxo de trabalho de Ações do GitHub solicita que a plataforma de identidade da Microsoft troque um token do GitHub por um token de acesso, os valores na credencial de identidade federada são verificados em relação ao token do GitHub fornecido.
az rest --method POST --uri 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials' --body '{"name":"Testing","issuer":"https://token.actions.githubusercontent.com","subject":"repo:octo-org/octo-repo:environment:Production","description":"Testing","audiences":["api://AzureADTokenExchange"]}'
E você recebe a resposta:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"issuer": "https://token.actions.githubusercontent.com",
"name": "Testing",
"subject": "repo:octo-org/octo-repo:environment:Production"
}
No trecho, os parâmetros são os seguintes:
-
name
: O nome do seu aplicativo do Azure. -
issuer
: O caminho para o provedor OIDC do GitHub:https://token.actions.githubusercontent.com
. Este emissor torna-se confiável para a sua aplicação Azure. -
subject
: Antes que o Azure conceda um token de acesso, a solicitação deve corresponder às condições definidas aqui.- Para trabalhos vinculados a um ambiente:
repo:< Organization/Repository >:environment:< Name >
- Para trabalhos não vinculados a um ambiente, inclua o caminho de referência para a ramificação/tag com base no caminho de referência usado para acionar o fluxo de trabalho:
repo:< Organization/Repository >:ref:< ref path>
. Por exemplo,repo:n-username/ node_express:ref:refs/heads/my-branch
ourepo:n-username/ node_express:ref:refs/tags/my-tag
. - Para fluxos de trabalho acionados por um evento pull request:
repo:< Organization/Repository >:pull-request
.
- Para trabalhos vinculados a um ambiente:
-
audiences
lista os destinatários que podem aparecer no token externo. Este campo é obrigatório. O valor recomendado é "api://AzureADTokenExchange".
Exemplo do Kubernetes
Execute o método a seguir para configurar uma credencial de identidade federada em um aplicativo e criar uma relação de confiança com uma conta de serviço do Kubernetes. Especifique os seguintes parâmetros:
-
issuer
é a URL do emissor da conta de serviço (a URL do emissor OIDC para o cluster gerenciado ou a URL do Emissor OIDC para um cluster autogerenciado). -
subject
é o nome do assunto nos tokens emitidos para a conta de serviço. O Kubernetes usa o seguinte formato para nomes de assunto:system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>
. -
name
é o nome da credencial federada, que não pode ser alterada posteriormente. -
audiences
lista os públicos que podem aparecer no token externo. Este campo é obrigatório. O valor recomendado é "api://AzureADTokenExchange".
az rest --method POST --uri 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials' --body '{"name":"Kubernetes-federated-credential","issuer":"https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/","subject":"system:serviceaccount:erp8asle:pod-identity-sa","description":"Kubernetes service account federated credential","audiences":["api://AzureADTokenExchange"]}'
E você recebe a resposta:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Kubernetes service account federated credential",
"id": "51ecf9c3-35fc-4519-a28a-8c27c6178bca",
"issuer": "https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/",
"name": "Kubernetes-federated-credential",
"subject": "system:serviceaccount:erp8asle:pod-identity-sa"
}
Exemplo de outros provedores de identidade
Execute o método a seguir para configurar uma credencial de identidade federada em um aplicativo e criar uma relação de confiança com um provedor de identidade externo. Especifique os seguintes parâmetros (usando uma carga de trabalho de software em execução no Google Cloud como exemplo):
- nome é o nome da credencial federada, que não pode ser alterada posteriormente.
- ObjectID: a ID do objeto do aplicativo (não a ID do aplicativo (cliente)) que você registrou anteriormente na ID do Microsoft Entra.
-
assunto: deve corresponder à declaração
sub
no token emitido pelo provedor de identidade externo. Neste exemplo usando o Google Cloud, assunto é o ID exclusivo da conta de serviço que você planeja usar. -
emissor do: deve corresponder ao atributo
iss
no token emitido pelo provedor de identidade externo. Uma URL que está em conformidade com a especificação OIDC Discovery. O Microsoft Entra ID usa essa URL do emissor para buscar as chaves necessárias para validar o token. No Google Cloud, o emissor é "https://accounts.google.com". - audiências lista as audiências que podem aparecer no token externo. Este campo é obrigatório. O valor recomendado é "api://AzureADTokenExchange".
az rest --method POST --uri 'https://graph.microsoft.com/applications/<ObjectID>/federatedIdentityCredentials' --body '{"name":"GcpFederation","issuer":"https://accounts.google.com","subject":"112633961854638529490","description":"Testing","audiences":["api://AzureADTokenExchange"]}'
E você recebe a resposta:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "51ecf9c3-35fc-4519-a28a-8c27c6178bca",
"issuer": "https://accounts.google.com"",
"name": "GcpFederation",
"subject": "112633961854638529490"
}
Listar credenciais de identidade federada em um aplicativo
Execute o seguinte método para listar as credenciais de identidade federada para um aplicativo (especificado pela ID do objeto do aplicativo):
az rest -m GET -u 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials'
E você recebe uma resposta semelhante a:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials",
"value": [
{
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"issuer": "https://token.actions.githubusercontent.com/",
"name": "Testing",
"subject": "repo:octo-org/octo-repo:environment:Production"
}
]
}
Obter uma credencial de identidade federada em um aplicativo
Execute o seguinte método para obter uma credencial de identidade federada para um aplicativo (especificado pela ID do objeto do aplicativo):
az rest -m GET -u 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444//federatedIdentityCredentials/00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
E você recebe uma resposta semelhante a:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials",
"value": {
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"@odata.id": "https://graph.microsoft.com/v2/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/directoryObjects/$/Microsoft.DirectoryServices.Application('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials('00001111-aaaa-2222-bbbb-3333cccc4444')/00001111-aaaa-2222-bbbb-3333cccc4444",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"issuer": "https://token.actions.githubusercontent.com/",
"name": "Testing",
"subject": "repo:octo-org/octo-repo:environment:Production"
}
}
Excluir uma credencial de identidade federada de um aplicativo
Execute o método seguinte para excluir uma credencial de identidade federada de um aplicativo (especificado pela ID do objeto do aplicativo):
az rest -m DELETE -u 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials/00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
Ver também
- Para saber como usar a federação de identidades de carga de trabalho para Kubernetes, consulte ID de carga de trabalho do Microsoft Entra para Kubernetes projeto de código aberto.
- Para saber como usar a federação de identidades de carga de trabalho para Ações do GitHub, consulte Configurar um fluxo de trabalho de Ações do GitHub para obter um token de acesso.
- Leia o de documentação do
Ações do GitHub para saber mais sobre como configurar seu fluxo de trabalho de Ações do GitHub para obter um token de acesso do provedor de identidade da Microsoft e acessar os recursos do Azure. - Para obter mais informações, leia sobre como o Microsoft Entra ID usa o credenciais de cliente OAuth 2.0 concedem e uma asserção de cliente emitida por outro IdP para obter um token.
- Para obter informações sobre o formato necessário de JWTs criados por provedores de identidade externos, leia sobre o formato de asserção .