Sobre segurança, autenticação e autorização

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

O Azure DevOps emprega muitos conceitos de segurança para garantir que apenas os usuários que devem ter acesso a recursos, funções e dados tenham acesso. As contas obtêm acesso ao Azure DevOps por meio da autenticação de suas credenciais de segurança e autorização de seus direitos de conta para acessar um recurso ou função.

Este artigo baseia-se nas informações fornecidas em Introdução a permissões, acesso e grupos de segurança. Os administradores se beneficiam da compreensão dos tipos de conta, dos métodos de autenticação, dos métodos de autorização e das políticas usadas para proteger o Azure DevOps.


Tipos de conta

  • Usuários
  • Proprietário da organização
  • Contas de serviço
  • Entidades de serviço ou identidades gerenciadas
  • Agentes de trabalho

Autenticação

  • Credenciais de usuário
  • Autenticação do Windows
  • 2FA (Autenticação de Dois Fatores)
  • Autenticação de chave SSH
  • Tokens de acesso pessoal
  • Configuração do Oauth
  • Biblioteca de autenticação do Active Directory

Autorização

  • Associação a um grupo de segurança
  • Controle de acesso baseado em função
  • Níveis de acesso
  • Sinalizadores de recurso
  • Namespaces de segurança & permissões

Políticas

  • URL da política de privacidade
  • Conexão de aplicativo e políticas de segurança
  • Políticas de usuário
  • Políticas de repositório e branch do Git


Tipos de conta

  • Usuários
  • Contas de serviço
  • Entidades de serviço ou identidades gerenciadas
  • Agentes de trabalho

Autenticação

  • Credenciais de usuário
  • Autenticação do Windows
  • 2FA (Autenticação de Dois Fatores)
  • Autenticação de chave SSH
  • Tokens de acesso pessoal
  • Configuração do Oauth
  • Biblioteca de autenticação do Active Directory

Autorização

  • Associação a um grupo de segurança
  • Permissões baseadas em função
  • Níveis de acesso
  • Sinalizadores de recurso
  • Namespaces de segurança & permissões

Políticas

  • Políticas de repositório e branch do Git

Importante

O Azure DevOps não dá mais suporte à autenticação de Credenciais Alternativas desde o início de 2 de março de 2020. Se você ainda estiver usando Credenciais Alternativas, recomendamos que você alterne para um método de autenticação mais seguro (por exemplo, tokens de acesso pessoal). Saiba mais.

Nosso serviço de nuvem, Azure DevOps Services e servidor local, Azure DevOps Server, dão suporte a projetos de desenvolvimento de software, desde o planejamento até a implantação. O Azure DevOps usa a infraestrutura plataforma como serviço do Microsoft Azure e muitos dos serviços do Azure, incluindo bancos de dados SQL do Azure, para fornecer um serviço confiável e disponível globalmente para seus projetos de desenvolvimento.

Para obter mais informações sobre as etapas que a Microsoft executa para manter seus projetos em Azure DevOps Services seguros, disponíveis, seguros e privados, consulte este white paper, Azure DevOps Services Visão geral da Proteção de Dados.

Contas

Embora os main tipos de contas de interesse sejam as contas de usuário humano que você adiciona à sua organização ou projeto, o Azure DevOps dá suporte a outros tipos de contas para executar várias operações. Eles incluem os seguintes tipos de conta.

  • Proprietário da organização: o criador de uma organização Azure DevOps Services ou proprietário atribuído. Para saber quem é o proprietário da organização para sua organização, consulte Pesquisar o proprietário da organização.
  • Contas de serviço: contas internas do Azure DevOps usadas para dar suporte a um serviço específico, como Serviço de Pool de Agentes, PipelinesSDK. Para obter descrições de contas de serviço, consulte Grupos de segurança, contas de serviço e permissões.
  • Entidades de serviço ou identidades gerenciadas: aplicativos Microsoft Entra ou identidades gerenciadas que foram adicionadas à sua organização para executar ações em nome de um aplicativo de terceiros. Algumas entidades de serviço referem-se a contas internas do Azure DevOps para dar suporte a operações internas.
  • Agentes de trabalho: contas internas usadas para executar trabalhos específicos em um agendamento regular.
  • Contas de terceiros: contas que exigem acesso para dar suporte a ganchos da Web, conexões de serviço ou outros aplicativos de terceiros.

Ao longo desses documentos, os usuários podem se referir a todas as identidades que foram adicionadas ao Hub de Usuários, que podem incluir usuários humanos e entidades de serviço.

  • Contas de serviço: contas internas do Azure DevOps usadas para dar suporte a um serviço específico, como Serviço de Pool de Agentes, PipelinesSDK. Para obter descrições de contas de serviço, consulte Grupos de segurança, contas de serviço e permissões.
  • Entidades de serviço ou identidades gerenciadas: aplicativos Microsoft Entra ou identidades gerenciadas que foram adicionadas à sua organização para executar ações em nome de um aplicativo de terceiros. Algumas entidades de serviço referem-se a contas internas do Azure DevOps para dar suporte a operações internas.
  • Agentes de trabalho: contas internas usadas para executar trabalhos específicos em um agendamento regular.
  • Contas de terceiros: contas que exigem acesso para dar suporte a ganchos da Web, conexões de serviço ou outros aplicativos de terceiros.

O meio mais eficaz para gerenciar contas é adicioná-las a grupos de segurança.

Observação

Os proprietário da organização e membros do grupo Administradores de Coleção de Projetos recebem acesso total à maioria dos recursos e funções.

Autenticação

A autenticação verifica uma identidade de conta com base nas credenciais fornecidas quando elas entram no Azure DevOps. Esses sistemas se integram e dependem dos recursos de segurança fornecidos por esses outros sistemas:

  • Microsoft Entra ID
  • MSA (conta Microsoft)
  • AD (Active Directory)

O Microsoft Entra ID e o MSA oferecem suporte à autenticação em nuvem. Recomendamos o Microsoft Entra ID quando você precisar gerenciar um grande grupo de usuários. Caso contrário, se você tiver uma pequena base de usuários acessando sua organização no Azure DevOps, poderá usar contas da Microsoft. Para obter mais informações, consulte Sobre como acessar o Azure DevOps com a ID do Microsoft Entra.

Para implantações locais, o AD é recomendado ao gerenciar um grande grupo de usuários. Para obter mais informações, consulte Configurar grupos para uso em implantações locais.

Métodos de autenticação, integração com outros serviços e aplicativos

Outros aplicativos e serviços podem se integrar com serviços e recursos no Azure DevOps. Para acessar sua conta sem solicitar credenciais de usuário várias vezes, os aplicativos podem usar os métodos de autenticação a seguir.

  • Tokens de acesso pessoal para gerar tokens em seu nome para:

    • Acessar recursos ou atividades específicas, como builds ou itens de trabalho
    • Clientes como Xcode e NuGet que exigem nomes de usuário e senhas como credenciais básicas e não são compatíveis com a conta Microsoft e os recursos do Microsoft Entra, como autenticação multifator
    • Acessando APIs REST do Azure DevOps
  • OAuth do Azure DevOps para gerar tokens em nome dos usuários para acessar APIs REST. As APIs Contas e Perfis suportam apenas OAuth.

  • Autenticação SSH para gerar chaves de criptografia para si mesmo quando você usa o Linux, macOS ou Windows executando o Git para Windows e não pode usar os Gerenciadores de credenciais do Git ou tokens de acesso pessoal para autenticação HTTPS.

  • Entidades de serviço ou identidades gerenciadas para gerar tokens do Microsoft Entra em nome de um aplicativo ou serviço, que normalmente automatiza algum fluxo de trabalho que precisa acessar recursos do Azure DevOps. A maioria das ações tradicionalmente feitas por uma conta de serviço e um PAT pode ser feita usando uma entidade de serviço ou identidade gerenciada.

Por padrão, sua conta ou coleção permite o acesso para todos os métodos de autenticação. Você pode limitar o acesso, mas deve restringir o acesso especificamente para cada método. Quando você nega o acesso a um método de autenticação, nenhum aplicativo pode usar esse método para acessar sua conta. Qualquer aplicativo que tinha acesso anteriormente recebe um erro de autenticação e não pode acessar sua conta.

Para obter mais informações sobre como armazenamos suas credenciais, consulte Armazenamento de credenciais para o Azure DevOps.

Para obter mais informações sobre como escolher o mecanismo de autenticação certo, consulte Diretrizes para autenticação.

Autorização

A autorização verifica se a identidade que está tentando se conectar tem as permissões necessárias para acessar um serviço, recurso, função, objeto ou método. A autorização sempre ocorre após a autenticação bem-sucedida. Se uma conexão não for autenticada, ela falhará antes que qualquer verificação de autorização seja executada. Se a autenticação de uma conexão for bem-sucedida, uma ação específica ainda poderá não ser permitida porque o usuário ou grupo não tinha autorização para executar essa ação.

A autorização depende das permissões atribuídas à conta. As permissões são concedidas diretamente a uma conta ou por meio de associação em um grupo de segurança ou função de segurança. Os níveis de acesso e os sinalizadores de recursos também podem conceder ou restringir o acesso a um recurso. Para obter mais informações sobre esses métodos de autorização, consulte Introdução a permissões, acesso e grupos de segurança.

Namespaces e permissões de segurança

Os namespaces de segurança armazenam dados que determinam o nível de acesso que as contas do Azure DevOps precisam para executar uma ação específica em um recurso específico. Cada família de recursos, como itens de trabalho ou repositórios Git, é protegida por meio de um namespace exclusivo. Cada namespace de segurança contém zero ou mais ACLs (listas de controle de acesso). Cada ACL contém um token, um sinalizador herdado e um conjunto de zero ou mais ACEs (entradas de controle de acesso). Cada ACE contém um descritor de identidade, uma máscara de bits de permissões permitidas e uma máscara de bits de permissões negadas.

Para obter mais informações, consulte Namespaces de segurança e referência de permissão.

Políticas de segurança

Para proteger sua organização e o código, você pode definir várias políticas. Especificamente, você pode habilitar ou desabilitar as seguintes políticas:

Geral

Conexão de aplicativo e políticas de segurança

Use a política de locatário do Microsoft Entra para restringir a criação de novas organizações apenas aos usuários desejados. Essa política é desativada por padrão e válida somente quando a organização está conectada ao Microsoft Entra ID. Verifique restringir a criação da organização para obter mais detalhes.

As políticas a seguir determinam o acesso que você deseja fornecer aos usuários e aplicativos às suas organizações:

Políticas de usuário

  • Acesso de convidado externo (válido somente quando a organização está conectada à ID do Microsoft Entra.): Quando habilitado, os convites podem ser enviados para contas de email de usuários que não são membros da ID do Microsoft Entra locatário por meio da página Usuários . Para obter mais informações, consulte Adicionar usuários externos à sua organização.
  • Permitir que administradores de equipe e de projeto convidem novos usuários: válido somente quando a organização estiver conectada ao Microsoft Entra ID. Quando habilitados, os administradores de equipe e projeto podem adicionar usuários por meio da página Usuários . Para obter mais informações, consulte Restringir novos convites de usuários do Project e administradores de equipe.
  • Solicitar acesso: válido somente quando a organização estiver conectada ao Microsoft Entra ID. Quando habilitado, os usuários podem solicitar acesso a um recurso. Uma solicitação resulta em uma notificação por email para os administradores solicitando revisão e acesso, conforme necessário. Para obter mais informações, consulte Adicionar usuários externos à sua organização.
  • Convidar usuários do GitHub: válido somente quando a organização não está conectada ao Microsoft Entra ID. Quando habilitado, os administradores podem adicionar usuários com base em suas contas de usuário do GitHub na página Usuários . Para obter mais informações, consulte Perguntas frequentes sobre autenticação e convite a usuários do GitHub.

grupo Usuários do Project-Scoped

Por padrão, os usuários adicionados a uma organização podem exibir todas as informações e configurações da organização e do projeto. Isso inclui a exibição de lista de usuários, lista de projetos, detalhes de cobrança, dados de uso e muito mais acessados por meio das Configurações da Organização.

Importante

  • Os recursos de visibilidade limitados descritos nesta seção se aplicam apenas a interações por meio do portal da Web. Com as APIs REST ou azure devops comandos da CLI, os membros do projeto podem acessar os dados restritos.
  • Os usuários convidados que são membros do grupo limitado com acesso padrão no Microsoft Entra ID não podem procurar usuários com o seletor de pessoas. Quando o recurso de visualização é desativado para a organização ou quando os usuários convidados não são membros do grupo limitado, os usuários convidados podem pesquisar todos os usuários do Microsoft Entra, conforme o esperado.

Para restringir usuários selecionados, como Partes Interessadas, usuários convidados do Microsoft Entra ou membros de um grupo de segurança específico, você pode habilitar o recurso Limitar visibilidade e colaboração do usuário a projetos específicos para a organização. Depois que isso estiver habilitado, qualquer usuário ou grupo adicionado ao grupo Usuários com Escopo do Projeto será restrito das seguintes maneiras:

  • Só é possível acessar as páginasVisão Geral e Projetos das Configurações da Organização.
  • Só é possível conectar e exibir os projetos aos quais eles foram adicionados explicitamente (consulte Adicionar usuários a um projeto ou equipe.
  • Só é possível selecionar identidades de usuário e grupo que foram adicionadas explicitamente ao projeto ao qual estão conectadas.

Para obter mais informações, consulte Gerenciar sua organização, Limitar a visibilidade do usuário para projetos e muito mais e Gerenciar recursos de visualização.

Aviso

Quando o recurso Limitar a visibilidade e a colaboração do usuário a projetos específicos está habilitado para a organização, os usuários com escopo de projeto não conseguem pesquisar usuários que foram adicionados à organização por meio da associação ao grupo do Microsoft Entra, em vez de por meio de um convite explícito do usuário. Esse é um comportamento inesperado e uma resolução está sendo trabalhada. Para resolve esse problema, desabilite o recurso limitar a visibilidade e a colaboração do usuário à versão prévia de projetos específicos para a organização.

Repositório Git e políticas de branch

Para proteger seu código, você pode definir muitas políticas de repositório Git e branch. Para obter mais informações, consulte os seguintes artigos.

segurança do Azure Repos e do Azure Pipelines

Como repositórios e pipelines de build e lançamento representam desafios de segurança exclusivos, outros recursos além dos recursos discutidos neste artigo são empregados. Para obter mais informações, consulte os seguintes artigos.

Próximas etapas