Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Azure DevOps Serviços | Azure DevOps Server | Azure DevOps Server 2022
Este artigo apresenta cenários comuns de resolução de problemas para o ajudar a resolver problemas que possa encontrar ao criar uma ligação de serviço ao Azure Resource Manager (ARM). Consulte Gerenciar conexões de serviço para saber como criar, editar e proteger conexões de serviço. Consulte Troubleshoot an Azure Resource Manager workload identity service connection para aprender como corrigir problemas relacionados com a identidade da carga de trabalho.
Este artigo usa os termos "locatário" e "diretório" de maneiras que podem se sobrepor. Um tenant é uma instância dedicada e isolada do Microsoft Entra ID que a sua organização recebe e gere todas as identidades e controlo de acessos dos seus serviços cloud. Um diretório é um contêiner dentro desse locatário que contém objetos como usuários, grupos e aplicativos usados para gerenciar o acesso a recursos.
Sugestão
Pode pedir ajuda ao Copilot para resolver mensagens de erro. Para saber mais, consulte Use IA para resolver um erro de ligação de serviço Azure DevOps.
O que acontece quando crias uma ligação de serviço ao Azure Resource Manager
Tem várias opções de autenticação para ligar ao Azure com uma ligação do serviço Gerenciador de Recursos do Azure. Recomendamos o uso da federação de identidades de carga de trabalho com um registro de aplicativo ou identidade gerenciada.
Quando o processo de criação da ligação ao serviço é bem-sucedido, o Azure DevOps executa automaticamente estes passos no seu tenant Microsoft Entra. Se você encontrar erros durante esse processo, consulte os cenários de solução de problemas abaixo.
Quando guarda a sua nova ligação de serviço ao Azure Resource Manager, o Azure DevOps toma as seguintes ações:
- Liga-se ao inquilino Microsoft Entra para a subscrição selecionada.
- Cria uma aplicação no Entra ID em nome do utilizador.
- Atribui o aplicativo como um contribuidor para a assinatura selecionada.
- Cria uma ligação de serviço ao Azure Resource Manager utilizando os dados desta aplicação.
Nota
Para criar ligações de serviço, precisa de ter atribuído o papel de Criador ou Administrador para o Grupo Criador de Endpoints nas suas definições do projeto: Definições do Projeto>Ligações de Serviço>Mais Ações>Segurança. Os Colaboradores do Projeto são adicionados a este grupo por padrão.
O usuário tem apenas permissão de convidado no diretório
Este erro ocorre durante o processo de criação automática de ligação ao serviço quando Azure DevOps tenta criar uma aplicação e atribuir permissões em Microsoft Entra ID (passos 2-3 em O que acontece quando cria uma ligação de serviço Azure Resource Manager). Acontece quando um utilizador com apenas permissões de convidado numa diretório do Microsoft Entra ID tenta criar uma ligação de serviço ao Azure Resource Manager no Azure DevOps, mas tem permissões insuficientes.
Para resolver este problema:
Inicie sessão no portal Azure com uma conta de administrador. A conta deve ser um proprietário ou administrador de conta de utilizador.
Selecione Microsoft Entra ID na barra de navegação da esquerda.
Verifique se você está editando o diretório apropriado que corresponde à assinatura do usuário. Caso contrário, selecione Alternar diretório e entre com as credenciais apropriadas, se necessário.
Selecione Usuários na seção Gerenciar .
Selecione Configurações do usuário.
Selecione Gerenciar configurações de colaboração externa na seção Usuários externos.
Altere a opção Permissões de usuário convidado são limitadas para Não.
Como alternativa, se você estiver pronto para conceder permissões de nível de administrador ao usuário, poderá torná-lo membro de uma função de administrador. Conclua as seguintes etapas:
Aviso
Atribuir aos utilizadores o papel de Administrador Global permite-lhes ler e modificar todas as definições administrativas da sua organização Microsoft Entra. Como prática recomendada, atribua essa função a menos de cinco pessoas em sua organização.
Inicie sessão no portal Azure com uma conta de administrador. A conta deve ser um proprietário ou administrador de conta de utilizador.
Selecione Microsoft Entra ID no painel de navegação esquerdo.
Verifique se você está editando o diretório apropriado que corresponde à assinatura do usuário. Caso contrário, selecione Alternar diretório e entre com as credenciais apropriadas, se necessário.
Selecione Usuários na seção Gerenciar .
Use a caixa de pesquisa para encontrar o usuário que você deseja gerenciar.
Selecione Função de diretório na seção Gerenciar e altere a função. Quando terminar, selecione Guardar.
Normalmente, leva de 15 a 20 minutos para aplicar as alterações globalmente. O usuário pode então tentar recriar a conexão de serviço.
O usuário não está autorizado a adicionar aplicativos no diretório
Este erro ocorre durante o processo de criação automática de ligação ao serviço quando Azure DevOps tenta criar uma aplicação em Microsoft Entra ID em seu nome (passo 2 em O que acontece quando cria uma ligação de serviço Azure Resource Manager). Você não tem permissão para adicionar aplicativos integrados no diretório. O administrador de diretório tem permissões para alterar essa configuração.
Para resolver este problema:
Selecione Microsoft Entra ID no painel de navegação esquerdo.
Verifique se você está editando o diretório apropriado que corresponde à assinatura do usuário. Caso contrário, selecione Alternar diretório e entre com as credenciais apropriadas, se necessário.
Selecione Utilizadores e, em seguida, selecione Definições de utilizador.
Em App registrations, altere a opção Os utilizadores podem registar aplicações para Sim.
Também pode criar o principal do serviço com um utilizador existente que já tenha as permissões necessárias no Entra ID. Para mais informações, consulte Criar uma ligação de serviço Azure Resource Manager com um principal de serviço existente.
Falha em obter um token de acesso ou não foi encontrado um token de atualização válido
Esses erros geralmente ocorrem quando a sessão expira.
Para resolver esses problemas:
Sai do Azure DevOps.
Abra uma janela de navegador InPrivate ou incógnita e vá para Azure DevOps.
Entre com as credenciais apropriadas.
Selecione sua organização e seu projeto.
Tente criar sua conexão de serviço novamente. Para obter etapas detalhadas, consulte Gerenciar conexões de serviço.
Não parece ter uma subscrição ativa do Azure ao tentar editar ou criar uma nova ligação ao serviço
Este erro normalmente ocorre quando faz parte de vários inquilinos do Entra ID.
Para resolver este problema:
Vá para perfil do VS.
Verifique se você tem vários locatários.
Selecione cada locatário e autentique-se novamente.
Tente criar uma conexão de serviço e verifique se a assinatura é carregada.
Não foi possível atribuir a função de Colaborador
Este erro ocorre durante o processo de criação automática de ligação ao serviço quando Azure DevOps tenta atribuir a aplicação como contribuinte à sua subscrição (passo 3 em O que acontece quando cria uma ligação de serviço Azure Resource Manager). Este erro normalmente acontece quando não tens permissão Write para a subscrição de Azure selecionada.
Para resolver este problema, peça ao administrador da subscrição para te atribuir a função apropriada no Microsoft Entra ID.
A assinatura não está listada ao criar uma conexão de serviço
Existem várias causas possíveis para este problema.
Ultrapassou o máximo de 50 subscrições do Azure listadas nos vários menus suspensos de subscrições do Azure (faturação, ligação ao serviço, etc.): Se estiver a configurar uma ligação ao serviço e tiver mais de 50 subscrições, algumas das suas subscrições podem não ser listadas. Nesse cenário, conclua as seguintes etapas:
Crie um novo utilizador nativo do Microsoft Entra na instância Microsoft Entra da sua subscrição do Azure.
Configure o utilizador da Microsoft Entra para que tenha as permissões adequadas para configurar faturação ou criar ligações de serviço. Para mais informações, consulte Adicione um utilizador que possa configurar a faturação para Azure DevOps.
Adicione o utilizador Microsoft Entra à organização Azure DevOps com um nível de acesso Stakeholder, e, depois, adicione-o ao grupo Administradores de Coleção de Projetos (para faturação), ou certifique-se de que o utilizador tem permissões suficientes no Projeto da Equipa para criar ligações de serviço.
Inicie sessão no Azure DevOps com as novas credenciais de utilizador e configure a faturação. Só vês uma subscrição do Azure na lista.
Token de utilizador antigo guardado em cache no Azure DevOps Services: Se a sua subscrição do Azure não aparecer quando criar uma ligação de serviço do Azure Resource Manager (ARM), pode dever-se a um token de utilizador antigo guardado em cache no Azure DevOps Services. Este cenário não é imediatamente óbvio, pois o ecrã de lista de subscrições do Azure não mostra quaisquer erros ou mensagens de aviso que indiquem que o token de utilizador está desatualizado. Para resolver este problema, atualize manualmente o token de utilizador em cache no Azure DevOps Services seguindo os seguintes passos:
- Saia do Azure DevOps Services e volte a iniciar sessão. Esta ação pode atualizar o token de usuário.
- Limpe o cache e os cookies do navegador para garantir que todos os tokens antigos sejam removidos.
- A partir do portal Azure DevOps, vai às ligações de serviço e reautoriza a ligação ao Azure. Esta etapa incentiva o Azure DevOps a usar um novo token.
Configurações incorretas de tipos de conta de suporte: Corrija esse problema alterando as configurações de tipos de conta suportados e definindo quem pode usar seu aplicativo. Siga estes passos:
Inicie sessão no portal Azure.
Se você tiver acesso a vários locatários, use o filtro Diretório + assinatura no menu superior para selecionar o locatário no qual deseja registrar um aplicativo.
Selecione Microsoft Entra ID no painel esquerdo.
Selecione App registrations.
Selecione a sua candidatura a partir da lista de candidaturas registadas.
Em Autenticação, selecione Tipos de conta suportados.
Em Tipos de conta suportados, Quem pode usar este aplicativo ou acessar esta API?, selecione Contas em qualquer diretório organizacional.
Quando terminar, selecione Guardar.
Principal de serviço ou senha secreta expirou
Princípios de serviço ou segredos que o Azure DevOps cria automaticamente expiram e necessitam de renovação. Se você encontrar problemas ao atualizar o token, consulte Falha ao obter um token de acesso ou um token de atualização válido não foi encontrado. Para evitar a necessidade de renovar segredos, usa a federação de identidades de carga de trabalho com Azure Resource Manager.
Se o token expirar, poderá ver uma destas mensagens de erro:
AADSTS7000215: Invalid client secret is providedAADSTS7000222: The provided client secret keys for app '***' are expiredInvalid client id or client secret
Para renovar o token de acesso de uma entidade de serviço ou um segredo criados automaticamente:
Vai a Definições do projeto>Conexões de serviço e depois seleciona a conexão de serviço que deseja atualizar.
Selecione Rodar chave.
O token para o seu serviço principal ou segredo foi agora renovado por mais três meses.
Nota
Esta operação está disponível mesmo que o token do principal de serviço não tenha expirado. Certifique-se de que o utilizador que realiza a operação tem as permissões adequadas para a subscrição e para o Microsoft Entra ID, pois esta atualiza o segredo da aplicação registada no principal do serviço. Para mais informações, veja Criar um registo de aplicação com um secret e O que acontece quando cria uma ligação de serviço Resource Manager?
Falha ao obter o JWT usando o Identificador de Cliente da entidade principal de serviço
Este problema ocorre quando tenta guardar uma ligação de serviço que tem um segredo expirado ou outros problemas ao nível do Microsoft Entra ID.
Uma ligação de serviço neste estado também pode não aparecer nos menus de tarefas do pipeline (como Azure App Service Deploy ou Azure PowerShell), embora seja visível nas definições Project>ligações de serviço.
Isto acontece quando o principal de serviço subjacente foi eliminado ou o isReady estado da ligação é false.
Para resolver este problema:
- Vai a Configurações do projeto>Conexões de serviço, e depois selecione a conexão de serviço que quiser modificar.
- Selecione Editar e depois selecione Verificar para verificar o estado da ligação.
- Se a verificação falhar devido a um
AADSTS700016erro ("Aplicação com identificador não foi encontrada no diretório"), o principal de serviço era eliminado. Crie uma nova ligação de serviço ou, para ligações manuais, atualize a ligação com novos detalhes do principal do serviço. - Se a verificação for bem-sucedida, selecione Guardar para guardar a ligação ao serviço.
Nota
Se ocorrer um erro como Failed to obtain the Json Web Token(JWT) using service principal client ID. Exception message: AADSTS7000112: Application is disabled., trabalhe com a sua equipa de Microsoft Entra ID para confirmar que a opção Ativado para os utilizadores iniciarem sessão na aplicação empresarial ligada à sua entidade de serviço não está desativada.
A subscrição do Azure não é transferida a partir da saída da tarefa anterior
Quando define a sua subscrição do Azure dinamicamente para o seu pipeline de lançamento e quer consumir a variável de saída de uma tarefa anterior, pode deparar-se com este problema.
Para resolver o problema, certifique-se de que os valores estão definidos na seção de variáveis do seu pipeline. Em seguida, você pode passar essa variável entre as tarefas do seu pipeline.
Que mecanismos de autenticação são suportados? Como funcionam as identidades gerenciadas?
Uma ligação de serviço do Azure Resource Manager pode ligar-se a uma subscrição do Azure usando Autenticação Principal de Serviço (SPA) ou autenticação de identidade gerida.
A ligação do serviço Azure Resource Manager pode ligar-se a uma subscrição Azure, grupo de gestão ou espaço de trabalho de aprendizagem automática utilizando:
- Registro de aplicativo (recomendado): autentique a conexão usando uma federação de identidade de carga de trabalho ou um segredo.
- Identidade gerida: Identidades geridas para recursos Azure fornecem aos serviços Azure uma identidade gerida automaticamente no Microsoft Entra ID. Você também pode usar uma identidade gerenciada atribuída ao agente.
Quando você configura a conexão de serviço com uma identidade gerenciada como método de autenticação, o processo não cria uma nova identidade gerenciada. Ele simplesmente estabelece a conexão de serviço. Para que esse método de autenticação funcione corretamente, certas condições devem ser atendidas. Especificamente, como a identidade gerenciada é o método de autenticação escolhido, a máquina virtual que você está usando deve ter uma identidade atribuída ao sistema. Além disso, essa máquina virtual precisa atuar como um agente auto-hospedado dentro dos pipelines para que o fluxo de trabalho seja totalmente executado, permitindo que o pipeline implante alterações por meio da conexão de serviço. A identidade atribuída pelo sistema na VM identifica que a mesma VM está servindo como o agente no pipeline, habilitando a autenticação. Essa configuração permite que você aproveite a identidade gerenciada existente.
Para saber mais sobre identidades gerenciadas para máquinas virtuais, consulte Atribuição de funções.
Nota
Os agentes alojados na Microsoft não suportam identidades geridas. Neste cenário, deve configurar um agente auto-hospedado numa VM Azure e configurar uma identidade gerida para essa VM.
Erro AuthorizationFailed ao executar tarefas do pipeline
Quando uma tarefa de pipeline é executada contra um recurso Azure, pode ver o seguinte erro:
AuthorizationFailed: The client '<ClientName>' with object id '<ObjectId>' does not have authorization
to perform action '<ActionName>' over scope '/subscriptions/<SubscriptionId>/...'
O ID do cliente e do objeto na mensagem de erro referem-se à entidade de serviço que suporta a sua ligação ao serviço.
Para resolver este problema:
- No portal Azure, vai ao recurso ou grupo de recursos referenciado no âmbito do erro.
- Selecionar controlo de acesso (IAM)>Atribuições de funções.
- Verifique se o principal do serviço listado no erro tem um papel que inclua a ação necessária (por exemplo, Contribuidor ou um papel personalizado).
- Se a atribuição de função estiver em falta, selecione Adicionar>atribuição de função e atribua a função apropriada ao principal do serviço.
- Espere alguns minutos para que a atribuição de funções se propague e depois tente o pipeline novamente.
Para mais informações sobre Azure RBAC, consulte Azure funções incorporadas.
Ligação de serviço não autorizada para gasoduto
Quando um pipeline é executado, pode ver o seguinte erro:
Resource not authorized. You need to authorize the resource before it can be used.
Este erro ocorre quando a ligação de serviço não recebeu permissão para o pipeline que tenta usá-la.
Para resolver este problema:
- Vá a Definições do projeto>Ligações de serviço.
- Selecione a ligação de serviço que o pipeline utiliza.
- Selecionar Mais ações (...) >Segurança.
- Em permissões de pipeline, selecione + e adicione o pipeline que necessita de acesso.
Em alternativa, pode conceder acesso a todos os pipelines. Isto não é recomendado. Para conceder acesso a todos os oleodutos:
Na página de segurança da ligação de serviço, selecione Mais ações>Abrir acesso.
Nota
O acesso aberto permite que qualquer pipeline do projeto utilize a conexão de serviço. Para um controlo mais rigoroso, conceda acesso apenas a pipelines específicos.
Para mais informações, consulte Segurança da ligação ao serviço.
Criar um principal de serviço sem permissões de subscrição do Azure
Se não tiver as permissões necessárias na subscrição do Azure ou no Microsoft Entra ID para criar uma ligação de serviço através do método automático, peça a um administrador para criar manualmente o principal de serviço. Pode então introduzir os detalhes do principal de serviço no Azure DevOps para criar a ligação ao serviço.
- Peça a um utilizador que tenha a subscrição de Azure necessária e permissões Microsoft Entra ID para criar um principal de serviço em Microsoft Entra ID e atribuir-lhe o papel apropriado na subscrição.
- Obtenha os seguintes detalhes do administrador: ID da aplicação (cliente), ID do diretório (inquilino), ID de subscrição e um segredo ou certificado do cliente.
- Em Azure DevOps, vá a Definições do Projeto>Ligações de Serviço>Nova Ligação de Serviço>Azure Resource Manager>Principal de Serviço (manual).
- Insira os dados fornecidos pelo administrador e guarde a ligação.
Para mais informações, consulte Criar uma ligação de serviço Azure Resource Manager com um principal de serviço existente.
Não é possível eliminar uma ligação de serviço
Quando tenta eliminar uma ligação de serviço do Azure Resource Manager, pode receber um erro como "Falhou a remoção da permissão do Azure" ou "Falhou a remoção do principal de serviço do Microsoft Entra ID." Em alguns casos, a ligação permanece na lista, mesmo sem que seja apresentado um erro.
Para resolver este problema:
Selecione a ligação ao serviço e selecione Eliminar. Mesmo que apareçam mensagens de erro sobre permissões do Azure ou o principal do serviço, a ligação deve ainda assim ser removida do Azure DevOps.
Se a eliminação falhar, use a API REST do Endpoint de Serviço para a eliminar diretamente. Defina o parâmetro
deepparafalsee evite a limpeza do principal de serviço correspondente:DELETE https://dev.azure.com/{organization}/{project}/_apis/serviceendpoint/endpoints/{endpointId}?deep=false&api-version=7.1Após eliminar a ligação, remova ou atualize manualmente o principal de serviço associado a partir de App registrations no portal Azure.
Use IA para resolver um erro de ligação de serviço Azure DevOps
Este prompt de exemplo para o Copilot Chat ajuda o Copilot a diagnosticar o seu código de erro e a sua mensagem. Copie e cole este prompt no Copilot Chat, substituindo o marcador de posição pela sua mensagem de erro específica.
I'm getting this Azure DevOps service connection error: [PASTE YOUR ERROR MESSAGE HERE]
Can you help me troubleshoot this issue? Please provide step-by-step instructions to:
1. Identify the root cause
2. Fix the configuration in Azure or Entra ID
3. Verify the solution works
Context: This is for an Azure Resource Manager service connection in Azure DevOps.