Compartilhar via


Métodos de autenticação para Azure DevOps

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

Este artigo descreve os métodos de autenticação para Azure DevOps integração e ajuda você a escolher a melhor opção para seu cenário. Abordagens de autenticação modernas como Microsoft Entra ID fornecem segurança aprimorada e são a melhor abordagem para novos aplicativos.

Utilize a autenticação do Microsoft Entra ID para novos aplicativos integrados com o Azure DevOps Services. Use tokens de acesso pessoal com moderação e somente quando Microsoft Entra ID não estiver disponível.

Importante

Considere usar os tokens Microsoft Entra mais seguros ao invés de tokens de acesso pessoais de maior risco. Para obter mais informações, consulte Reduzir o uso do PAT. Examine as diretrizes de autenticação para escolher o mecanismo de autenticação correto para suas necessidades.

A autenticação OAuth 2.0 e Microsoft Entra ID estão disponíveis apenas para serviços de Azure DevOps, não Azure DevOps Server.

Para cenários locais, use bibliotecas de cliente .NET, autenticação do Windows ou tokens de acesso pessoal.

Dica

Você pode usar a IA para ajudar nessa tarefa mais adiante neste artigo ou ver Habilitar assistência de IA com Azure DevOps MCP Server para dar início.

Métodos de autenticação por cenário

Escolha o método de autenticação apropriado com base no tipo de aplicativo e nos requisitos.

Tipo de aplicativo Descrição Exemplo Método recomendado Exemplos de código
Aplicativos Web/desktop Aplicativos interativos usando estruturas atuais Aplicativo React, aplicativo .NET para desktop Microsoft Entra OAuth com o Biblioteca do Microsoft Authenticator (MSAL) Aplicativo de console gerenciado do cliente
Aplicativos de serviço/segundo plano Aplicativos em execução sem interação do usuário Azure Functions, serviços em segundo plano Entidades de serviço e identidades gerenciadas Entidades de serviço
Aplicativos cliente herdados Aplicativos existentes usando bibliotecas de cliente Aplicativos de console com bibliotecas de Azure DevOps .NET bibliotecas de cliente .NET com OAuth aplicativo de console da biblioteca cliente
Aplicativos sem interface gráfica/CLI Ferramentas de linha de comando nãointerativas Criar scripts, ferramentas de automação Fluxo de concessão de autorização do dispositivo Device profile
extensões de Azure DevOps Extensões em execução no Azure DevOps Widgets de painel de controle personalizados e formulários de tarefa SDK de extensão Web do Azure DevOps Adicionar um widget de painel
Azure DevOps Server aplicações Integrações de Azure DevOps Server locais Extensões de servidor personalizadas Bibliotecas de cliente .NET ou autenticação do Windows aplicativo de console da biblioteca Client
Scripts pessoais e ad hoc Scripts rápidos para uso pessoal Scripts do PowerShell, comandos de curl Tokens de acesso pessoal Introdução às APIs REST
Azure Pipelines Acessar Azure DevOps a partir do pipeline Consumir artefatos de uma organização diferente conexão de serviço Azure DevOps Adicione uma conexão de serviço do Azure DevOps Microsoft Entra

Sugestões para começar

As seções a seguir fornecem recomendações para introdução em cenários diferentes.

Novos aplicativos

  • Crie integrações do Azure DevOps com aplicativos OAuth do Microsoft Entra para obter a melhor segurança e compatibilidade futura.
  • Use entidades de serviço ou identidades gerenciadas para cenários de serviço a serviço.
  • Evite tokens de acesso pessoal em aplicativos de produção.

Aplicativos existentes

  • Planeje a migração de tokens de acesso pessoal para a autenticação do Microsoft Entra ID.
  • Considere o cronograma de migração de autenticação para melhorias no Azure DevOps e a redução do uso de tokens de acesso pessoal.
  • Examine sua abordagem de autenticação atual em relação às práticas recomendadas de segurança.

Azure DevOps Server

  • Use bibliotecas de cliente .NET com a Autenticação Windows quando possível.
  • Use tokens de acesso pessoal para cenários de Azure DevOps Server quando forem aceitáveis.
  • Planeje a migração futura dos Serviços de Azure DevOps para aproveitar a autenticação moderna.

Perguntas frequentes (FAQ)

Devo usar Microsoft Entra ID OAuth ou tokens de acesso pessoal?

Use Microsoft Entra ID OAuth nos seguintes cenários:

  • Novos aplicativos e integrações.
  • Cargas de trabalho de produção que exigem segurança robusta.
  • Aplicativos que precisam de integração de identidade empresarial.
  • Projetos de longo prazo com requisitos de conformidade.

Use tokens de acesso pessoal somente nos seguintes cenários:

  • Scripts pessoais e tarefas ad hoc.
  • Aplicativos herdados durante o planejamento de migração.
  • Cenários em que a autenticação moderna não está disponível no Azure DevOps Server.

Devo usar princípios de serviço ou delegação de usuário para autenticação?

Use entidades de serviço ou identidades gerenciadas nos seguintes cenários:

  • Crie aplicativos que operam de forma independente (serviços em segundo plano, automação).
  • Crie aplicativos que não exigem interação do usuário.
  • Implemente a comunicação entre serviços.
  • Crie pipelines de CI/CD (integração contínua e entrega contínua) ou fluxos de trabalho automatizados.

Use a delegação de usuário (OAuth com consentimento do usuário) nos seguintes cenários:

  • Crie aplicativos que atuem para usuários humanos.
  • Crie aplicativos interativos em que os usuários entrem com suas próprias credenciais.
  • Implementar recursos que exigem permissões específicas do usuário.
  • Crie aplicativos que respeitem os direitos de acesso individuais dos usuários.

Como fazer para autenticar com Azure DevOps Services e Azure DevOps Server?

Crie caminhos de autenticação separados para cada serviço:

  • Azure DevOps Services: use Microsoft Entra ID OAuth.
  • Azure DevOps Server: Use bibliotecas de cliente .NET com Autenticação do Windows ou tokens de acesso pessoal.

Use o requestContext método para detectar o tipo de serviço e aplicar o método de autenticação apropriado.

Por que minha conta de serviço não pode acessar Azure DevOps APIs?

Aqui estão alguns problemas comuns que afetam o acesso à conta de serviço:

  • Conta de serviço não "materializada": use o método de entrada correto. As contas de serviço precisam de permissões de entrada interativas ou registro de Microsoft Entra ID adequado.
  • Insufficient permissions: verifique se a conta de serviço tem permissões de Azure DevOps apropriadas.
  • Método de autenticação: use entidades de serviço ou identidades gerenciadas em vez de tentar se autenticar como uma conta de serviço.

Como fazer para migrar de tokens de acesso pessoal para a autenticação moderna?

Siga estas etapas:

  1. Identifique o uso atual do token de acesso pessoal em seus aplicativos.

  2. Escolha um método de autenticação alternativo:

    • Microsoft Entra ID OAuth para cenários de delegação de usuário
    • Entidades de serviço para cenários de serviço a serviço
    • conexão de serviço Azure DevOps
  3. Atualize o código de autenticação utilizando os exemplos de autenticação para migração no Azure DevOps.

  4. Teste as alterações minuciosamente antes de remover as dependências do token de acesso pessoal.

  5. Monitore e valide o novo método de autenticação.

Por que não devo decodificar ou ler declarações de tokens de autenticação?

Os tokens de autenticação existem apenas para provar quem é o chamador e o que eles estão autorizados a fazer. Eles não são uma interface de dados estável ou um esquema do qual você pode depender.

As declarações de token nunca são documentadas publicamente e Azure DevOps se reserva o direito de alterar, renomear, remover ou criptografá-las a qualquer momento sem aviso prévio. A partir do verão de 2025, Azure DevOps está criptografando ainda mais os tokens de autenticação, o que significa que os clientes não podem ler cargas de token. Qualquer aplicativo que decodifica tokens para extrair declarações falha.

Em vez de ler declarações de token, siga estas práticas:

  • Trate os tokens como opacos, passe-os em cabeçalhos de autorização, mas não os decodifique ou inspecione.
  • Use APIs REST suportadas — recupere dados de usuário ou de organização das REST APIs do Azure DevOps, que fornecem contratos estáveis e documentação.
  • Suponha que qualquer declaração possa ser alterada : se você se encontrar analisando o conteúdo do token para ler valores, coloque essa lógica em uma chamada à API.

Essas alterações não afetam aplicativos que já tratam tokens como opacos.

Procedimentos de implementação

Depois de escolher o método de autenticação para seu cenário, conclua as etapas de implementação:

Usar a IA para escolher um método de autenticação

Se você conectar o servidor MCP Azure DevOps ao agente de IA no modo de agente, poderá usar prompts de linguagem natural para obter recomendações de autenticação para seu cenário.

Tarefa Prompt de exemplo
Escolher autenticação para um serviço em segundo plano Which authentication method should I use for a background Azure Function that needs to access Azure DevOps APIs?
Comparar opções de autenticação Help me choose between service principals, managed identities, and personal access tokens for my Azure DevOps integration
Autenticação para um aplicativo Web I'm building a React web app that needs to access Azure DevOps on behalf of signed-in users — what authentication approach should I use?
Migrar de PATs Help me plan a migration from personal access tokens to Microsoft Entra ID authentication for my Azure DevOps integrations
Autenticação para CI/CD What's the most secure way to authenticate Azure DevOps REST API calls from a GitHub Actions workflow?
Solucionar problemas de falhas de autenticação I'm getting 401 errors when calling the Azure DevOps REST API with my token — help me diagnose the issue

Observação

O modo de agente e o servidor MCP usam linguagem natural, para que você possa ajustar esses prompts ou fazer perguntas de acompanhamento para refinar os resultados.