Resolver problemas de ligações do serviço do Azure Resource Manager
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Este artigo apresenta os cenários comuns de solução de problemas para ajudá-lo a resolver problemas que você pode encontrar ao criar uma conexão de serviço do Azure Resource Manager. Consulte Gerenciar conexões de serviço para saber como criar, editar e proteger conexões de serviço.
O que acontece quando você cria uma conexão de serviço do Azure Resource Manager
Se você não tiver uma conexão de serviço, poderá criar uma da seguinte maneira:
No seu projeto, selecione Configurações do projeto e, em seguida, selecione Conexões de serviço.
Selecione Nova conexão de serviço para adicionar uma nova conexão de serviço e selecione Gerenciador de Recursos do Azure. Selecione Avançar quando terminar.
Selecione Registro de aplicativo (automático) como tipo de identidade e Associação de identidades de carga de trabalho como a credencial.
Selecione Subscrição e, em seguida, selecione a sua subscrição na lista pendente. Preencha o restante do formulário e selecione Salvar quando terminar.
Quando você salva sua nova conexão de serviço do Azure Resource Manager, o Azure DevOps executa as seguintes ações:
- Conecta-se ao locatário do Microsoft Entra para a assinatura selecionada.
- Cria uma aplicação no Microsoft Entra ID em nome do utilizador.
- Atribui o aplicativo como um contribuidor para a assinatura selecionada.
- Cria uma ligação de serviço do Azure Resource Manager utilizando os detalhes 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 Ponto de Extremidade nas 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.
Cenários de resolução de problemas
Os seguintes problemas podem ocorrer quando você cria conexões de serviço:
- O usuário tem apenas permissão de convidado no diretório
- O usuário não está autorizado a adicionar aplicativos no diretório
- Falha ao obter um token de acesso ou um token de atualização válido não foi encontrado
- Falha ao atribuir a função de Colaborador
- A assinatura não está listada ao criar uma conexão de serviço
- Algumas subscrições estão em falta na lista de subscrições
- O token da entidade de serviço expirou
- Falha ao obter o token da Web JSON (JWT) usando a ID de cliente principal do serviço
- A assinatura do Azure não é passada da saída da tarefa anterior
- Que mecanismos de autenticação são suportados? Como funcionam as identidades gerenciadas?
O usuário tem apenas permissão de convidado no diretório
Entre no portal do Azure usando uma conta de administrador. A conta deve ser um proprietário ou um administrador de conta de usuário
Selecione Microsoft Entra ID na barra de navegação esquerda.
Verifique se você está editando o diretório apropriado correspondente à assinatura do usuário. Caso contrário, selecione Alternar diretório e entre usando 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 preparado para conceder permissões de nível de administrador ao usuário, poderá torná-lo membro de uma função de Administrador. Efetue os seguintes passos:
Aviso
A atribuição de usuários à função de Administrador Global permite que eles leiam e modifiquem todas as configurações administrativas em sua organização do Microsoft Entra. Como prática recomendada, atribua essa função a menos de cinco pessoas em sua organização.
Entre no portal do Azure usando uma conta de administrador. A conta deve ser um proprietário ou administrador de conta de usuário.
Selecione ID do Microsoft Entra no painel de navegação esquerdo.
Verifique se você está editando o diretório apropriado correspondente à assinatura do usuário. Caso contrário, selecione Alternar diretório e entre usando as credenciais apropriadas, se necessário.
Selecione Usuários na seção Gerenciar .
Use a caixa de pesquisa para procurar 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. Em seguida, o usuário pode tentar recriar a conexão de serviço.
O usuário não está autorizado a adicionar aplicativos no diretório
Você deve ter permissões para adicionar aplicativos integrados no diretório. O administrador de diretório tem permissões para alterar essa configuração.
Selecione Microsoft Entra ID no painel de navegação esquerdo.
Verifique se você está editando o diretório apropriado correspondente à assinatura do usuário. Caso contrário, selecione Alternar diretório e entre usando as credenciais apropriadas, se necessário.
Selecione Usuários e, em seguida, selecione Configurações do usuário.
Em Registos de aplicações e, em seguida, altere a opção Os utilizadores podem registar aplicações para Sim.
Você também pode criar a entidade de serviço com um usuário existente que já tenha as permissões necessárias no Microsoft Entra ID. Para obter mais informações, consulte Criar uma conexão de serviço do Azure Resource Manager com uma entidade de serviço existente.
Falha ao obter um token de acesso ou um token de atualização válido não foi encontrado
Esses erros geralmente ocorrem quando a sessão expirou. Para resolver esses problemas:
- Saia do Azure DevOps.
- Abra uma janela do navegador InPrivate ou anônimo e navegue até o Azure DevOps.
- Entre usando as credenciais apropriadas.
- Selecione sua organização e seu projeto.
- Crie sua conexão de serviço.
Falha ao atribuir a função de Colaborador
Esse erro normalmente ocorre quando você não tem permissão de Gravação para a assinatura do Azure selecionada.
Para resolver este problema, peça ao administrador da subscrição para lhe atribuir a função apropriada no Microsoft Entra ID.
A assinatura não está listada ao criar uma conexão de serviço
Máximo de 50 assinaturas do Azure listadas nos vários menus suspensos de assinatura do Azure (cobrança, conexão de serviço e assim por diante): se você estiver configurando uma conexão de serviço e tiver mais de 50 assinaturas do Azure, algumas de suas assinaturas não serão listadas. Nesse cenário, conclua as seguintes etapas:
- Crie um novo utilizador nativo do Microsoft Entra na instância do Microsoft Entra da sua subscrição do Azure.
- Configure o utilizador do Microsoft Entra de modo a ter as permissões adequadas para configurar a faturação ou criar ligações de serviço. Para obter mais informações, veja Adicionar um utilizador que pode configurar a faturação do Azure DevOps.
- Adicione o usuário do Microsoft Entra à organização do Azure DevOps com um nível de acesso de Partes Interessadas e adicione-o ao grupo Administradores de Coleção de Projetos (para cobrança) ou verifique se o usuário tem permissões suficientes no Projeto de Equipe para criar conexões de serviço.
- Entre no Azure DevOps com as novas credenciais de usuário e configure a cobrança. Você só vê uma assinatura do Azure na lista.
Token de usuário antigo armazenado em cache nos Serviços de DevOps do Azure: se sua assinatura do Azure não estiver listada quando você criar uma conexão de serviço do Azure Resource Manager (ARM), isso pode ser devido a um token de usuário antigo armazenado em cache nos Serviços de DevOps do Azure. Esse cenário não é imediatamente óbvio, pois a tela de lista de assinaturas do Azure não exibe erros ou mensagens de aviso indicando que o token de usuário está desatualizado. Para resolver esse problema, atualize manualmente o token de usuário armazenado em cache nos Serviços de DevOps do Azure executando as seguintes etapas:
- Saia dos Serviços de DevOps do Azure e entre novamente. 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.
- No portal do Azure DevOps, vá para as conexões de serviço e reautorize a conexão com o Azure. Esta etapa solicita que o Azure DevOps use um novo token.
Algumas subscrições estão em falta na lista de subscrições
Alterar configurações de tipos de conta de suporte: esse problema pode ser corrigido alterando as configurações de tipos de conta suportados e definindo quem pode usar seu aplicativo. Efetue os seguintes passos:
Inicie sessão no portal do 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 Registos de aplicações.
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.
Token de usuário antigo armazenado em cache nos Serviços de DevOps do Azure: se sua assinatura do Azure não estiver listada quando você criar uma conexão de serviço do Azure Resource Manager (ARM), isso pode ser devido a um token de usuário antigo armazenado em cache nos Serviços de DevOps do Azure. Esse cenário não é imediatamente óbvio, pois a tela de lista de assinaturas do Azure não exibe erros ou mensagens de aviso indicando que o token de usuário está desatualizado. Para resolver esse problema, atualize manualmente o token de usuário armazenado em cache nos Serviços de DevOps do Azure executando as seguintes etapas:
- Saia dos Serviços de DevOps do Azure e entre novamente. 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.
- No portal do Azure DevOps, vá para as conexões de serviço e reautorize a conexão com o Azure. Esta etapa solicita que o Azure DevOps use um novo token.
O token da entidade de serviço expirou
Um problema que geralmente surge com principais de serviço ou segredos criados automaticamente é que o token expira e precisa ser renovado. Se você tiver um problema com a atualização do token, consulte Falha ao obter um token de acesso ou um token de atualização válido não foi encontrado.
Se o token expirou, você poderá ver uma das mensagens de erro:
AADSTS7000215: Invalid client secret is provided
AADSTS7000222: The provided client secret keys for app '***' are expired
Invalid client id or client secret
Para renovar o token de acesso de uma entidade de serviço ou um segredo criados automaticamente:
Vá para Configurações do>projeto Conexões de serviço e selecione a conexão de serviço que deseja modificar.
Selecione Editarno canto superior direito e selecione Verificar.
Selecione Guardar.
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 da entidade de serviço não tenha expirado. Verifique se o usuário que executa a operação tem as permissões adequadas na assinatura e no ID do Microsoft Entra, pois ele atualizará o segredo do aplicativo registrado para a entidade de serviço. Para obter mais informações, consulte Criar uma conexão de serviço do Azure Resource Manager usando segurança automatizada e O que acontece quando você cria uma conexão de serviço do Resource Manager?
Falha ao obter o JWT usando a ID do cliente da entidade de serviço
Esse problema ocorre quando você tenta verificar uma conexão de serviço que tem um segredo expirado.
Para resolver este problema:
Vá para Configurações do>projeto Conexões de serviço e selecione a conexão de serviço que deseja modificar.
Selecione Editar no canto superior direito e faça qualquer alteração na sua conexão de serviço. A alteração mais fácil e recomendada é adicionar uma descrição.
Selecione Salvar para salvar a conexão de serviço.
Nota
Selecione Guardar. Não tente verificar a conexão de serviço nesta etapa.
Saia da janela de edição da conexão de serviço e atualize a página de conexões de serviço.
Selecione Editar no canto superior direito e, agora, selecione Verificar.
Selecione Salvar para salvar sua conexão de serviço.
A assinatura do Azure não é passada da saída da tarefa anterior
Quando você define sua assinatura do Azure dinamicamente para seu pipeline de lançamento e deseja consumir a variável de saída de uma tarefa anterior, você pode encontrar esse 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 conexão de serviço do Azure Resource Manager pode se conectar a uma assinatura do Azure usando uma autenticação de entidade de serviço (SPA) ou autenticação de identidade gerenciada.
A conexão de serviço do Azure Resource Manager pode se conectar a uma assinatura do Azure, grupo de gerenciamento ou espaço de trabalho de aprendizado de máquina usando:
- Registo de aplicação (recomendado): pode-se autenticar a conexão usando uma federação de identidade de tarefa ou uma chave secreta.
- Identidade gerenciada: as identidades gerenciadas para recursos do Azure fornecem aos serviços do Azure uma identidade gerenciada automaticamente na ID do Microsoft Entra. Você também pode usar uma identidade gerenciada atribuída ao agente.
Para saber mais sobre identidades gerenciadas para máquinas virtuais, consulte Atribuição de funções.
Nota
Não há suporte para identidades gerenciadas em agentes hospedados pela Microsoft. Nesse cenário, você deve configurar um agente auto-hospedado em uma VM do Azure e configurar uma identidade gerenciada para essa VM.