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

Serviços de DevOps do Azure | 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 às permissões, acesso e grupos de segurança. Os administradores se beneficiam de compreender os tipos de conta, métodos de autenticação, métodos de autorização e políticas usados para proteger o Azure DevOps.


Tipos de conta

  • Utilizadores
  • Proprietário da organização
  • Contas de serviço
  • Entidades de serviço ou identidades gerenciadas
  • Agentes de emprego

Autenticação

  • Credenciais do utilizador
  • Autenticação do Windows
  • Autenticação de dois fatores (2FA)
  • Autenticação de chave SSH
  • Tokens de acesso pessoal
  • Configuração Oauth
  • Biblioteca de autenticação do Ative Directory

Autorização

  • Associação a grupos de segurança
  • Controlo de acesso baseado em funções
  • Níveis de acesso
  • Marcas de funcionalidades
  • Namespaces de segurança & permissões

Políticas

  • URL da política de privacidade
  • Conexão de aplicativos e políticas de segurança
  • Políticas de utilizador
  • Políticas de repositório e filiais do Git


Tipos de conta

  • Utilizadores
  • Contas de serviço
  • Entidades de serviço ou identidades gerenciadas
  • Agentes de emprego

Autenticação

  • Credenciais do utilizador
  • Autenticação do Windows
  • Autenticação de dois fatores (2FA)
  • Autenticação de chave SSH
  • Tokens de acesso pessoal
  • Configuração Oauth
  • Biblioteca de autenticação do Ative Directory

Autorização

  • Associação a grupos de segurança
  • Permissões baseadas em função
  • Níveis de acesso
  • Marcas de funcionalidades
  • Namespaces de segurança & permissões

Políticas

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

Importante

O Azure DevOps não suporta mais a 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 mude para um método de autenticação mais seguro (por exemplo, tokens de acesso pessoal). Mais informações.

Tanto o nosso serviço na nuvem, Serviços de DevOps do Azure, como o servidor local, o Azure DevOps Server, suportam projetos de desenvolvimento de software, desde o planeamento até à implementação. O Azure DevOps usa a infraestrutura da 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 nos Serviços de DevOps do Azure seguros, disponíveis, protegidos e privados, consulte este white paper, Visão geral da proteção de dados dos Serviços de DevOps do Azure.

Contas

Embora os principais 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. Estes incluem os seguintes tipos de conta.

  • Proprietário da organização: o criador de uma organização dos Serviços de DevOps do Azure ou proprietário atribuído. Para saber quem é o proprietário da organização, consulte Procurar 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 Agent Pool Service, 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 cronograma regular.
  • Contas de terceiros: contas que requerem acesso para suportar 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, o que pode 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 Agent Pool Service, 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 cronograma regular.
  • Contas de terceiros: contas que requerem acesso para suportar 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.

Nota

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

Autenticação

A autenticação verifica a identidade de uma conta com base nas credenciais fornecidas quando eles entram no Azure DevOps. Estes sistemas integram-se e dependem dos elementos de segurança fornecidos por estes outros sistemas:

  • Microsoft Entra ID
  • Conta Microsoft (MSA)
  • Ative Directory (AD)

O Microsoft Entra ID e o MSA suportam autenticação na 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 o Microsoft Entra ID.

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 e integração noutros serviços e aplicações

Pode integrar outras aplicações e serviços nos serviços e recursos do Azure DevOps. Para aceder à conta sem pedir várias vezes as credenciais do utilizador, as aplicações podem utilizar os seguintes métodos de autenticação.

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

    • Aceder a atividades ou recursos específicos, como compilações ou itens de trabalho
    • Os clientes como o Xcode e o NuGet pedem nomes de utilizador e palavras-passe como credenciais básicas e não suportam a conta Microsoft nem as funcionalidades do Microsoft Entra como autenticação multifator
    • Aceder às APIs REST do Azure DevOps
  • OAuth do Azure DevOps para gerar tokens em nome dos utilizadores para aceder às APIs REST. As APIs das Contas e dos Perfis só suportam OAuth.

  • Autenticação SSH para gerar chaves de encriptação para si próprio quando utiliza Linux, macOS ou Windows com o Git para Windows em execução e não pode utilizar os gestores de credenciais do Git nem os tokens de acesso pessoal para a 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 os recursos do Azure DevOps. A maioria das ações tradicionalmente efetuadas por uma conta de serviço e um PAT pode ser feita com um principal de serviço ou uma identidade gerida.

Por predefinição, a conta ou a coleção permite o acesso a todos os métodos de autenticação. Pode limitar o acesso, mas tem de restringir especificamente o acesso a cada método. Quando nega o acesso a um método de autenticação, nenhuma aplicação pode utilizar esse método para aceder à conta. Qualquer aplicação que tenha tido acesso previamente recebe um erro de autenticação e não consegue aceder à 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 correto, consulte Orientação 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á ser desautorizada 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 da associação a 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 às 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 de DevOps do Azure têm 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 de herança e um conjunto de zero ou mais entradas de controle de acesso (ACEs). 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 código, você pode definir muitas políticas. Especificamente, você pode habilitar ou desabilitar as seguintes políticas:

Geral

Conexão de aplicativos 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. Esta política é desativada por padrão e válida apenas quando a organização está conectada ao Microsoft Entra ID. Marque restringir a criação da organização para obter mais detalhes.

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

Políticas de utilizador

  • Acesso de convidado externo (válido apenas quando a organização está conectada ao Microsoft Entra ID.): Quando habilitado, os convites podem ser enviados para contas de email de usuários que não são membros do 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 projeto convidem novos usuários: válido somente quando a organização estiver conectada ao Microsoft Entra ID. Quando habilitado, os administradores de equipe e projeto podem adicionar usuários por meio da página Usuários . Para obter mais informações, consulte Restringir convites de novos usuários de administradores de projeto e 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 e-mail 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 apenas quando a organização não estiver 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 solicitação de usuários do GitHub.

Grupo Usuários com escopo do projeto

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 visualização da lista de usuários, lista de projetos, detalhes de cobrança, dados de uso e muito mais que é acessado por meio das Configurações da Organização.

Importante

  • As funcionalidades de visibilidade limitada descritas nesta secção aplicam-se apenas às interações através do portal Web. Com as APIs REST ou azure devops os 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 pesquisar usuários com o seletor de pessoas. Quando o recurso de visualização está 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 Stakeholders, usuários convidados do Microsoft Entra ou membros de um grupo de segurança específico, você pode habilitar o recurso Limitar a visibilidade e a colaboração do usuário a projetos específicos da 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áginas Visã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ó pode selecionar identidades de usuário e grupo que foram adicionadas explicitamente ao projeto ao qual estão conectados.

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 de visualização 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 podem pesquisar usuários que foram adicionados à organização por meio da associação ao grupo Microsoft Entra, em vez de por meio de um convite explícito de usuário. Este é um comportamento inesperado e uma resolução está sendo trabalhada. Para resolver automaticamente esse problema, desative o recurso de visualização Limitar a visibilidade e a colaboração do usuário a projetos específicos para a organização.

Políticas de repositório e filiais do Git

Para proteger seu código, você pode definir muitas políticas de repositório Git e ramificação. Para obter mais informações, consulte os seguintes artigos que podem estar em inglês.

Segurança do Azure Repos e Azure Pipelines

Como os repositórios e os pipelines de compilação 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 que podem estar em inglês.

Próximos passos