Compartilhar via


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

Serviços do Azure DevOps

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 substituição completa prevista para 2026.

Como o OAuth 2.0 funciona com o Azure DevOps

Observação

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

O Azure DevOps Services usa o protocolo OAuth 2.0 para autorizar aplicativos e gerar tokens de acesso para chamadas à API REST. O processo envolve as seguintes etapas:

  • Registro de aplicativo: registre seu aplicativo com o provedor 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 à 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 do registro do aplicativo para o acesso à API.

Opções de implementação do OAuth

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

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

  • Integração empresarial: integração perfeita com a infraestrutura existente do Microsoft Entra ID.
  • Segurança aprimorada: os recursos de segurança avançados incluem o Acesso Condicional do Microsoft Entra e a autenticação multifator.
  • Suporte futuro: plataforma ativamente mantida e com suporte.
  • Identidade unificada: experiência de logon único nos serviços da Microsoft.

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

OAuth do Azure DevOps (preterido)

Aviso

O OAuth do Azure DevOps foi preterido. Novos registros de aplicativo não são mais aceitos a partir de abril de 2025. O serviço está agendado para substituição completa em 2026. Migrar 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 mais cedo. O guia de migração fornece dicas e considerações para uma transição suave.

Escopos do OAuth

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

Considerações de escopo chave

  • Princípio de privilégio mínimo: 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 somente pontos de extremidade do Git (NÃO há suporte para APIs SOAP).
  • Consentimento do usuário: os usuários devem conceder permissão explicitamente para cada escopo solicitado.

Localizar 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.
  • Busque o scopes cabeçalho em cada página da API.
  • Para evitar a solicitação de permissões redundantes, considere as relações de escopo.

Escopos disponíveis

Categoria Scope Nome Privilégio alto Descrição Herda de
Segurança avançada vso.advsec Segurança avançada (leitura) 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 gravação) Sim Concede a capacidade de carregar análises no serif. vso.advsec
vso.advsec_manage Segurança avançada (leitura, gravação e gerenciamento) Sim Concede a capacidade de carregar análises no serif. vso.advsec_write
Pools de agentes vso.agentpools Pools de agentes (leitura) Concede a capacidade de visualizar tarefas, pools, filas, agentes e trabalhos em execução ou concluídos recentemente para agentes.
vso.agentpools_manage Pools de agentes (ler e gerenciar) Sim Concede a capacidade de gerenciar pools, filas e agentes. vso.agentpools
vso.environment_manage Ambiente (ler e gerenciar) Sim Concede a capacidade de gerenciar pools, filas, agentes e ambientes. vso.agentpools_manage
Análises de dados vso.analytics Análise (leitura Concede a capacidade de consultar dados de análise.
Auditing vso.auditlog Log de auditoria (leitura) Concede a capacidade de ler o log de auditoria aos usuários.
vso.auditstreams_manage Fluxos de auditoria (leitura) Sim Concede a capacidade de gerenciar fluxos de auditoria aos usuários. vso.auditlog
Construir vso.build Build (leitura) 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 hooks de serviço. vso.hooks_write
vso.build_execute Build (leitura e execução) Sim Concede a capacidade de acessar artefatos de build, incluindo resultados de build, definições e solicitações. Também concede a capacidade de enfileirar um build, atualizar propriedades de build e receber notificações sobre eventos de build por meio de ganchos de serviço. vso.build
Code vso.code Código (leitura) 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 possibilidade de pesquisar código e receber notificações sobre eventos de controle de versão por meio de ganchos de serviço. vso.hooks_write
vso.code_write Código (ler e escrever) Sim Concede a capacidade de ler, atualizar e excluir o código-fonte e acessar metadados sobre commits, conjuntos de alterações, branches e outros artefatos de controle de versão. Também concede a capacidade de criar e gerenciar solicitações de 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 (leitura, gravação e gerenciamento) 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 de 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 de 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 do cliente. vso.code_manage
vso.code_status Código (status) Concede a capacidade de ler e gravar status de confirmação e solicitação de pull.
Servidor conectado vso.connected_server Servidor conectado Garante a capacidade de acessar os endpoints necessários de um servidor local conectado.
Direitos vso.entitlements Direitos (leitura) Concede acesso somente leitura a pontos de extremidade de direitos de licenciamento para obter direitos de conta.
vso.memberentitlementmanagement Gerenciamento de direitos de membro (leitura) Concede a capacidade de ler usuários, suas licenças e os projetos e extensões que eles podem acessar.
vso.memberentitlementmanagement_write Gerenciamento de direitos de membro (gravação) 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 (leitura) Concede a capacidade de ler extensões instaladas. vso.profile
vso.extension_manage Extensões (leitura e gerenciamento) Sim Concede a capacidade de instalar, desinstalar e executar outras ações administrativas em extensões instaladas. vso.extension
vso.extension.data Dados de extensão (leitura) Concede a capacidade de ler dados (configurações e documentos) armazenados por 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 por extensões instaladas. vso.extension.data
Conexões do GitHub vso.githubconnections Conexões do GitHub (leitura) Concede a capacidade de ler conexões do GitHub e dados de repositórios do GitHub.
vso.githubconnections_manage Conexões do 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
Grafo e identidade vso.graph Gráfico (leitura) Concede a capacidade de ler informações de usuário, grupo, escopo e associação de grupo.
vso.graph_manage Gráfico (gerenciamento) 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 (leitura) Concede a capacidade de ler identidades e grupos.
vso.identity_manage Identidade (gerenciar) Sim Concede a capacidade de ler, gravar e gerenciar identidades e grupos. vso.identity
Grupo de computadores vso.machinegroup_manage Grupo de implantação (leitura, gerenciamento) Sim Concede a capacidade de gerenciar grupos de implantação e pools de agentes. vso.agentpools_manage
Marketplace vso.gallery Marketplace Concede acesso de leitura a itens públicos e privados e a editores. vso.profile
vso.gallery_acquire Marketplace (aquisição) Concede acesso de leitura e permite adquirir itens. vso.gallery
vso.gallery_publish Marketplace (publicação) 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 gerenciar itens e editores. vso.gallery_publish
Notifications vso.notification Notificações (lidas) Concede acesso de leitura a assinaturas e metadados de evento, incluindo valores de campo filtrados. vso.profile
vso.notification_write Notificações (escrita) Concede acesso de leitura e gravação a assinaturas e acesso de leitura a metadados de evento, incluindo valores de campo filtrados. 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 evento, incluindo valores de campo filtrados. vso.notification_write
vso.notification_diagnostics Notificações (diagnóstico) Concede acesso aos logs de diagnóstico relacionados à notificação e concede a capacidade de habilitar o diagnóstico para assinaturas individuais. vso.notification
Empacotamento vso.packaging Empacotamento (leitura) Concede a capacidade de ler feeds e pacotes. vso.profile
vso.packaging_write Empacotamento (leitura e gravação) Sim Permite a capacidade de criar e ler feeds e pacotes. vso.packaging
vso.packaging_manage Empacotamento (leitura, gravação e gerenciamento) Sim Concede a capacidade de criar, ler, atualizar e excluir feeds e pacotes. vso.packaging_write
Recursos de pipeline 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 equipe vso.project Projeto e equipe (resumo) Concede a capacidade de ler projetos e equipes.
vso.project_write Projeto e equipe (leitura e escrita) Concede a capacidade de ler e atualizar projetos e equipes. vso.project
vso.project_manage Projeto e equipe (ler, gravar e gerenciar) Sim Concede a capacidade de criar, ler, atualizar e excluir projetos e equipes. vso.project_write
Liberação vso.release Liberar (leitura) Concede a capacidade de ler artefatos de versão, incluindo versões, definições de versão e ambiente de versão. vso.profile
vso.release_execute Versão (leitura, gravação e execução) 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 Versão (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 fazer fila e aprovar uma nova versão. vso.release_execute
Arquivos seguros vso.securefiles_read Arquivos seguros (leitura) Sim Concede a capacidade de ler arquivos seguros.
vso.securefiles_write Proteger arquivos (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, gravar e gerenciar permissões de segurança.
Conexões de serviço vso.serviceendpoint Pontos de extremidade de serviço (leitura) Permite a leitura de pontos de extremidade de serviço. vso.profile
vso.serviceendpoint_query Pontos de extremidade de serviço (leitura e consulta) Concede a capacidade de ler e consultar pontos de extremidade 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 gerenciar pontos de extremidade de serviço. vso.serviceendpoint_query
Ganchos de serviço vso.hooks Hooks de serviço (leitura) Concede a capacidade de ler assinaturas e metadados de hooks de serviço, incluindo eventos, consumidores e ações compatíveis. (Não é mais público.) vso.profile
vso.hooks_write Hooks de serviço (leitura e gravação) Concede a capacidade de criar e atualizar assinaturas de hooks de serviço e ler metadados, incluindo eventos, consumidores e ações compatíveis. (Não é mais público.) vso.hooks
vso.hooks_interact Hooks de serviço (interação) Concede a capacidade de interagir e executar ações em eventos recebidos por meio de hooks 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 gravar configurações. vso.settings
Símbolos vso.symbols Símbolos (leitura) Concede a capacidade de ler símbolos. vso.profile
vso.symbols_write Símbolos (leitura e gravação) Concede a capacidade de ler e escrever símbolos. vso.symbols
vso.symbols_manage Símbolos (ler, gravar e gerenciar) Concede a capacidade de ler, escrever e gerenciar símbolos. vso.symbols_write
Grupos de tarefas vso.taskgroups_read Grupos de tarefas (leitura) Concede 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 de equipe vso.dashboards Painéis de equipe (leitura) Concede a permissão para ler informações do painel da equipe.
vso.dashboards_manage Painéis de equipe (gerenciar) Concede a capacidade de gerenciar informações do painel da equipe. vso.dashboards
Gerenciamento de teste vso.test Gerenciamento de testes (leitura) Concede a capacidade de ler planos de teste, casos, resultados e outros artefatos relacionados ao gerenciamento de teste. vso.profile
vso.test_write Gerenciamento de testes (leitura e gravação) Concede a capacidade de ler, criar e atualizar planos de teste, casos, resultados e outros artefatos relacionados ao gerenciamento de teste. vso.test
Threads vso.threads_full Threads de PR Concede a capacidade de ler e escrever em tópicos de comentários de solicitação de pull.
Tokens vso.tokens Tokens de autorização delegados Sim Concede a capacidade de gerenciar tokens de autorização delegada aos usuários.
vso.tokenadministration Administração de token Sim Concede a capacidade de gerenciar (visualizar e revogar) tokens existentes aos administradores da organização.
Perfil do usuário vso.profile Perfil do usuário (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 do usuário (escrever) Concede a capacidade de escrever em seu perfil. vso.profile
Grupos de variáveis vso.variablegroups_read Grupos de variáveis (leitura) 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
Wiki vso.wiki Wiki (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, placas, caminhos de área e iterações e outros metadados relacionados ao acompanhamento de itens 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 (leitura e gravação) Concede a capacidade de ler, criar e atualizar itens de trabalho e consultas, atualizar metadados do quadro, ler caminhos de área e iterações e outros metadados relacionados ao acompanhamento 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 acompanhamento de item 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 consenta esse escopo com cuidado porque ele é muito poderoso.

Perguntas frequentes

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

A. Não. O Azure DevOps Services dá suporte apenas ao fluxo do servidor Web (fluxo de código de autorização), que requer o armazenamento seguro de um segredo do aplicativo. 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 do Azure DevOps?

A. O OAuth dá suporte a APIs REST e seleciona apenas pontos de extremidade git. As APIs SOAP não dão suporte à autenticação OAuth.

Q. Como fazer para migrar do OAuth do Azure DevOps 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 substituição.

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

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

Escolha seu caminho de implementação