Compartilhar via


Solucionar problemas de conexões de 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 ajudar você a resolver problemas ao criar uma conexão de serviço do Azure Resource Manager. Confira Gerenciar conexões de serviço para saber como criar, editar e proteger as 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:

  1. Em seu projeto, selecione Configurações do projeto e escolha Conexões de serviço.

    Captura de tela mostrando como acessar as conexões de serviço nas configurações de projeto

  2. Selecione Nova conexão de serviço para adicionar uma conexão de serviço e escolha Azure Resource Manager. Selecione Avançar quando terminar.

    Captura de tela mostrando os tipos de conexões de serviço.

  3. Selecione Registro de aplicativo (automático) e Federação de identidade de carga de trabalho como a credencial.

  4. Selecione Assinatura e escolha sua assinatura na lista suspensa. 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:

  1. Conecta ao locatário do Microsoft Entra para a assinatura selecionada.
  2. Cria um aplicativo no Microsoft 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, você deve ser adicionado ao grupo Criador de Ponto de Extremidade nas configurações do projeto: Configurações do projeto>Conexões de serviço>Segurança. Os colaboradores são adicionados a esse grupo por padrão.

Cenários de solução de problemas

Os seguintes problemas podem ocorrer ao criar conexões de serviço:

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

  1. Entre no portal do Azure usando 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 correspondente à assinatura do usuário. Caso contrário, selecione Alternar diretório e faça login usando 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 preparado para conceder permissões de nível de administrador ao usuário, poderá tornar o usuário um membro da função Administrador. Execute 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 usando 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 correspondente à assinatura do usuário. Caso contrário, selecione Alternar diretório e faça login usando as credenciais apropriadas, se necessário.

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

  5. Use a caixa de pesquisa para procurar pelo usuário que você quer 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

Você deve ter permissões para adicionar aplicativos integrados ao diretório. O administrador do diretório tem permissões para alterar essa configuração.

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

  2. Verifique se você está editando o diretório apropriado correspondente à assinatura do usuário. Caso contrário, selecione Alternar diretório e faça login usando as credenciais apropriadas, se necessário.

  3. Selecione Usuários e escolha Configurações do usuário.

  4. Em Registros de aplicativo, altere a opção Usuários podem registrar aplicativos 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 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 a sessão expirou. Para resolver esses problemas:

  1. Saia do Azure DevOps.
  2. Abra uma janela anônima do navegador ou em modo Anônimo e navegue até o Azure DevOps.
  3. Entre usando as credenciais apropriadas.
  4. Selecione sua organização e seu projeto.
  5. 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 na assinatura do 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

  • 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:

    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 estiver listada quando você criar uma conexão de serviço do ARM (Azure Resource Manager), pode ser 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.

Algumas assinaturas estão ausentes na lista de assinaturas

  • Alterar as configurações dos tipos de conta de suporte: esse problema pode ser corrigido alterando as configurações de tipos de conta com suporte e definindo quem pode usar seu aplicativo. Execute as seguintes 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.

    1. Selecione Microsoft Entra ID no painel esquerdo.
    2. Selecione Registros do Aplicativo.
    3. Selecione seu aplicativo na lista de aplicativos registrados.
    4. Em Autenticação, selecione Tipos de conta com suporte.
    5. 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.

    1. Selecione Salvar ao terminar.
  • Token de usuário antigo armazenado em cache no Azure DevOps Services: se sua assinatura do Azure não estiver listada quando você criar uma conexão de serviço do ARM (Azure Resource Manager), pode ser 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.

Token da entidade de serviço expirado

Um problema que geralmente surge com entidades de serviço criadas automaticamente é que o token da entidade de serviço expira e precisa ser renovado. No entanto, se você tiver um problema com a atualização do token, confira O 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 para uma entidade de serviço criada automaticamente:

  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 selecione Verificar.

  3. Selecione Salvar.

O token da entidade de serviço 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 executa a operação tem permissões adequadas na assinatura e na 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 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

    Selecione Salvar. Não tente verificar a conexão de serviço nesta etapa.

  4. Saia da janela de edição de conexão de serviço e atualize a página de conexões de serviço.

  5. Selecione Editar no canto superior direito e selecione Verificar.

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

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 uma SPA (Autenticação de Entidade de Serviço) ou autenticação de 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ê pode usar essa identidade para autenticar qualquer serviço que dê suporte à autenticação do Microsoft Entra, sem credenciais persistentes no código ou na conexão do serviço.

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

Observação

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 a identidade gerenciada para essa VM.