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 conceitos de autenticação sugeridos a serem considerados para diferentes cenários de aplicativo. 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 | OAuth com a biblioteca de autenticação da Microsoft (MSAL) | sample |
Aplicativo interativo do lado do cliente (bibliotecas de cliente) | Aplicativo cliente que possibilita a interação do usuário por meio da chamada das bibliotecas cliente do Azure DevOps Services | Aplicativos de console enumerando bugs atribuídos ao usuário atual | OAuth com bibliotecas de cliente | 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 | OAuth com o fluxo de 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 chamadas REST ad hoc. Não é ideal para aplicativos. | Pats | exemplos |
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 |
Entidade de serviço ou Identidade gerenciada | Aplicativo com sua própria identidade | 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 |
Dica
autenticação baseada em Entra é a nossa recomendação para desenvolvedores que procuram se integrar ao Azure DevOps Services, se você estiver interagindo com contas do Microsoft Entra. Os aplicativos de exemplo OAuth nesta tabela estão usando a plataforma de identidade do Microsoft Entra para desenvolvimento de aplicativos.
Para autenticação com contas da Microsoft (MSA) ou usuários do Azure DevOps Server, examine nossas bibliotecas de clientes ou PATs.
Leia mais em nosso blog sobre como estamos reduzindo o uso de PAT em nossa plataforma.
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.