Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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.
Opções de implementação do OAuth
Escolha a implementação OAuth apropriada com base nas necessidades do seu aplicativo.
Microsoft Entra ID OAuth (recomendado)
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:
- Consulte o guia OAuth do Azure DevOps para obter detalhes de implementação atuais.
- Planeje a migração para o Microsoft Entra ID OAuth antes de 2026.
- Gerencie as autorizações de aplicativos existentes conforme necessário.
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_manageincluivso.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
scopesem 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
- Para novos aplicativos:Criar com o Microsoft Entra ID OAuth
- Para aplicativos OAuth do Azure DevOps existentes:Planeje sua migração para o Microsoft Entra ID
- Para aplicativos existentes que precisam de suporte imediato:documentação do Azure DevOps OAuth