Solucionar problemas de uma conexão de serviço de identidade de fluxo de trabalho do Azure Resource Manager
Obtenha ajuda para depurar problemas comuns com conexões de serviço de identidade de workload. Você também aprenderá a criar uma conexão de serviço manualmente, se necessário.
Lista de verificação de solução de problemas
Use a checklist a seguir para solucionar problemas com conexões de serviço de identidade de workload:
- Revise as tarefas de pipeline para garantir que elas tenham suporte para identidade do workload.
- Verifique se a federação de identidade de workload está ativa para o locatário.
- Verifique a precisão da URL do emissor e assunto da federação.
As seções abaixo descrevem os problemas e como resolvê-los.
Examinar tarefas do pipeline
Nem todas as tarefas de pipelines dão suporte à identidade de fluxo de trabalho. Especificamente, somente as propriedades de conexão de serviço do Gerenciador de Recursos do Azure em tarefas usam a federação de identidade de carga de trabalho. A tabela abaixo lista o suporte à federação de identidades de carga de trabalho para tarefas incluídas no Azure DevOps. Para tarefas instaladas a partir do Marketplace, entre em contato com o editor da extensão para obter suporte.
Tarefa | Suporte à federação de identidade de carga de trabalho |
---|---|
AutomatedAnalysis@0 | Y |
AzureAppServiceManage@0 | Y |
AzureAppServiceSettings@1 | Y |
AzureCLI@1 | Y |
AzureCLI@2 | Y |
AzureCloudPowerShellDeployment@1 | Use AzureCloudPowerShellDeployment@2 |
AzureCloudPowerShellDeployment@2 | Y |
AzureContainerApps@0 | Y |
AzureContainerApps@1 | Y |
AzureFileCopy@1 | Use AzureFileCopy@6 |
AzureFileCopy@2 | Use AzureFileCopy@6 |
AzureFileCopy@3 | Use AzureFileCopy@6 |
AzureFileCopy@4 | Use AzureFileCopy@6 |
AzureFileCopy@5 | Use AzureFileCopy@6 |
AzureFileCopy@6 | Y |
AzureFunctionApp@1 | Y |
AzureFunctionApp@2 | Y |
AzureFunctionAppContainer@1 | Y |
AzureFunctionOnKubernetes@0 | Use AzureFunctionOnKubernetes@1 |
AzureFunctionOnKubernetes@1 | Y |
AzureIoTEdge@2 | Y |
AzureKeyVault@1 | Y |
AzureKeyVault@2 | Y |
AzureMonitor@0 | Use AzureMonitor@1 |
AzureMonitor@1 | Y |
AzureMysqlDeployment@1 | Y |
AzureNLBManagement@1 | N |
AzurePolicyCheckGate@0 | Y |
AzurePowerShell@2 | Y |
AzurePowerShell@3 | Y |
AzurePowerShell@4 | Y |
AzurePowerShell@5 | Y |
AzureResourceGroupDeployment@2 | Y |
AzureResourceManagerTemplateDeployment@3 | Y |
AzureRmWebAppDeployment@3 | Y |
AzureRmWebAppDeployment@4 | Y |
AzureSpringCloud@0 | Y |
AzureVmssDeployment@0 | Y |
AzureWebApp@1 | Y |
AzureWebAppContainer@1 | Y |
ContainerBuild@0 | Y |
ContainerStructureTest@0 | Y |
Docker@0 | Y |
Docker@1 | Conexão de serviço do Azure: Y Conexão de serviço de registro do Docker: N |
Docker@2 | Y |
DockerCompose@0 | Y |
DockerCompose@1 | Y |
DotNetCoreCLI@2 | Y |
HelmDeploy@0 | Conexão de serviço do Azure: Y |
HelmDeploy@1 | Conexão de serviço do Azure: Y |
InvokeRESTAPI@1 | Y |
JavaToolInstaller@0 | Y |
JenkinsDownloadArtifacts@1 | Y |
Kubernetes@0 | Use Kubernetes@1 |
Kubernetes@1 | Y |
KubernetesManifest@0 | Use KubernetesManifest@1 |
KubernetesManifest@1 | Y |
Maven@4 | Y |
Notation@0 | Y |
PackerBuild@0 | Use PackerBuild@1 |
PackerBuild@1 | Y |
PublishToAzureServiceBus@1 | Use PublishToAzureServiceBus@2 com a conexão de serviço do Azure |
PublishToAzureServiceBus@2 | Y |
ServiceFabricComposeDeploy@0 | N |
ServiceFabricDeploy@1 | N |
SqlAzureDacpacDeployment@1 | Y |
VSTest@3 | Y |
Verificar se a federação de identidade de fluxo de trabalho está ativa
Se você vir as mensagens de erro AADSTS700223 ou AADSTS700238, a federação de identidade de workload foi desabilitada no locatário do Microsoft Entra.
Verifique se não há políticas do Microsoft Entra em vigor que bloqueiem credenciais federadas.
Verificar a URL do emissor quanto à precisão
Se surgir uma mensagem de que nenhum registro de identidade federada correspondente foi encontrado, a URL do emissor ou o assunto da federação não corresponderão. A URL correta do emissor começa com https://vstoken.dev.azure.com
.
Você pode corrigir a URL do emissor editando e salvando a conexão de serviço para atualizar a URL do emissor. Se o Azure DevOps não tiver criado a identidade, será preciso atualizar a URL do emissor manualmente. Para identidades do Azure, a URL do emissor é atualizada automaticamente.
Problemas comuns
As seções a seguir identificam problemas comuns e descrevem causas e resoluções.
Não tenho permissão para criar uma entidade de serviço no locatário do Microsoft Entra
Você não pode usar a ferramenta de configuração de conexão de serviço Azure DevOps se não tiver as permissões corretas. Seu nível de permissões é insuficiente para usar a ferramenta se você não tiver permissões para criar entidades de serviço ou se estiver usando um locatário do Microsoft Entra que não seja seu usuário do Azure DevOps.
Você precisa ter permissões na ID do Microsoft Entra para criar registros de aplicativo ou ter uma função apropriada (exemplo, Desenvolvedor de Aplicativos).
Você tem duas opções para resolver esse problema:
- Solução 1: Configurar manualmente a identidade de workload usando a autenticação de identidade gerenciada
- Solução 2: configure manualmente a identidade da carga de trabalho usando a autenticação de registro de aplicativo
Mensagens de erro
A tabela seguinte identifica mensagens de erro comuns e problemas que podem gerá-las:
Mensagem | Possível problema |
---|---|
não é possível solicitar token: Obter ?audience=api://AzureADTokenExchange: unsupported protocol scheme |
A tarefa não tem suporte à federação de identidade de workload. |
Identidade não encontrada | A tarefa não tem suporte à federação de identidade de workload. |
Não foi possível buscar o token de acesso para o Azure | A tarefa não tem suporte à federação de identidade de workload. |
AADSTS700016: o aplicativo com o identificador "****" não foi encontrado | A identidade usada para a conexão de serviço não existe mais, pode ter sido removida da conexão de serviço ou está configurada incorretamente. Se você configurar a conexão de serviço manualmente com uma identidade pré-criada, verifique se o appID /clientId está configurado corretamente. |
AADSTS7000215: segredo do cliente inválido fornecido. | Você está usando uma conexão de serviço que tem um segredo expirado. Converta a conexão de serviço em federação de identidade de workload e substitua o segredo expirado por credenciais federadas. |
AADSTS700024: a declaração do cliente não está dentro do intervalo de tempo válido | Se o erro ocorrer após aproximadamente uma hora, use uma conexão de serviço com uma Federação de identidade de carga de trabalho e uma Identidade Gerenciada. Os tokens de Identidade Gerenciada têm uma vida útil de cerca de 24 horas.. Se o erro ocorrer antes de 1 hora, mas após 10 minutos, mova os comandos que (implicitamente) solicitam um token de acesso para, por exemplo, acessar o armazenamento do Azure para o início do seu script. O token de acesso será armazenado em cache para comandos subsequentes. |
AADSTS70021: nenhum registro de identidade federado correspondente encontrado para a declaração apresentada. Emissor de declaração: https://app.vstoken.visualstudio.com . |
Nenhuma credencial federada foi criada ou a URL do emissor não está correta. A URL correta do emissor tem este formato: https://vstoken.dev.azure.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX . Você pode corrigir a URL do emissor editando e salvando uma conexão de serviço. Se o Azure DevOps não tiver criado sua identidade, você deverá atualizar o emissor manualmente. Você pode encontrar o emissor correto na caixa de diálogo de edição da conexão de serviço ou na resposta (em parâmetros de autorização) se usar a API REST. |
AADSTS70021: nenhum registro de identidade federado correspondente encontrado para a declaração apresentada. Emissor de declaração: https://vstoken.dev.azure.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX . Assunto da declaração: sc://<org>/<project>/<service-connection>. |
A URL do emissor ou o assunto da federação não são correspondentes. A organização ou projeto do Azure DevOps foi renomeado ou uma conexão de serviço criada manualmente foi renomeada sem atualizar o assunto da federação na identidade. |
AADSTS700211: nenhum registro de identidade federada correspondente foi encontrado para o emissor da declaração apresentada | Nenhuma credencial federada foi criada ou a URL do emissor não é correta. |
AADSTS700213: não foi encontrado nenhum registo de identidade federada correspondente para o sujeito da asserção apresentada | Não foi criada nenhuma credencial federada ou o assunto não está correto. |
AADSTS700223 | A federação de identidade de carga de trabalho foi limitada ou desabilitada no locatário do Microsoft Entra. Nesse caso, é possível usar uma identidade gerenciada para a federação. Para obter mais informações, consulte Identidade da workload com identidade gerenciada. |
AADSTS70025: O aplicativo cliente não tem credenciais de identidade federada configuradas | Verifique se as credenciais federadas estão configuradas no registro do aplicativo ou na Identidade gerenciada. |
O Microsoft Entra rejeitou o token emitido pelo Azure DevOps com o código de erro AADSTS700238 | A federação de identidade da carga de trabalho foi limitada no locatário do Microsoft Entra. O emissor da sua organização (https://vstoken.dev.azure.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX ) não tem permissão para usar a federação de identidades da workload. Peça ao administrador de locatário ou à equipe de administração do Microsoft Entra para permitir a federação de identidades de workload para sua organização de DevOps do Azure. |
AADSTS900382: não há suporte para cliente confidencial na solicitação entre nuvens | Algumas nuvens soberanas bloqueiam a federação de identidades da carga de trabalho. |
Falha ao obter o JSON Web Token (JWT) usando a ID do cliente da entidade de serviço | Suas credenciais de identidade de federação está configurada incorretamente ou o locatário do Microsoft Entra bloqueia o OpenID Connect (OIDC). |
Falha no script com o erro: UnrecognizedArgumentError: argumentos não reconhecidos: --federated-token | Você está usando uma tarefa AzureCLI em um agente que tem uma versão anterior da CLI do Azure instalada. A federação de identidade de carga de trabalho requer a CLI do Azure 2.30 ou posterior. |
Falha ao criar um aplicativo no Microsoft Entra ID. Erro: privilégios insuficientes para concluir a operação no Microsoft Graph. Verifique se o usuário tem permissões para criar um Aplicativo do Microsoft Entra. | A capacidade de criar registros de aplicativo foi desabilitada no locatário do Microsoft Entra. Atribua o usuário que está criando a conexão de serviço à função Desenvolvedor de Aplicativos no Microsoft Entra. Como alternativa, crie a conexão de serviço manualmente usando uma identidade gerenciada. Para obter mais informações, consulte Identidade da workload com identidade gerenciada. |
O erro AADSTS que você vê não está listado acima? Verifique Códigos de erro de autenticação e autorização do Microsoft Entra.