Autorizar o acesso a APIs REST com o OAuth 2.0
Azure DevOps Services
Saiba como autenticar os usuários do seu aplicativo Web para acesso à API REST, para que seu aplicativo não continue solicitando nomes de usuário e senhas.
Observação
- As diretrizes a seguir destinam-se a usuários de Azure DevOps Services, pois não há suporte para o OAuth 2.0 em Azure DevOps Server. As Bibliotecas de Clientes são uma série de pacotes criados especificamente para estender Azure DevOps Server funcionalidade. Para usuários locais, recomendamos o uso de Bibliotecas de Clientes, Autenticação do Windows ou PATs (tokens de acesso pessoal) para autenticar em nome de um usuário.
- Para obter mais informações, consulte o exemplo do GitHub do OAuth em C#.
Sobre o OAuth 2.0
Azure DevOps Services usa o protocolo OAuth 2.0 para autorizar seu aplicativo para um usuário e gerar um token de acesso. Use esse token ao chamar as APIs REST do seu aplicativo. Quando você chamar as APIs do Azure DevOps Services do usuário, use o token de acesso desse usuário. Os tokens de acesso expiram, portanto, atualize o token de acesso se expirar.
Modelos OAuth disponíveis
Importante
Ao criar um novo aplicativo OAuth 2.0, use o Microsoft Entra ID OAuth. O Azure DevOps OAuth 2.0 está programado para ser preterido em 2026. A partir de fevereiro de 2025, deixaremos de aceitar novos aplicativos OAuth do Azure DevOps. Saiba mais em nossa postagem no blog.
Microsoft Entra ID OAuth
Construir em uma nova plataforma pode ser esmagador. Neste guia para criar um aplicativo Microsoft Entra para o Azure DevOps, coletamos links úteis que podem ser úteis para iniciar o processo de desenvolvimento de aplicativos OAuth no Microsoft Entra. Para pessoas que migram do OAuth do Azure DevOps para o OAuth do Microsoft Entra, fornecemos dicas úteis a serem consideradas durante o esforço de migração.
Azure DevOps OAuth
Para aplicativos existentes, consulte o guia do aplicativo OAuth do Azure DevOps. Você também pode gerenciar quais aplicativos do Azure DevOps estão autorizados a acessar seus recursos.
Escopos
Espera-se que os desenvolvedores especifiquem quais escopos eles exigem de seus usuários. Os mesmos escopos estão disponíveis em ambos os modelos OAuth. Os escopos a seguir estão disponíveis somente por meio de fluxos delegados (em nome do usuário).
Para descobrir quais escopos você precisa para seu aplicativo, procure no scopes
cabeçalho na página Referência da API para cada API que você está usando.
Alguns escopos podem incluir outros escopos, por exemplo, vso.code_manage
inclui vso.code_write
. Por exemplo, muitos escopos herdam do vso.profile
. Considere qual é o número mínimo de escopos necessários ao solicitar o consentimento do escopo dos usuários.
Observação
Os escopos permitem apenas o acesso a APIs REST e pontos de extremidade Git selecionados. Não há suporte para o acesso à API SOAP.
Categoria | Escopo | Nome | Descrição | Herda de |
---|---|---|---|---|
Segurança avançada | vso.advsec |
AdvancedSecurity (leitura) | Concede a capacidade de ler alertas, instâncias de resultado, instâncias de resultado de análise. | |
vso.advsec_write |
AdvancedSecurity (leitura e gravação) | Concede a capacidade de fazer upload de análises em sarif | vso.advsec |
|
vso.advsec_manage |
AdvancedSecurity (leitura, gravação e gerenciamento) | Concede a capacidade de fazer upload de análises em sarif | vso.advsec_write |
|
Pools de agentes | vso.agentpools |
Pools de agentes (leitura) | Concede a capacidade de exibir tarefas, pools, filas, agentes e trabalhos em execução ou concluídos recentemente para agentes. | |
vso.agentpools_manage |
Pools de agentes (ler, gerenciar) | Concede a capacidade de gerenciar pools, filas e agentes. | vso.agentpools |
|
vso.environment_manage |
Ambiente (ler, gerenciar) | Concede a capacidade de gerenciar pools, filas, agentes e ambientes. | vso.agentpools_manage |
|
Análise | vso.analytics |
Análise (leitura) | Concede a capacidade de consultar dados de análise. | |
Auditoria | 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) | Concede a capacidade de gerenciar fluxos de auditoria aos usuários. | vso.auditlog |
|
Compilar | vso.build |
Build (leitura) | Concede a capacidade de acessar artefatos de build, incluindo resultados de build, definições e solicitações, e a capacidade de receber notificações sobre eventos de build por meio de ganchos de serviço. | vso.hooks_write |
vso.build_execute |
Build (leitura e execução) | Concede a capacidade de acessar artefatos de build, incluindo resultados de build, definições e solicitações, e a capacidade de enfileirar um build, atualizar propriedades de build e a capacidade de receber notificações sobre eventos de build por meio de ganchos de serviço. | vso.build |
|
Código | 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 concede a capacidade de pesquisar código e ser notificado sobre eventos de controle de versão por meio de ganchos de serviço. | vso.hooks_write |
vso.code_write |
Código (leitura e gravação) | 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 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) | 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) | 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 o status de confirmação e solicitação de pull. | ||
Servidor conectado | vso.connected_server |
Servidor conectado | Concede a capacidade de acessar os pontos de extremidade necessários de um servidor conectado local. | |
Qualificações | vso.entitlements |
Direitos (Ler) | Fornece acesso somente leitura ao ponto de extremidade de direitos de licenciamento para obter direitos de conta. | |
vso.memberentitlementmanagement |
Gerenciamento de MemberEntitlement (leitura) | Concede a capacidade de ler usuários, suas licenças, bem como projetos e extensões que eles podem acessar. | ||
vso.memberentitlementmanagement_write |
Gerenciamento de MemberEntitlement (gravação) | Concede a capacidade de gerenciar usuários, suas licenças, bem como projetos e extensões que eles podem acessar. | vso.memberentitlementmanagement |
|
Extensões | vso.extension |
Extensões (leitura) | Concede a capacidade de ler extensões instaladas. | vso.profile |
vso.extension_manage |
Extensões (leitura e gerenciamento) | 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 |
GitHub Connections (leitura) | Concede a capacidade de ler conexões do GitHub e dados de repositórios do GitHub. | |
vso.githubconnections_manage |
GitHub Connections (ler e gerenciar) | 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 (leitura) | Concede a capacidade de ler informações de usuário, grupo, escopo e associação de grupo. | |
vso.graph_manage |
Gráfico (gerenciar) | Concede a capacidade de ler informações de usuário, grupo, escopo e associação de grupo e adicionar usuários, 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) | Concede a capacidade de ler, gravar e gerenciar identidades e grupos. | vso.identity |
|
Grupo de máquinas | vso.machinegroup_manage |
Grupo de implantação (leitura, gerenciamento) | Fornece 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 e editores públicos e privados. | vso.profile |
vso.gallery_acquire |
Marketplace (adquirir) | Concede acesso de leitura e a capacidade de adquirir itens. | vso.gallery |
|
vso.gallery_publish |
Marketplace (publicar) | Concede acesso de leitura e a capacidade de carregar, atualizar e compartilhar itens. | vso.gallery |
|
vso.gallery_manage |
Marketplace (gerenciar) | Concede acesso de leitura e a capacidade de publicar e gerenciar itens e editores. | vso.gallery_publish |
|
Notificações | vso.notification |
Notificações (leitura) | Fornece acesso de leitura a assinaturas e metadados de eventos, incluindo valores de campo filtráveis. | vso.profile |
vso.notification_write |
Notificações (gravação) | Fornece 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) | Fornece 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) | Fornece acesso a logs de diagnóstico relacionados a notificações e fornece a capacidade de habilitar diagnósticos para assinaturas individuais. | vso.notification |
|
Embalagem | vso.packaging |
Embalagem (leitura) | Concede a capacidade de ler feeds e pacotes. | vso.profile |
vso.packaging_write |
Empacotamento (leitura e gravação) | Concede a capacidade de criar e ler feeds e pacotes. | vso.packaging |
|
vso.packaging_manage |
Empacotamento (leitura, gravação e gerenciamento) | 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) | 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) | 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_manage |
|
Projeto e Equipe | vso.project |
Projeto e equipe (leitura) | Concede a capacidade de ler projetos e equipes. | |
vso.project_write |
Projeto e equipe (leitura e gravação) | Concede a capacidade de ler e atualizar projetos e equipes. | vso.project |
|
vso.project_manage |
Projeto e equipe (leitura, gravação e gerenciamento) | Concede a capacidade de criar, ler, atualizar e excluir projetos e equipes. | vso.project_write |
|
Versão | vso.release |
Liberação (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 |
Liberação (leitura, gravação e execução) | Concede a capacidade de ler e atualizar artefatos de versão, incluindo versões, definições de versão e ambiente de versão, e a capacidade de enfileirar uma nova versão. | vso.release |
|
vso.release_manage |
Liberar (leitura, gravação, execução e gerenciamento) | 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, e a capacidade de enfileirar e aprovar uma nova versão. | vso.release_manage |
|
Arquivos seguros | vso.securefiles_read |
Arquivos seguros (leitura) | Concede a capacidade de ler arquivos seguros. | |
vso.securefiles_write |
Arquivos seguros (ler, criar) | Concede a capacidade de ler e criar arquivos seguros. | vso.securefiles_read |
|
vso.securefiles_manage |
Arquivos seguros (ler, criar e gerenciar) | Concede a capacidade de ler, criar e gerenciar arquivos seguros. | vso.securefiles_write |
|
Segurança | vso.security_manage |
Segurança (gerenciar) | 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) | Concede a capacidade de ler 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 (leitura, consulta e gerenciamento) | Concede a capacidade de ler, consultar e gerenciar pontos de extremidade de serviço. | vso.serviceendpoint_query |
|
Ganchos de serviço | vso.hooks |
Ganchos de serviço (leitura) | Concede a capacidade de ler assinaturas e metadados de gancho de serviço, incluindo eventos, consumidores e ações com suporte. (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 com suporte. (Não é mais público.) | vso.hooks |
|
vso.hooks_interact |
Ganchos de serviço (interagir) | Concede a capacidade de interagir e executar ações em eventos recebidos por meio de ganchos 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 criar e ler configurações. | ||
Símbolos | vso.symbols |
Símbolos (leia-se) | 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 (leitura, gravação e gerenciamento) | 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, criar) | Concede a capacidade de ler e criar grupos de tarefas. | vso.taskgroups_read |
|
vso.taskgroups_manage |
Grupos de tarefas (ler, criar e gerenciar) | Concede a capacidade de ler, criar e gerenciar grupos de tarefas. | vso.taskgroups_write |
|
Painel da equipe | vso.dashboards |
Painéis de equipe (leia) | Concede a capacidade de 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 testes | vso.test |
Gerenciamento de testes (leitura) | Concede a capacidade de ler planos de teste, casos, resultados e outros artefatos relacionados ao gerenciamento de testes. | 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 testes. | vso.test |
|
Threads | vso.threads_full |
Tópicos de PR | Concede a capacidade de ler e gravar em threads de comentários de solicitação de pull. | |
Tokens | vso.tokens |
Tokens de autorização delegada | Concede a capacidade de gerenciar tokens de autorização delegada aos usuários. | |
vso.tokenadministration |
Administração de Tokens | 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 (gravação) | 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, 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) | 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, quadros, caminhos de área e iterações e outros metadados relacionados ao rastreamento 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 de placa, ler caminhos de área e iterações, outros metadados relacionados ao rastreamento de itens 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 itens de trabalho. Também fornece 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 | Ter acesso total às APIs REST do Visual Studio Team Services. Solicite e/ou autorize este escopo com cautela, pois é muito poderoso! |
Perguntas frequentes
Perguntas frequentes (FAQs)
P: Posso usar o OAuth com meu aplicativo para celular?
R: Não. Azure DevOps Services dá suporte apenas ao fluxo do servidor Web, portanto, não há como implementar o OAuth, pois você não pode armazenar com segurança o segredo do aplicativo.
P: Posso usar o OAuth com os endpoints SOAP e as APIs REST?
R: Não. O OAuth só tem suporte nas APIs REST.