Sobre segurança, autenticação e autorização
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
O Azure DevOps emprega vários conceitos de segurança para garantir que apenas usuários autorizados possam acessar recursos, funções e dados. Os usuários obtêm acesso ao Azure DevOps por meio da autenticação de suas credenciais de segurança e da autorização de seus direitos de conta para acessar recursos ou funções específicos.
Este artigo baseia-se nas informações fornecidas em Introdução às permissões, acesso e grupos de segurança. Os administradores podem se beneficiar da compreensão dos 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 dá suporte à autenticação de Credenciais Alternativas. Se você ainda estiver usando Credenciais Alternativas, recomendamos que mude para um método de autenticação mais seguro.
Os Serviços de DevOps do Azure (nuvem) e o Servidor de DevOps do Azure (local) dão suporte ao desenvolvimento de software desde o planejamento até a implantação. Eles aproveitam a infraestrutura e os serviços da Plataforma como Serviço do Microsoft Azure, incluindo bancos de dados SQL do Azure, para fornecer um serviço confiável e disponível globalmente para seus projetos.
Para obter mais informações sobre como a Microsoft garante que seus projetos dos Serviços de DevOps do Azure estejam seguros, disponíveis, protegidos e privados, consulte a Visão geral da proteção de dados dos Serviços de DevOps do Azure.
Contas
Embora as contas de usuário humano sejam o foco principal, o Azure DevOps também dá suporte a vários outros tipos de conta para diferentes 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 encontrar o proprietário da sua organização, consulte Procurar o proprietário da organização.
- Contas de serviço: organização interna do Azure DevOps usada 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 adicionadas à sua organização para executar ações em nome de um aplicativo de terceiros. Algumas entidades de serviço referem-se à organização interna 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.
Em nossos artigos relacionados à segurança, "usuários" refere-se a todas as identidades adicionadas ao Hub de Usuários, que podem incluir usuários humanos e entidades de serviço.
- Contas de serviço: organização interna do Azure DevOps usada 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 adicionadas à sua organização para executar ações em nome de um aplicativo de terceiros. Algumas entidades de serviço referem-se à organização interna 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.
A maneira mais eficaz de gerenciar contas é adicioná-las a grupos de segurança.
Nota
O proprietário da organização e os membros do grupo Administradores de Coleção de Projetos recebem acesso total a quase todos os recursos e funções.
Autenticação
A autenticação verifica a identidade de uma conta com base nas credenciais fornecidas durante a entrada no Azure DevOps. Estes sistemas integram-se e dependem dos elementos de segurança dos seguintes 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 uso do Microsoft Entra ID para gerenciar um grande grupo de usuários. Para uma pequena base de usuários acessando sua organização do Azure DevOps, as contas da Microsoft são suficientes. Para obter mais informações, consulte Sobre como acessar o Azure DevOps com o Microsoft Entra ID.
Para implantações locais, o AD é recomendado para 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
Outros aplicativos e serviços podem se integrar ao Azure DevOps. Para aceder à sua conta sem pedir repetidamente credenciais de utilizador, as aplicações podem utilizar os seguintes métodos de autenticação:
Tokens de acesso pessoal (PATs) 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
Azure DevOps OAuth para gerar tokens em nome dos usuários para acessar APIs REST. As APIs das Contas e dos Perfis só suportam OAuth.
Autenticação SSH para gerar chaves de criptografia para si mesmo quando você usa Linux, macOS ou Windows executando o Git para Windows e não pode usar gerenciadores de credenciais Git ou PATs 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, normalmente automatizando fluxos de trabalho que precisam acessar recursos do Azure DevOps. A maioria das ações tradicionalmente executadas por uma conta de serviço e uma PAT pode ser feita usando uma entidade de serviço ou identidade gerenciada.
Por predefinição, a conta ou a coleção permite o acesso a todos os métodos de autenticação. Você pode limitar o acesso restringindo especificamente 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 aplicativo que já teve acesso recebe um erro de autenticação e não pode acessar sua conta.
Para obter mais informações, consulte os seguintes artigos:
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. Mesmo que a autenticação seja bem-sucedida, uma ação específica ainda poderá ser desautorizada se o usuário ou grupo não tiver autorização.
A autorização depende das permissões atribuídas ao usuário, diretamente ou por meio da associação a um grupo de segurança ou função de segurança. Os níveis de acesso e sinalizadores de recursos também podem gerenciar o acesso a recursos específicos. 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 determinam os níveis de acesso do usuário para ações específicas em recursos.
- Cada família de recursos, como itens de trabalho ou repositórios Git, tem um namespace exclusivo.
- Cada namespace contém zero ou mais listas de controle de acesso (ACLs).
- Cada ACL inclui um token, um sinalizador de herança e entradas de controle de acesso (ACEs).
- Cada ACE tem 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 várias políticas. Especificamente, você pode habilitar ou desabilitar as seguintes políticas:
Geral
- URL da política de privacidade: especifica um URL vinculado ao seu documento personalizado que descreve como você lida com a privacidade de dados de convidados internos e externos. Para obter mais informações, consulte Adicionar um URL de política de privacidade para sua organização.
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. Para obter mais informações, consulte Restringir a criação da organização.
As políticas a seguir determinam o acesso concedido a usuários e aplicativos em suas organizações:
- Acesso a aplicativos que não são da Microsoft via OAuth.
- Acesso à autenticação SSH.
- Permitir projetos públicos: quando habilitados, os usuários podem criar projetos públicos que permitem que não membros de um projeto e usuários que não estão conectados somente leitura, acesso limitado aos artefatos e serviços do projeto. Para obter mais informações, consulte Tornar seu projeto público.
- Registrar eventos de auditoria - Ative a capacidade de rastrear eventos e fluxos de auditoria para sua organização.
- Habilite a validação da Política de Acesso Condicional (CAP) do Microsoft Entra.
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 Microsoft Entra ID do 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 ativado, 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 Conectar-se ao GitHub/FAQs.
Grupo de utilizadores com âmbito de 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, incluindo listas de usuários, listas de projetos, detalhes de cobrança, dados de uso e muito mais.
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 determinados usuários, 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 a visibilidade e a colaboração do usuário para 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ó pode acessar as páginas Visão geral e Projetos das configurações da organização.
- Só pode se conectar e exibir os projetos aos quais eles foram adicionados explicitamente.
- Só é possível selecionar identidades de usuário e grupo 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
Habilitar o recurso de visualização Limitar a visibilidade e a colaboração do usuário a projetos específicos impede que os usuários com escopo de projeto pesquisem usuários 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. Este é um comportamento inesperado, e uma resolução está em andamento. Para resolver 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 várias 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 liberação representam desafios de segurança exclusivos, recursos adicionais 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.
- Protegendo o Azure Pipelines
- Planeje como proteger seus pipelines YAML
- Proteção do repositório
- Recursos de pipeline
- Recomendações para estruturar com segurança projetos em seu pipeline
- Segurança através de modelos
- Como usar variáveis e parâmetros com segurança em seu pipeline
- Recomendações para proteger a infraestrutura compartilhada no Azure Pipelines
- Outras considerações de segurança