Autorizar o acesso às APIs REST com o OAuth 2.0
Serviços de DevOps do Azure
Saiba como autenticar os utilizadores da sua aplicação Web para acesso à API REST, para que a sua aplicação não continue a pedir nomes de utilizador e palavras-passe.
Nota
- As orientações a seguir destinam-se aos usuários dos Serviços de DevOps do Azure, já que o OAuth 2.0 não é suportado no Servidor de DevOps do Azure. As Bibliotecas de Cliente são uma série de pacotes criados especificamente para estender a funcionalidade do Servidor de DevOps do Azure. 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 em 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. Utilize este token quando chamar as APIs REST a partir da aplicação. Quando chamar as APIs dos Serviços do Azure DevOps para esse utilizador, utilize o token de acesso desse utilizador. Os tokens de acesso expiram, por isso, atualize o token de acesso se este expirar.
Modelos OAuth disponíveis
Quando você cria um aplicativo OAuth 2.0, use o Microsoft Entra ID OAuth. Ainda damos 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 Microsoft Entra ID OAuth, seu aplicativo recebe tokens 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 que podem estar em inglês:
- Registar uma aplicação na plataforma de identidade da Microsoft
- Plataforma de identidade da Microsoft e fluxo OAuth 2.0 em nome de
- Configurar um aplicativo cliente para acessar uma API da Web: O exemplo vinculado demonstra como escolher uma permissão para o recurso do Microsoft Graph. Ao criar um aplicativo, selecione
Azure DevOps
na lista de recursos. - Gerenciar PATs via API
Nota
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 do Azure DevOps são autorizados.
Âmbitos
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 da API para cada API que você está usando.
Alguns âmbitos podem incluir outros âmbitos, por exemplo, code_manage
inclui code_write
. Considere qual é o número mínimo de escopos necessários ao solicitar o consentimento de escopo dos usuários.
Importante
Os escopos habilitam apenas o acesso a APIs REST e selecionam pontos de extremidade Git. O acesso à API SOAP não é suportado.
Category | Âmbito | Nome | Descrição |
---|---|---|---|
Pools de agentes | vso.agentpools |
Pools de agentes (ler) | 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 (ler) | Concede a capacidade de consultar dados de análise. |
Auditoria | 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) | Concede aos usuários a capacidade de gerenciar fluxos de auditoria. | |
Compilação | 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.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 (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 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 (ler, escrever e gerir) | 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 OM de cliente. | |
vso.code_status |
Código (status) | Concede a capacidade de ler e escrever o status da solicitação commit e pull. | |
Servidor conectado | vso.connected_server |
Servidor conectado | Concede a capacidade de acessar os pontos de extremidade necessários a partir de um servidor conectado localmente. |
Elegibilidades | vso.entitlements |
Direitos (Ler) | Fornece acesso somente leitura ao ponto de extremidade de direitos de licenciamento para obter direitos de conta. |
vso.memberentitlementmanagement |
MemberEntitlement Management (ler) | Concede a capacidade de ler usuários, suas licenças, bem como projetos e extensões que eles podem acessar. | |
vso.memberentitlementmanagement_write |
MemberEntitlement Management (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 (ler) | 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 (ler) | Concede a capacidade de ler dados (configurações e documentos) armazenados pelas 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 pelas extensões instaladas. | |
Gráfico & identidade | vso.graph |
Gráfico (ler) | 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, além de adicionar usuários, grupos e gerenciar associações de grupo. | |
vso.identity |
Identidade (ler) | 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 (aquisição) | 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 (ler) | 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. | |
Empacotamento | vso.packaging |
Embalagem (ler) | Concede a capacidade de ler feeds e pacotes. |
vso.packaging_write |
Embalagem (leitura e escrita) | 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 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. | |
Projeto e Equipa | vso.project |
Projeto e equipa (ler) | Concede a capacidade de ler projetos e equipes. |
vso.project_write |
Projeto e equipa (ler e escrever) | Concede a capacidade de ler e atualizar projetos e equipes. | |
vso.project_manage |
Projeto e equipa (ler, escrever e gerir) | Concede a capacidade de criar, ler, atualizar e excluir projetos e equipes. | |
Lançamento | vso.release |
Lançamento (ler) | Concede a capacidade de ler artefatos de versão, incluindo versões, definições de liberação e ambiente de versão. |
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 |
Release (ler, escrever, 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. | |
Ficheiros Seguros | vso.securefiles_read |
Arquivos seguros (ler) | 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, escrever e gerenciar permissões de segurança. |
Ligações de Serviço | vso.serviceendpoint |
Pontos de extremidade de serviço (ler) | 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 (ler, consultar e gerenciar) | Concede a capacidade de ler, consultar e gerenciar pontos de extremidade de serviço. | |
Administração | vso.settings |
Configurações (ler) | 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 escrita) | Concede a capacidade de ler e escrever símbolos. | |
vso.symbols_manage |
Símbolos (ler, escrever e gerir) | Concede a capacidade de ler, escrever e gerenciar símbolos. | |
Grupos de Tarefas | vso.taskgroups_read |
Grupos de Tarefas (ler) | 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 gerir) | Concede a capacidade de ler, criar e gerenciar grupos de tarefas. | |
Painel de Equipa | vso.dashboards |
Painéis da equipe (ler) | 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. | |
Gestão de Testes | vso.test |
Gestão de testes (ler) | Concede a capacidade de ler planos de teste, casos, resultados e outros artefatos relacionados ao gerenciamento de testes. |
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. | |
Tópicos | vso.threads_full |
Tópicos de RP | Concede a capacidade de ler e gravar para extrair threads de comentários 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 Tokens | Concede a capacidade de gerenciar (exibir e revogar) tokens existentes aos administradores da organização. | |
Perfil de Utilizador | vso.profile |
Perfil de utilizador (ler) | 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 para o seu perfil. | |
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, criar) | Concede a capacidade de ler e criar grupos de variáveis. | |
vso.variablegroups_manage |
Grupos de variáveis (ler, criar e gerir) | 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 (ler) | 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.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, área de leitura e caminhos de iterações 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_full |
Itens de trabalho (completos) | Concede acesso total a itens de trabalho, consultas, listas de pendências, planos e metadados de controle 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 do usuário | user_impersonation |
Representação do usuário | Tenha acesso total às APIs REST do Visual Studio Team Services. Solicite e/ou consinta este escopo com cautela, pois ele é muito poderoso! |