Compartilhar via


Solucionar problemas de conexões de serviço do Azure Resource Manager

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Este artigo apresenta 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 ARM (Azure Resource Manager). Confira Gerenciar conexões de serviço para saber como criar, editar e proteger as conexões de serviço. Consulte Solucionar problemas de uma conexão de serviço de identidade de carga de trabalho do Azure Resource Manager para saber como corrigir problemas relacionados à 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 sua organização recebe e usa para gerenciar todas as identidades e controle de acesso dos seus serviços de nuvem. 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 aos recursos.

Dica

Você pode pedir ajuda ao Copilot para solucionar problemas de mensagens de erro. Para saber mais, consulte Usar a IA para solucionar um erro de conexão de serviço do Azure DevOps.

O que acontece quando você cria uma conexão de serviço do Azure Resource Manager?

Você tem várias opções de autenticação para se conectar ao Azure com uma conexão de serviço do Azure Resource Manager. É recomendável usar a federação de identidade de carga de trabalho com um registro de aplicativo ou uma identidade gerenciada.

Quando o processo de criação da conexão de serviço é bem-sucedido, o Azure DevOps executa automaticamente essas etapas em seu locatário do Microsoft Entra. Se você encontrar erros durante esse processo, confira os cenários de solução de problemas abaixo.

Quando você salva sua nova conexão de serviço do Azure Resource Manager, o Azure DevOps executa as seguintes ações:

  1. Conecta-se ao inquilino do Microsoft Entra para a assinatura selecionada.
  2. Cria um aplicativo no Entra ID em nome do usuário.
  3. Atribui o aplicativo como um colaborador para a assinatura selecionada.
  4. Cria uma conexão de serviço do Azure Resource Manager usando os detalhes deste aplicativo.

Observação

Para criar conexões de serviço, é necessário que você tenha a função de Criador ou Administrador para o grupo Endpoint Creator nas configurações do seu projeto: Configurações do Projeto Conexões de Serviço>>Mais Ações>Segurança. Os colaboradores de projetos são adicionados a esse grupo por padrão.

O usuário só tem permissão de convidado no diretório

Esse erro ocorre durante o processo de criação automática de conexão de serviço quando o Azure DevOps tenta criar um aplicativo e atribuir permissões na ID do Microsoft Entra (etapas 2-3 em O que acontece quando você cria uma conexão de serviço do Azure Resource Manager). Isso acontece quando um usuário com apenas permissões de convidado em um diretório do ID do Microsoft Entra tenta criar uma conexão de serviço do Azure Resource Manager no Azure DevOps, mas não tem permissões suficientes.

Para resolver o problema:

  1. Entre no portal do Azure com uma conta de administrador. A conta deve ser um proprietário ou administrador de conta de usuário.

  2. Selecione Microsoft Entra ID na barra de navegação do lado esquerdo.

  3. 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.

  4. Selecione Usuários na seção Gerenciar.

  5. Selecione Configurações de usuário.

  6. Selecione Gerenciar configurações de colaboração externa na seção Usuários externos.

  7. 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 administrador ao usuário, poderá tornar o usuário um membro de um cargo de administrador. Concluir as seguintes etapas:

Aviso

Atribuir usuários à função de Administrador Global permite que eles leiam e modifiquem todas as configurações administrativas na sua organização do Microsoft Entra. Como uma melhor recomendada, atribua essa função a menos de cinco pessoas em sua organização.

  1. Entre no portal do Azure com uma conta de administrador. A conta deve ser um proprietário ou administrador de conta de usuário.

  2. Selecione Microsoft Entra ID no painel de navegação esquerdo.

  3. 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.

  4. Selecione Usuários na seção Gerenciar.

  5. Use a caixa de pesquisa para localizar o usuário que você deseja gerenciar.

  6. Selecione Função de diretório na seção Gerenciar e, em seguida, altere a função. Selecione Salvar ao terminar.

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

Esse erro ocorre durante o processo de criação automática de conexão de serviço quando o Azure DevOps tenta criar um aplicativo na ID do Microsoft Entra em seu nome (etapa 2 em O que acontece quando você cria uma conexão de serviço do Azure Resource Manager). Você não tem permissão para adicionar aplicativos integrados no diretório. O administrador do diretório tem permissões para alterar essa configuração.

Para resolver o problema:

  1. Selecione Microsoft Entra ID no painel de navegação esquerdo.

  2. 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.

  3. Selecione Usuários e, em seguida, selecione Configurações de usuário.

  4. Em registros de aplicativo, altere a opção Usuários pode registrar aplicativos para Sim.

Você também pode criar a entidade de serviço com um usuário existente que já tem as permissões necessárias no Entra ID. Para mais informações, veja 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

Normalmente, esses erros ocorrem quando sua sessão expira.

Para resolver esses problemas:

  1. Saia do Azure DevOps.

  2. Abra uma janela do navegador InPrivate ou incógnito e vá para o Azure DevOps.

  3. Entre com as credenciais apropriadas.

  4. Selecione sua organização e seu projeto.

  5. Tente criar sua conexão de serviço novamente. Para obter etapas detalhadas, consulte Gerenciar conexões de serviço.

Você não parece ter uma assinatura ativa do Azure ao tentar editar ou criar uma nova conexão de serviço

Esse erro normalmente ocorre quando você faz parte de vários locatários do Entra ID.

Para resolver o problema:

  1. Vá para o perfil do VS.

  2. Verifique se você tem vários locatários.

  3. Selecione cada locatário e, em seguida, reautentique.

  4. Tente criar uma conexão de serviço e verifique se a assinatura é carregada.

Falha ao atribuir a função de Colaborador

Esse erro ocorre durante o processo de criação automática de conexão de serviço quando o Azure DevOps tenta atribuir o aplicativo como um colaborador à sua assinatura (etapa 3 em O que acontece quando você cria uma conexão de serviço do Azure Resource Manager). Esse erro normalmente ocorre quando você não tem permissão para gravação para a assinatura da Azure selecionada.

Para resolve esse problema, peça ao administrador da assinatura para atribuir a você a função apropriada no Microsoft Entra ID.

A assinatura não está listada ao criar uma conexão de serviço

Há várias possíveis causas desse problema.

  • Excedeu o limite de 50 assinaturas do Azure exibidas nos diversos menus suspensos de assinatura do Azure (cobrança, conexão de serviço, etc.): se você estiver configurando uma conexão de serviço e tiver mais de 50 assinaturas do Azure, algumas de suas assinaturas podem não ser listadas. Nesse cenário, conclua as seguintes etapas:

    1. Crie um novo usuário nativo do Microsoft Entra na instância do Microsoft Entra da sua assinatura do Azure.

    2. Configure o usuário do Microsoft Entra para que ele tenha as permissões adequadas para configurar a cobrança ou criar conexões de serviço. Para obter mais informações, confira Configurar cobrança para sua organização do Azure DevOps.

    3. Adicione o usuário do Microsoft Entra à organização do Azure DevOps com um nível de acesso de Stakeholder e, a seguir, o adicione ao grupo de Administradores de Coleção de Projetos (para cobrança), ou certifique-se de que o usuário tenha permissões suficientes no Projeto de Equipe para criar conexões de serviço.

    4. Faça login no Azure DevOps com as novas credenciais de usuário e configure a cobrança. Você verá apenas uma assinatura do Azure na lista.

  • Token de usuário antigo armazenado em cache no Azure DevOps Services: Se sua assinatura do Azure não aparecer quando você criar uma conexão de serviço do ARM (Azure Resource Manager), isso pode ocorrer devido a um token de usuário antigo armazenado em cache no Azure DevOps Services. Esse cenário não é imediatamente óbvio, pois a tela de listagem das assinaturas do Azure não exibe nenhum erro ou mensagem de aviso indicando que o token do usuário está desatualizado. Para resolver esse problema, atualize manualmente o token de usuário armazenado em cache no Azure DevOps Services executando as seguintes etapas:

    1. Desconecte-se da conta do Azure DevOps Services e entre novamente. Essa ação pode atualizar o token do usuário.
    2. Limpe o cache e os cookies do navegador para garantir que os tokens antigos sejam removidos.
    3. No portal do Azure DevOps, acesse as conexões de serviço e autorize novamente a conexão com o Azure. Essa etapa solicita que o Azure DevOps use um novo token.
  • Configurações incorretas de tipos de conta de suporte: Corrija esse problema alterando as configurações de tipos de conta com suporte e definindo quem pode usar seu aplicativo. Siga estas etapas:

    1. Entre no portal do Azure.

    2. Se você tem acesso a vários locatários, use o filtro Diretório + assinatura no menu superior para selecionar o locatário no qual você deseja registrar um aplicativo.

      Captura de tela mostrando o ícone de diretório e assinaturas no portal do Azure.

    3. Selecione Microsoft Entra ID no painel esquerdo.

    4. Selecione Registros do Aplicativo.

    5. Selecione seu aplicativo na lista de aplicativos registrados.

    6. Em Autenticação, selecione Tipos de conta com suporte.

    7. Em Tipos de conta com suporte, Quem pode usar esse aplicativo ou acessar essa API? selecione Contas em qualquer diretório organizacional.

      Captura de tela mostrando os tipos de conta com suporte.

    8. Selecione Salvar ao terminar.

Principal de serviço ou senha secreta expirada

Principais de serviço ou segredos que o Azure DevOps cria automaticamente expiram e precisam ser renovados. 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, use a federação de identidade de carga de trabalho com o Azure Resource Manager.

Se o token expirar, você poderá ver uma destas 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 para uma entidade de serviço ou segredo criada automaticamente:

  1. Vá paraas conexões de serviço de > do Project e selecione a conexão de serviço que você deseja atualizar.

  2. Selecione Girar Secreto.

    Captura de tela da opção para girar um segredo do ARM.

O token para sua entidade de serviço ou segredo foi renovado por mais três meses.

Observação

Essa operação estará disponível mesmo se o token da entidade de serviço não tiver expirado. Verifique se o usuário que está executando a operação tem permissões adequadas na assinatura e na ID do Microsoft Entra, pois atualiza o segredo do aplicativo registrado para a entidade de serviço. Para obter mais informações, consulte Criar um registro de aplicativo com um segredo 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 salvar uma conexão de serviço com um segredo expirado ou outros problemas no nível da ID do Microsoft Entra.

Para resolver o problema:

  1. Acesse Configurações do projeto>Conexões de serviço e selecione a conexão de serviço que você deseja modificar.

  2. Selecione Editar no canto superior direito e faça a alteração na conexão de serviço. A alteração mais fácil e recomendada é adicionar uma descrição.

  3. Selecione Salvar para salvar a conexão de serviço.

Observação

Se você receber um erro como Failed to obtain the Json Web Token(JWT) using service principal client ID. Exception message: AADSTS7000112: Application is disabled., trabalhe com sua equipe do Microsoft Entra ID para confirmar se a opção Habilitada para os usuários entrarem no aplicativo empresarial vinculado à sua entidade de serviço não está desabilitada.

A assinatura do Azure não é passada na saída da tarefa anterior

Você pode enfrentar esse problema caso defina a assinatura do Azure dinamicamente para o pipeline de lançamento e deseje consumir a variável de saída de uma tarefa anterior.

Para resolve o problema, verifique se os valores estão definidos na seção variáveis do pipeline. Em seguida, você pode passar essa variável entre as tarefas do pipeline.

Quais mecanismos de autenticação têm suporte? Como funcionam as identidades gerenciadas?

Uma conexão de serviço do Azure Resource Manager pode se conectar a uma assinatura do Azure usando a Autenticação de Entidade de Serviço (SPA) ou a 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 workspace de machine learning usando:

  • Registro de aplicativo (recomendado): Autenticar a conexão usando uma federação de identidade de carga de trabalho ("Workload identity federation") ou um segredo.
  • Identidade gerenciada: as identidades gerenciadas para recursos do Azure fornecem aos serviços do Azure uma identidade gerenciada automaticamente no ID do Microsoft Entra. Você também pode usar uma identidade gerenciada atribuída por um agente.

Quando você configura a conexão de serviço com uma identidade gerenciada como o 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, determinadas 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 pelo 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 agente no pipeline, permitindo a autenticação. Essa configuração permite que você aproveite a identidade gerenciada existente.

Para saber mais sobre identidades gerenciadas para máquinas virtuais, confira Atribuindo funções.

Observação

Os agentes hospedados pela Microsoft não dão suporte a identidades gerenciadas. Nesse cenário, você deve configurar um agente auto-hospedado em uma VM do Azure e configurar a identidade gerenciada para essa VM.

Usar a IA para solucionar problemas de um erro de conexão de serviço do Azure DevOps

Este prompt de exemplo para o Copilot Chat ajuda o Copilot a solucionar problemas de código de erro e mensagem. Copie e cole esse prompt no Copilot Chat, substituindo o espaço reservado por 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.