Partilhar via


Autenticação OAuth 2.0 para APIs REST do Azure DevOps

Serviços de DevOps do Azure

Saiba como usar o OAuth 2.0 para autenticar seus aplicativos para acesso à API REST do Azure DevOps sem exigir que os usuários forneçam credenciais repetidamente.

Importante

Recomendamos que você use o Microsoft Entra ID OAuth para novos aplicativos. O Azure DevOps OAuth 2.0 foi preterido e não aceita mais novos registros a partir de abril de 2025, com a descontinuação total planejada para 2026.

Como o OAuth 2.0 funciona com o Azure DevOps

Nota

O OAuth 2.0 está disponível apenas para os Serviços de DevOps do Azure, não para o Servidor de DevOps do Azure. Para cenários locais, use bibliotecas de cliente, autenticação do Windows ou tokens de acesso pessoal.

Os Serviços de DevOps do Azure usam o protocolo OAuth 2.0 para autorizar aplicativos e gerar tokens de acesso para chamadas de API REST. O processo envolve as seguintes etapas:

  • Registo da aplicação: Registe a sua candidatura junto do fornecedor OAuth.
  • Autorização do usuário: conceda permissão para que seu aplicativo acesse os dados do usuário.
  • Troca de tokens: receba um token de acesso para fazer chamadas de API.
  • Acesso à API: use o token para solicitações de API REST autenticadas.
  • Atualização de token: atualize tokens expirados para manter o acesso.

Diagrama que mostra o processo de fluxo de autorização do OAuth 2.0 desde o registro do aplicativo até o acesso à API.

Opções de implementação do OAuth

Escolha a implementação OAuth apropriada com base nas necessidades do seu aplicativo.

O Microsoft Entra ID OAuth fornece o método de autenticação mais seguro e preparado para o futuro para aplicativos de DevOps do Azure. Os benefícios incluem:

  • Integração empresarial: integração perfeita com a infraestrutura existente do Microsoft Entra ID.
  • Segurança reforçada: As funcionalidades de segurança avançadas incluem o Acesso Condicional Microsoft Entra e a autenticação multifator.
  • Suporte futuro: Plataforma mantida e suportada ativamente.
  • Identidade unificada: experiência de logon único nos serviços da Microsoft.

Primeiros passos: Siga nosso guia OAuth do Microsoft Entra ID para obter detalhes de implementação e orientação de migração.

Azure DevOps OAuth (preterido)

Advertência

O Azure DevOps OAuth foi preterido. Novos registros de aplicativos não serão mais aceitos a partir de abril de 2025. O serviço está programado para ser totalmente desativado em 2026. Migre aplicativos existentes para o Microsoft Entra ID OAuth.

Para aplicativos OAuth do Azure DevOps existentes:

Planejamento de migração: comece a planejar sua migração para o Microsoft Entra ID OAuth com antecedência. O Guia de migração fornece dicas e considerações para uma transição suave.

Escopos OAuth

Os escopos definem quais recursos do Azure DevOps seu aplicativo pode acessar. O Microsoft Entra ID OAuth e o Azure DevOps OAuth usam as mesmas definições de escopo.

Principais considerações sobre o âmbito

  • Princípio do menor privilégio: solicite apenas os escopos mínimos de que seu aplicativo precisa.
  • Herança de escopo: alguns escopos incluem outros (por exemplo, vso.code_manage inclui vso.code_write).
  • Cobertura da API: os escopos permitem o acesso às APIs REST e selecionam apenas pontos de extremidade Git (APIs SOAP não suportadas).
  • Consentimento do usuário: os usuários devem conceder permissão explicitamente para cada escopo solicitado.

Encontrar escopos necessários

Para determinar quais escopos seu aplicativo precisa:

  • Verifique a documentação de referência da API para cada ponto de extremidade que você planeja usar.
  • Procure o cabeçalho scopes em cada página da API.
  • Para evitar solicitar permissões redundantes, considere relações de escopo.

Escopos disponíveis

Categoria Âmbito Nome Alto privilégio Descrição Herda de
Segurança avançada vso.advsec Segurança avançada (ler) Sim Concede a capacidade de ler alertas, instâncias de resultados e instâncias de resultados de análise.
vso.advsec_write Segurança avançada (leitura e escrita) Sim Concede a capacidade de carregar análises em serif. vso.advsec
vso.advsec_manage Segurança avançada (leitura, gravação e gerenciamento) Sim Concede a capacidade de carregar análises em serif. vso.advsec_write
Pools de agentes vso.agentpools Pools de agentes (ler) Permite exibir tarefas, pools, filas, agentes e trabalhos atualmente em execução ou recentemente concluídos para os agentes.
vso.agentpools_manage Pools de agentes (ler e gerenciar) Sim Permite gerir pools, filas e agentes. vso.agentpools
vso.environment_manage Ambiente (ler e gerenciar) Sim Permite gerir pools, filas, agentes e ambientes. vso.agentpools_manage
Analytics vso.analytics Analítica (leitura) Concede a capacidade de consultar dados de análise.
Auditing vso.auditlog Log de auditoria (ler) Concede a capacidade de ler o log de auditoria aos usuários.
vso.auditstreams_manage Fluxos de auditoria (ler) Sim Concede aos usuários a capacidade de gerenciar fluxos de auditoria. vso.auditlog
Construir vso.build Construir (ler) Concede a capacidade de acessar artefatos de compilação, incluindo resultados de compilação, definições e solicitações, e a capacidade de receber notificações sobre eventos de compilação por meio de ganchos de serviço. vso.hooks_write
vso.build_execute Construir (ler e executar) Sim Concede a capacidade de acessar artefatos de compilação, incluindo resultados de compilação, definições e solicitações. Também concede a capacidade de enfileirar uma compilação, atualizar propriedades de compilação e receber notificações sobre eventos de compilação por meio de ganchos de serviço. vso.build
Código vso.code Código (lido) Concede a capacidade de ler código-fonte e metadados sobre confirmações, conjuntos de alterações, ramificações e outros artefatos de controle de versão. Também oferece a capacidade de pesquisar código e receber notificações sobre eventos de controlo de versão através de hooks de serviço. vso.hooks_write
vso.code_write Código (ler e gravar) Sim Concede a capacidade de ler, atualizar e excluir código-fonte e acessar metadados sobre confirmações, conjuntos de alterações, ramificações e outros artefatos de controle de versão. Também concede a capacidade de criar e gerenciar solicitações pull e revisões de código e receber notificações sobre eventos de controle de versão por meio de ganchos de serviço. vso.code
vso.code_manage Código (ler, escrever e gerir) Sim Concede a capacidade de ler, atualizar e excluir código-fonte, acessar metadados sobre confirmações, conjuntos de alterações, ramificações e outros artefatos de controle de versão. Também concede a capacidade de criar e gerenciar repositórios de código, criar e gerenciar solicitações pull e revisões de código, e receber notificações sobre eventos de controle de versão por meio de ganchos de serviço. vso.code_write
vso.code_full Código (completo) Sim Concede acesso total ao código-fonte, metadados sobre confirmações, conjuntos de alterações, ramificações e outros artefatos de controle de versão. Também concede a capacidade de criar e gerenciar repositórios de código, criar e gerenciar solicitações pull e revisões de código e receber notificações sobre eventos de controle de versão por meio de ganchos de serviço. Também inclui suporte limitado para APIs OM de cliente. vso.code_manage
vso.code_status Código (estado) Concede a capacidade de ler e escrever o status de confirmação e solicitação de recebimento.
Servidor conectado vso.connected_server Servidor conectado Concede a capacidade de aceder aos endpoints necessários a partir de um servidor ligado localmente.
Elegibilidades vso.entitlements Direitos (ler-se) Concede acesso somente leitura aos pontos de extremidade de direitos de licenciamento para obter direitos de conta.
vso.memberentitlementmanagement Gestão dos direitos dos membros (ler) Concede a capacidade de ler usuários, suas licenças e os projetos e extensões que eles podem acessar.
vso.memberentitlementmanagement_write Gestão de direitos de membro (escrita) Sim Concede a capacidade de gerenciar usuários e suas licenças e os projetos e extensões que eles podem acessar. vso.memberentitlementmanagement
Extensions vso.extension Extensões (ler) Concede a capacidade de ler extensões instaladas. vso.profile
vso.extension_manage Extensões (ler e gerir) Sim Concede a capacidade de instalar, desinstalar e executar outras ações administrativas em extensões instaladas. vso.extension
vso.extension.data Dados de leitura da extensão Concede a capacidade de ler dados (configurações e documentos) armazenados pelas extensões instaladas. vso.profile
vso.extension.data_write Dados de extensão (leitura e gravação) Concede a capacidade de ler e gravar dados (configurações e documentos) armazenados pelas extensões instaladas. vso.extension.data
Conexões do GitHub vso.githubconnections Conexões GitHub (ler) Concede a capacidade de ler conexões do GitHub e dados de repositórios do GitHub.
vso.githubconnections_manage Conexões GitHub (ler e gerenciar) Sim Concede a capacidade de ler e gerenciar conexões do GitHub e dados de repositórios do GitHub. vso.githubconnections
Gráfico e identidade vso.graph Gráfico (ler) Permite a leitura de informações sobre utilizadores, grupos, âmbito e filiação a grupos.
vso.graph_manage Gráfico (gerenciar) Sim Concede a capacidade de ler informações de usuário, grupo, escopo e associação de grupo, adicionar usuários e grupos e gerenciar associações de grupo. vso.graph
vso.identity Identidade (ler) Concede a capacidade de ler identidades e grupos.
vso.identity_manage Identidade (gerenciar) Sim Concede a capacidade de ler, escrever e gerenciar identidades e grupos. vso.identity
Grupo de máquinas vso.machinegroup_manage Grupo de implantação (ler, gerir) Sim Concede a capacidade de gerenciar grupos de implantação e pools de agentes. vso.agentpools_manage
Marketplace vso.gallery Marketplace Concede-se acesso de leitura a itens públicos e privados e a publicadores. vso.profile
vso.gallery_acquire Marketplace (adquirir) Concede acesso de leitura e permite adquirir itens. vso.gallery
vso.gallery_publish Marketplace (publicar) Sim Concede acesso de leitura e a capacidade de carregar, atualizar e compartilhar itens. vso.gallery
vso.gallery_manage Marketplace (gerenciar) Sim Concede acesso de leitura e a capacidade de publicar e gerir itens e publicadores. vso.gallery_publish
Notifications vso.notification Notificações (lidas) Concede acesso de leitura a assinaturas e metadados de eventos, incluindo valores de campo filtráveis. vso.profile
vso.notification_write Notificações (escrever) Concede acesso de leitura e gravação a assinaturas e acesso de leitura a metadados de eventos, incluindo valores de campo filtráveis. vso.notification
vso.notification_manage Notificações (gerenciar) Concede acesso de leitura, gravação e gerenciamento a assinaturas e acesso de leitura a metadados de eventos, incluindo valores de campo filtráveis. vso.notification_write
vso.notification_diagnostics Notificações (diagnóstico) Concede acesso a logs de diagnóstico relacionados a notificações e concede a capacidade de habilitar diagnósticos para assinaturas individuais. vso.notification
Embalagem vso.packaging Embalagem (leia) Permite a capacidade de ler feeds e pacotes. vso.profile
vso.packaging_write Embalagem (leitura e escrita) Sim Oferece a capacidade de criar e ler feeds e pacotes. vso.packaging
vso.packaging_manage Embalagem (leitura, escrita e gestão) Sim Concede a capacidade de criar, ler, atualizar e excluir feeds e pacotes. vso.packaging_write
Recursos de Canalização vso.pipelineresources_use Recursos de pipeline (uso) Sim Concede a capacidade de aprovar a solicitação de um pipeline para usar um recurso protegido: pool de agentes, ambiente, fila, repositório, arquivos seguros, conexão de serviço e grupo de variáveis.
vso.pipelineresources_manage Recursos de pipeline (usar e gerenciar) Sim Concede a capacidade de gerenciar um recurso protegido ou a solicitação de um pipeline para usar um recurso protegido: pool de agentes, ambiente, fila, repositório, arquivos seguros, conexão de serviço e grupo de variáveis. vso.pipelineresources_use
Projeto e equipa vso.project O projeto e a equipa (ler) Concede a capacidade de ler projetos e equipes.
vso.project_write Projeto e equipa (leitura e escrita) Concede a capacidade de ler e atualizar projetos e equipes. vso.project
vso.project_manage Projeto e equipe (ler, escrever e gerenciar) Sim Concede a capacidade de criar, ler, atualizar e excluir projetos e equipes. vso.project_write
Release vso.release Divulgação (leitura) Concede a capacidade de ler artefatos de versão, incluindo versões, definições de liberação e ambiente de versão. vso.profile
vso.release_execute Liberar (ler, gravar e executar) Sim Concede a capacidade de ler e atualizar artefatos de versão, incluindo versões, definições de versão e ambiente de versão. Também concede a capacidade de enfileirar uma nova versão. vso.release
vso.release_manage Liberar (ler, gravar, executar e gerenciar) Sim Concede a capacidade de ler, atualizar e excluir artefatos de versão, incluindo versões, definições de versão e ambiente de versão. Também concede a capacidade de enfileirar e aprovar uma nova versão. vso.release_execute
Ficheiros seguros vso.securefiles_read Ficheiros seguros (ler) Sim Concede a capacidade de ler arquivos seguros.
vso.securefiles_write Ficheiros seguros (ler e criar) Sim Concede a capacidade de ler e criar arquivos seguros. vso.securefiles_read
vso.securefiles_manage Proteger arquivos (ler, criar e gerenciar) Sim Concede a capacidade de ler, criar e gerenciar arquivos seguros. vso.securefiles_write
Segurança vso.security_manage Segurança (gerenciar) Sim Concede a capacidade de ler, escrever e gerenciar permissões de segurança.
Ligações de serviço vso.serviceendpoint Pontos de extremidade de serviço (ler) Concede a habilidade de ler endpoints de serviço. vso.profile
vso.serviceendpoint_query Pontos de extremidade de serviço (leitura e consulta) Concede a capacidade de ler e consultar endpoints de serviço. vso.serviceendpoint
vso.serviceendpoint_manage Pontos de extremidade de serviço (ler, consultar e gerenciar) Sim Concede a capacidade de ler, consultar e gerir os endpoints de serviço. vso.serviceendpoint_query
Ganchos de serviço vso.hooks Ganchos de Serviço (Leitura) Permite a leitura de assinaturas e metadados de hooks de serviço, incluindo eventos suportados, consumidores e ações. (Não é mais público.) vso.profile
vso.hooks_write Ganchos de serviço (leitura e gravação) Concede a capacidade de criar e atualizar assinaturas de gancho de serviço e ler metadados, incluindo eventos, consumidores e ações suportados. (Não é mais público.) vso.hooks
vso.hooks_interact Ganchos de serviço (interacção) Concede a capacidade de interagir e executar ações em eventos recebidos por meio de triggers de serviço. (Não é mais público.) vso.profile
Configurações vso.settings Configurações (leitura) Concede a capacidade de ler configurações.
vso.settings_write Configurações (leitura e gravação) Concede a capacidade de ler e escrever configurações. vso.settings
Symbols vso.symbols Símbolos (leitura) Concede a capacidade de ler símbolos. vso.profile
vso.symbols_write Símbolos (leitura e escrita) Concede a capacidade de ler e escrever símbolos. vso.symbols
vso.symbols_manage Símbolos (ler, escrever e gerir) Concede a capacidade de ler, escrever e gerenciar símbolos. vso.symbols_write
Grupos de tarefas vso.taskgroups_read Grupos de tarefas (ler) Permite a capacidade de ler grupos de tarefas.
vso.taskgroups_write Grupos de tarefas (ler e criar) Concede a capacidade de ler e criar grupos de tarefas. vso.taskgroups_read
vso.taskgroups_manage Grupos de tarefas (ler, criar e gerenciar) Sim Concede a capacidade de ler, criar e gerenciar grupos de tarefas. vso.taskgroups_write
Painel da equipe vso.dashboards Painéis da equipe (leitura) Concede a capacidade de aceder às informações do painel da equipa.
vso.dashboards_manage Painéis de equipe (gerenciar) Concede a capacidade de gerenciar informações do painel da equipe. vso.dashboards
Gestão de testes vso.test Gestão de testes (somente leitura) Concede a capacidade de ler planos de teste, casos, resultados e outros artefatos relacionados ao gerenciamento de testes. vso.profile
vso.test_write Gestão de testes (leitura e escrita) Concede a capacidade de ler, criar e atualizar planos de teste, casos, resultados e outros artefatos relacionados ao gerenciamento de testes. vso.test
Threads vso.threads_full Tópicos de PR Concede a capacidade de ler e escrever em threads de comentários de pull request.
Tokens vso.tokens Tokens de autorização delegada Sim Concede a capacidade de gerenciar tokens de autorização delegados aos usuários.
vso.tokenadministration Administração de tokens Sim Concede a capacidade de gerenciar (exibir e revogar) tokens existentes aos administradores da organização.
Perfil do utilizador vso.profile Perfil de utilizador (leitura) Concede a capacidade de ler seu perfil, contas, coleções, projetos, equipes e outros artefatos organizacionais de nível superior.
vso.profile_write Perfil de utilizador (escrita) Concede a capacidade de escrever no seu perfil. vso.profile
Grupos de variáveis vso.variablegroups_read Grupos de variáveis (ler) Concede a capacidade de ler grupos de variáveis.
vso.variablegroups_write Grupos de variáveis (ler e criar) Concede a capacidade de ler e criar grupos de variáveis. vso.variablegroups_read
vso.variablegroups_manage Grupos de variáveis (ler, criar e gerenciar) Sim Concede a capacidade de ler, criar e gerenciar grupos de variáveis. vso.variablegroups_write
Plataforma Wiki vso.wiki Wiki (para leitura) Concede a capacidade de ler wikis, páginas wiki e anexos wiki. Também concede a capacidade de pesquisar páginas wiki.
vso.wiki_write Wiki (ler e escrever) Concede a capacidade de ler, criar e atualizar wikis, páginas wiki e anexos wiki. vso.wiki
Itens de trabalho vso.work Itens de trabalho (leitura) Concede a capacidade de ler itens de trabalho, consultas, quadros, caminhos de área e iterações e outros metadados relacionados ao rastreamento de item de trabalho. Também concede a capacidade de executar consultas, pesquisar itens de trabalho e receber notificações sobre eventos de item de trabalho por meio de ganchos de serviço. vso.hooks_write
vso.work_write Itens de trabalho (ler e escrever) Concede a capacidade de ler, criar e atualizar itens de trabalho e consultas, atualizar metadados do quadro, área de leitura e caminhos de iterações e outros metadados relacionados ao rastreamento de item de trabalho, executar consultas e receber notificações sobre eventos de item de trabalho por meio de ganchos de serviço. vso.work
vso.work_full Itens de trabalho (completos) Concede acesso total a itens de trabalho, consultas, listas de pendências, planos e metadados de rastreamento de itens de trabalho. Também concede a capacidade de receber notificações sobre eventos de item de trabalho por meio de ganchos de serviço. vso.work_write
Representação do usuário user_impersonation Representação do usuário Sim Concede acesso total às APIs REST do Visual Studio Team Services. Solicite ou autorize esse escopo com cautela porque ele é muito poderoso.

Perguntas frequentes

Q. Posso usar o OAuth com aplicativos móveis?

A. Não. Os Serviços de DevOps do Azure dão suporte apenas ao fluxo do servidor Web (fluxo de código de autorização), que requer o armazenamento seguro de um segredo de aplicativo. Os aplicativos móveis não podem armazenar segredos com segurança, o que torna o OAuth inadequado para cenários móveis.

Alternativa para aplicativos móveis: use tokens de acesso pessoal para autenticação de aplicativos móveis.

Q. O OAuth funciona com todas as APIs de DevOps do Azure?

A. O OAuth suporta APIs REST e seleciona apenas pontos de extremidade Git. As APIs SOAP não suportam autenticação OAuth.

Q. Como faço para migrar do Azure DevOps OAuth para o Microsoft Entra ID OAuth?

A. Siga o guia de migração do Microsoft Entra ID OAuth, que inclui:

  • Instruções de migração passo a passo.
  • Exemplos de código e práticas recomendadas.
  • Considerações sobre a linha do tempo para a descontinuação.

Q. O que acontece ao meu aplicativo Azure DevOps OAuth existente após 2026?

A. Os aplicativos OAuth existentes do Azure DevOps param de funcionar quando o serviço é totalmente preterido em 2026. Planeje sua migração para o Microsoft Entra ID OAuth bem antes desse prazo.

Escolha o caminho de implementação