Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Obtenha ajuda para solucionar problemas comuns com conexões com o serviço de identidade da carga de trabalho. Você também aprenderá como criar manualmente uma conexão de serviço, se necessário.
Lista de verificação de resolução de problemas
Use a lista de verificação a seguir para solucionar problemas com conexões de serviço de identidade de carga de trabalho:
- Revise as tarefas de pipeline para garantir que elas suportem a identidade da carga de trabalho.
- Verifique se a federação de identidades de carga de trabalho está ativa para o locatário.
- Verifique a precisão do URL do emissor e do identificador de entidade da federação.
As seções a seguir descrevem os problemas e como resolvê-los.
Revisar tarefas de pipeline
Quase todas as tarefas de pipeline autenticadas com o Microsoft Entra suportam a identidade da 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 contacto com o editor da extensão para obter suporte.
| Tarefa | Suporte à federação de identidades de carga de trabalho |
|---|---|
| AutomatedAnalysis@0 | Y |
| AzureAppServiceManage@0 | Y |
| AzureAppServiceSettings@1 | Y |
| AzureCLI@1 | Y |
| AzureCLI@2 | Y |
| AzureCloudPowerShellDeployment@1 | Utilizar 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 | Utilizar AzureFunctionOnKubernetes@1 |
| AzureFunctionOnKubernetes@1 | Y |
| AzureIoTEdge@2 | Y |
| AzureKeyVault@1 | Y |
| AzureKeyVault@2 | Y |
| AzureMonitor@0 | Utilizar 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 do 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 | Utilizar Kubernetes@1 |
| Kubernetes@1 | Y |
| KubernetesManifest@0 | Utilizar KubernetesManifest@1 |
| KubernetesManifest@1 | Y |
| Maven@4 | Y |
| Notation@0 | Y |
| PackerBuild@0 | Use PackerBuild@1 |
| PackerBuild@1 | Y |
| PublicarNoServiçoDeMensagensAzure@1 | Usar PublishToAzureServiceBus@2 com conexão de serviço do Azure |
| PublicarParaAzureServiceBus@2 | Y |
| ServiceFabricComposeDeploy@0 | N |
| ServiceFabricDeploy@1 | N |
| SqlAzureDacpacDeployment@1 | Y |
| VSTest@3 | Y |
Verifique se a federação de identidades da carga de trabalho está ativa
Se vir mensagens de erro AADSTS700223 ou AADSTS700238, a federação de identidade de cargas de trabalho foi desativada no cliente Microsoft Entra.
Verifique se não há políticas do Microsoft Entra em vigor que bloqueiem credenciais federadas.
Verifique a exatidão do URL do emissor
Se você vir uma mensagem que indica que nenhum registro de identidade federada correspondente foi encontrado, a URL do emissor ou o assunto da federação não correspondem. Para novas conexões de serviço, a URL do emissor correta começa com https://login.microsoftonline.com:
| Emissor do Azure DevOps | Emissor do Microsoft Entra (novas ligações de serviço) | |
|---|---|---|
| Issuer | https://vstoken.dev.azure.com/<organization id> |
https://login.microsoftonline.com/<microsoft entra tenant id>/v2.0 |
| Assunto | sc://<organization name>/<project name>/<service connection name> |
<microsoft entra prefix>/sc/<organization id>/<service connection id> |
Pode corrigir o URL do emissor ao editar e guardar a ligação de serviço para atualizar a URL do emissor. Se o Azure DevOps não tiver criado a identidade, o URL do emissor terá de ser atualizado manualmente. Para as identidades do Azure, o URL do emissor é atualizado automaticamente.
Problemas comuns
As próximas seções identificam problemas comuns e descrevem causas e resoluções.
Não tenho permissões para criar um principal de serviço no inquilino Microsoft Entra
Não pode usar a ferramenta de configuração de ligação de serviço do Azure DevOps se não tiver as permissões corretas. O seu nível de permissões é insuficiente para usar a ferramenta se não tiver permissões para criar entidades de serviço ou se estiver a usar um inquilino do Microsoft Entra diferente daquele do seu utilizador do Azure DevOps.
Tem de ter permissões no Microsoft Entra ID para criar registos de aplicações ou ter uma função apropriada (por exemplo, Programador de Aplicações).
Tem duas opções para resolver o problema:
- Solução 1: Configurar manualmente a identidade da carga de trabalho usando a autenticação de identidade gerenciada
- Solução 2: Configurar manualmente a identidade da carga de trabalho usando a autenticação de registro de aplicativo
Como faço para criar uma ligação ao serviço de federação de identidades de carga de trabalho na automação?
A federação de identidades de carga de trabalho define uma relação bidirecional entre a identidade e a conexão de serviço. Como resultado, os objetos precisam ser criados em uma determinada ordem e a credencial federada só pode ser criada depois que a conexão de serviço é criada. Para saber como automatizar a criação de conexões de serviço de identidade de carga de trabalho, vá para Usar scripts para automatizar o Azure Resource Manager com conexões de serviço de identidade de carga de trabalho.
Mensagens de erro
A tabela a seguir 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 oferece suporte à federação de identidades de carga de trabalho. |
| Identidade não encontrada | A tarefa não oferece suporte à federação de identidades de carga de trabalho. |
| Não foi possível buscar o token de acesso para o Azure | A tarefa não oferece suporte à federação de identidades de carga de trabalho. |
| AADSTS700016: Aplicação com identificador '****' não foi encontrada | 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 a appID/clientId está configurada corretamente. |
| AADSTS7000215: Segredo de 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 trabalho e substitua o segredo expirado por credenciais federadas. |
| AADSTS700024: A asserção do cliente não está dentro do seu intervalo de tempo válido | Se o erro ocorrer após aproximadamente 1 hora, use uma conexão de serviço com a federação de identidades 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 acontecer 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 federada correspondente encontrado para a asserção apresentada. Emissor da asserção: https://app.vstoken.visualstudio.com. |
Nenhuma credencial federada foi criada ou a URL do emissor não está correta. O URL do emissor correto tem o formato https://login.microsoftonline.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 criou sua identidade, você deve atualizar manualmente o emissor. Você pode encontrar o emissor correto na caixa de diálogo de edição da conexão de serviço ou na resposta se usar a API REST. |
AADSTS70021: Nenhum registro de identidade federada correspondente encontrado para a asserção apresentada. Emissor da asserção: https://login.microsoftonline.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX. Assunto da asserção: sc://<org>/<project>/<service-connection>. |
O URL do emissor ou o assunto da federação não correspondem. 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 registo de identidade federada correspondente encontrado para o emissor da declaração apresentada | Nenhuma credencial federada foi criada ou a URL do emissor não está correta. |
| AADSTS700213: Nenhum registro de identidade federada correspondente encontrado para o assunto da asserção apresentada | Nenhuma credencial federada foi criada ou o assunto não está correto. |
| AADSTS700223 | A federação de identidades de carga de trabalho é restrita ou desabilitada no locatário do Microsoft Entra. Nesse cenário, talvez seja possível usar uma identidade gerenciada para a federação. Para obter mais informações, consulte Identidade de carga de trabalho com identidade gerida. |
| 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 de workload foi restringida no tenant do Microsoft Entra. O emissor da sua organização (https://login.microsoftonline.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX) não tem permissão para usar a federação de identidade de carga de trabalho com o tipo de identidade de carga de trabalho (registro de aplicativo e/ou identidade gerenciada) que você está usando. Peça ao seu administrador de locatário ou à equipa de administração do Microsoft Entra para permitir a federação de identidades de cargas de trabalho para a sua organização Azure DevOps. |
| AADSTS70052: A identidade deve ser uma identidade gerenciada, um aplicativo de locatário único ou uma conta de serviço | Os registros de aplicativos multilocatários que têm signInAudience: AzureADMultipleOrgs atualmente não são suportados pelo emissor do Microsoft Entra. Use signInAudience: AzureADMyOrg e divida o acesso a vários locatários para usar conexões de serviço diferentes para cada locatário. Se você depender de operações ARM que acessam vários locatários em uma única solicitação (por exemplo, emparelhamento entre locatários de Redes Virtuais), poderá entrar em contato com o suporte para que sua organização do Azure DevOps use o emissor do Azure DevOps. |
| AADSTS900382: Cliente confidencial não é suportado no Cross Cloud | Algumas nuvens soberanas bloqueiam a federação de identidades de carga de trabalho. |
| Falha ao obter o JSON Web Token (JWT) usando a ID do cliente principal do serviço | As suas credenciais de identidade de federação estão mal configuradas ou o inquilino do Microsoft Entra impede o uso do OpenID Connect (OIDC). |
| O script falhou 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 Microsoft Entra. | A capacidade de criar registos de aplicações foi desativada no inquilino do Microsoft Entra. Atribua ao utilizador que está a criar a ligação de serviço a função Application Developer Microsoft Entra. Como alternativa, crie a conexão de serviço manualmente usando uma identidade gerenciada. Para obter mais informações, consulte Identidade de carga de trabalho com identidade gerida. |
O erro AADSTS que você vê não está listado acima? Verifique os códigos de erro de autenticação e autorização do Microsoft Entra.