Escolher o mecanismo de autenticação certo

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Para aplicativos que interfacem com Azure DevOps Services, você deve autenticar para obter acesso a recursos como APIs REST. Este artigo fornece diretrizes para ajudá-lo a escolher o mecanismo de autenticação correto para seu aplicativo.

A tabela a seguir descreve os mecanismos de autenticação recomendados para diferentes tipos de aplicativos. Consulte as descrições, exemplos e exemplos de código que acompanham para ajudá-lo a começar.

Tipo de aplicativo Descrição Exemplo Mecanismo de autenticação Exemplos de código
Aplicativo interativo do lado do cliente (REST) Aplicativo cliente que permite a interação do usuário chamando Azure DevOps Services APIs REST Aplicativos de console enumerando projetos em uma organização MSAL (Biblioteca de Autenticação da Microsoft) sample
Aplicativo interativo do lado do cliente (bibliotecas de cliente) Aplicativo cliente que permite a interação do usuário chamando Azure DevOps Services Bibliotecas de clientes Aplicativos de console enumerando bugs atribuídos ao usuário atual Bibliotecas de clientes sample
Aplicativo JavaScript interativo Aplicativo JavaScript baseado em GUI Aplicativo de página única angularJS exibindo informações de projeto para um usuário Biblioteca de Autenticação da Microsoft para JavaScript (MSAL JS) sample
Aplicativo Web OAuth interativo Aplicativo Web baseado em GUI que requer o consentimento do usuário Painel da Web personalizado exibindo resumos de build OAuth sample
Aplicativo não interativo do lado do cliente Aplicativo do lado do cliente somente texto sem periférito Aplicativo de console exibindo todos os bugs atribuídos a um usuário Perfil do Dispositivo sample
PAT (token de acesso pessoal) Token de portador para acessar seus próprios recursos Use seu PAT no lugar de sua senha para solicitações REST. Não é ideal para aplicações de construção. Pats docs
Aplicativo de servidor Azure DevOps Server aplicativo usando a biblioteca de OM do Cliente Azure DevOps Server extensão exibindo painéis de bugs da equipe Bibliotecas de cliente sample
Aplicativo de entidades de serviço Aplicativo com acesso aos recursos do Azure DevOps da organização Função do Azure para criar itens de trabalho Entidades de serviço e identidades gerenciadas sample
Extensão da Web Extensão Azure DevOps Services Extensão de cartões ágeis SDK da Extensão Web do VSS sample

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

Habilitar a Autenticação Básica do IIS invalida usando PATs para Azure DevOps Server

Para obter mais informações, consulte Usando a Autenticação Básica do IIS com o Azure DevOps local.

Perguntas frequentes (FAQs)

P: Por que minha conta de serviço não pode acessar a API REST do Azure DevOps?

R: Sua conta de serviço pode não ter "se materializado". As contas de serviço sem permissões de entrada interativa não podem entrar. Para obter mais informações, consulte esta solução alternativa para obter uma solução.

P: Devo usar Azure DevOps Services Client Libraries ou Azure DevOps Services APIs REST para meu aplicativo interativo do lado do cliente?

R: É recomendável usar Azure DevOps Services Client Libraries em APIs REST para acessar recursos do Azure DevOps Services. Eles são mais simples e fáceis de manter quando as versões do ponto de extremidade REST são alteradas. Se as bibliotecas de cliente não tiverem determinada funcionalidade, use a MSAL para autenticação com nossas APIs REST.

P: Essa orientação é apenas para Azure DevOps Services ou também é relevante para usuários locais Azure DevOps Server?

R: Essas diretrizes são principalmente para usuários do Azure DevOps Services. Para usuários do Azure Devops Server, recomendamos usar as Bibliotecas de Clientes, a Autenticação do Windows ou os PATs (Tokens de Acesso Pessoal) para autenticação.

P: E se eu quiser que meu aplicativo se autentique com Azure DevOps Server e Azure DevOps Services?

R: A prática recomendada é ter caminhos de autenticação separados para Azure DevOps Server e Azure DevOps Services. Você pode usar o requestContext para determinar qual serviço está acessando e, em seguida, aplicar o mecanismo de autenticação apropriado. Se você preferir uma solução unificada, os PATs funcionam para ambos.