Autorizar o acesso a APIs REST com o OAuth 2.0

Azure DevOps Services

Saiba como autenticar os usuários do aplicativo Web para acesso à API REST, para que seu aplicativo não continue solicitando nomes de usuário e senhas.

Observação

  • A orientação a seguir destina-se a usuários dos Serviços de DevOps do Azure, já que o OAuth 2.0 não tem suporte no Servidor de DevOps do Azure. 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 Cliente, Autenticação do Windows ou tokens de acesso pessoal (PATs) para autenticar em nome de um usuário.
  • Para obter mais informações, consulte o exemplo de GitHub OAuth do C#.

Sobre o OAuth 2.0

Os Serviços de DevOps do Azure usam 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 ele tiver expirado.

Process to get authorization.

Modelos OAuth disponíveis

Quando você cria um aplicativo OAuth 2.0, use o Microsoft Entra ID OAuth. Ainda oferecemos suporte ao Azure DevOps OAuth 2.0, mas não estamos investindo nesse modelo no momento.

Microsoft Entra ID OAuth

Quando você cria um aplicativo OAuth de ID do Microsoft Entra, seu aplicativo recebe tokens do Microsoft Entra, não tokens de acesso do Azure DevOps. Esses tokens têm uma duração padrão de uma hora antes da expiração.

Para obter mais informações, consulte os seguintes artigos:

Observação

Ao criar aplicativos que usam outras APIs, certifique-se de selecionar os escopos necessários para essas APIs.

Azure DevOps OAuth

Para aplicativos existentes, use o guia OAuth do Azure DevOps. Você também pode gerenciar quais aplicativos de DevOps do Azure estão autorizados.

Escopos

Espera-se que os desenvolvedores especifiquem quais escopos exigem de seus usuários. Os 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 sob o scopes cabeçalho na página Referência de API para cada API que você está usando.

Alguns escopos podem incluir outros escopos, por exemplo, code_manage inclui code_write. Considere qual é o número mínimo de escopos que você precisa ao solicitar o consentimento de escopo dos usuários.

Importante

Os escopos habilitam apenas o acesso às APIs REST e selecionam pontos de extremidade Git. O acesso à API SOAP não é suportado.

Categoria Escopo Nome Descrição
Pools de agentes vso.agentpools Pools de agentes (leitura) Concede a capacidade de exibir tarefas, pools, filas, agentes e trabalhos atualmente 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.environment_manage Ambiente (ler, gerenciar) Concede a capacidade de gerenciar pools, filas, agentes e ambientes.
Análise vso.analytics Análise (leitura) Concede a capacidade de consultar dados analíticos.
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 aos usuários a capacidade de gerenciar fluxos de auditoria.
Compilar 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 ganchos de serviço.
vso.build_execute Construir (ler e executar) Concede a capacidade de acessar artefatos de compilação, incluindo resultados de compilação, definições e solicitações, e a capacidade de enfileirar uma compilação, atualizar propriedades de compilação e a capacidade de receber notificações sobre eventos de compilação por meio de ganchos de serviço.
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.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 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_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 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_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 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 de OM de cliente.
vso.code_status Código (status) Concede a capacidade de ler e gravar o status da solicitação de confirmação e recepção.
Servidor conectado vso.connected_server Servidor conectado Concede a capacidade de acessar pontos de extremidade necessários a partir de um servidor conectado local.
Qualificações vso.entitlements Direitos (Leitura) Fornece acesso somente leitura ao ponto 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, bem como projetos e extensões que eles podem acessar.
vso.memberentitlementmanagement_write Gerenciamento de Direitos de Membro (gravação) Concede a capacidade de gerenciar usuários, suas licenças, bem como projetos e extensões que eles podem acessar.
Extensões vso.extension Extensões (leitura) Concede a capacidade de ler extensões instaladas.
vso.extension_manage Extensões (ler e gerenciar) Concede a capacidade de instalar, desinstalar e executar outras ações administrativas em extensões instaladas.
vso.extension.data Dados de extensão (leitura) Concede a capacidade de ler dados (configurações e documentos) armazenados por extensões instaladas.
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.
Gráfico & 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.identity Identidade (leitura) Concede a capacidade de ler identidades e grupos.
vso.identity_manage Identidade (gerenciar) Concede a capacidade de ler, escrever e gerenciar identidades e grupos.
Grupo de Máquinas vso.machinegroup_manage Grupo de implantação (ler, gerenciar) Fornece a capacidade de gerenciar grupos de implantação e pools de agentes.
Marketplace vso.gallery Marketplace Concede acesso de leitura a itens e editores públicos e privados.
vso.gallery_acquire Marketplace (adquirir) Concede acesso de leitura e a capacidade de adquirir itens.
vso.gallery_publish Marketplace (publicar) Concede acesso de leitura e a capacidade de carregar, atualizar e compartilhar itens.
vso.gallery_manage Marketplace (gerenciar) Concede acesso de leitura e a capacidade de publicar e gerenciar itens e editores.
Notificações vso.notification Notificações (leitura) Fornece acesso de leitura a assinaturas e metadados de eventos, incluindo valores de campo filtráveis.
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_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_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.
Embalagem vso.packaging Embalagem (leia-se) Concede a capacidade de ler feeds e pacotes.
vso.packaging_write Embalagem (leitura e gravação) Concede a capacidade de criar e ler feeds e pacotes.
vso.packaging_manage Empacotamento (leitura, gravação e gerenciamento) Concede a capacidade de criar, ler, atualizar e excluir feeds e pacotes.
Recursos do 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.
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_manage Projeto e equipe (ler, escrever e gerenciar) Concede a capacidade de criar, ler, atualizar e excluir projetos e equipes.
Versão vso.release Lançamento (leitura) Concede a capacidade de ler artefatos de versão, incluindo releases, definições de release e ambiente release.
vso.release_execute Liberar (ler, gravar e executar) 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_manage Liberar (ler, gravar, executar e gerenciar) 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.
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_manage Arquivos seguros (ler, criar e gerenciar) Concede a capacidade de ler, criar e gerenciar arquivos seguros.
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.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_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.
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 (ler) Concede a capacidade de ler símbolos.
vso.symbols_write Símbolos (leitura e gravação) Concede a capacidade de ler e escrever símbolos.
vso.symbols_manage Símbolos (ler, gravar e gerenciar) Concede a capacidade de ler, escrever e gerenciar símbolos.
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_manage Grupos de tarefas (ler, criar e gerenciar) Concede a capacidade de ler, criar e gerenciar grupos de tarefas.
Painel da equipe vso.dashboards Painéis de equipe (leitura) Concede a capacidade de ler as 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.
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.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.
Threads vso.threads_full Tópicos de RP Concede a capacidade de ler e gravar para puxar threads de comentário de solicitação.
Tokens vso.tokens Tokens de autorização delegada Concede a capacidade de gerenciar tokens de autorização delegados aos usuários.
vso.tokenadministration Administração de Token Concede a capacidade de gerenciar (exibir 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 de usuário (gravação) Concede a capacidade de escrever no seu perfil.
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_manage Grupos de variáveis (ler, criar e gerenciar) Concede a capacidade de ler, criar e gerenciar grupos de variáveis.
Wiki vso.wiki Wiki (ler) 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.
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 controle 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.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 outros metadados relacionados ao controle 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_full Itens de trabalho (completo) Concede acesso total a itens de trabalho, consultas, listas de pendências, planos e metadados de rastreamento de item de trabalho. Também fornece a capacidade de receber notificações sobre eventos de item de trabalho por meio de ganchos de serviço.
Representação de usuário user_impersonation Representação de usuário Tenha acesso total às APIs REST do Visual Studio Team Services. Solicite e/ou autorize este escopo com cautela, pois ele é muito poderoso!