Como criar/adicionar usuários em Jenkins Gerenciar permissões

⚡ Resumo Inteligente

Criando usuários em Jenkins São necessários quatro cliques, mas atribuir permissões diferentes a cada um deles exige o plugin Estratégia de Autorização Baseada em Funções, que substitui a função global única que cada função integrada possui. Jenkins conta, caso contrário, compartilha.

  • 🔘 Limite embutido: Jenkins É possível criar vários usuários prontos para uso, e todos eles recebem os mesmos privilégios globais.
  • ☑️ Primeiro, o plugin: Instale a estratégia de autorização baseada em funções e, em seguida, altere a autorização para a estratégia baseada em funções antes que qualquer tela de função seja exibida.
  • Três tipos de funções: As funções globais abrangem todo o controlador, as funções de item têm como alvo trabalhos e pastas, e as funções de agente têm como alvo máquinas de compilação.
  • 🧪 Exemplo resolvido: Na tela Atribuir Funções, é criada uma função de desenvolvedor, recebem as permissões necessárias e são atribuídas ao usuário guru99.
  • 🛠️ Reconhecimento de padrões: A função de um item utiliza uma expressão regular, como "tester.*", de forma que cada tarefa ou usuário correspondente assuma a função automaticamente.
  • ⚙️ Regra de segurança: Mantenha sempre uma conta com privilégios de Administrador Geral/Administrador, caso contrário, salvar uma alteração de função pode bloquear o acesso de todos os outros usuários.

Como criar e adicionar usuários em Jenkins e Gerenciar Permissões

Geralmente, em uma grande organização, existem várias equipes separadas para gerenciar e executar tarefas. JenkinsMas gerenciar essa multidão de usuários e atribuir funções a eles pode ser problemático.

Por padrão, o Jenkins O pacote oferece opções muito básicas de criação de usuários. Você pode criar vários usuários, mas só pode atribuir a eles as mesmas funções e privilégios globais. Isso não é o ideal, principalmente para uma grande organização.

O Plug-in de estratégia de função Permite atribuir diferentes funções e privilégios a diferentes usuários. Primeiro, você precisará instalar o plugin em seu sistema. Jenkins ambiente, portanto, o passo a passo abaixo aborda primeiro a criação do usuário, depois o plugin e, por fim, as telas de função que ele desbloqueia.

Como criar/adicionar um usuário em Jenkins

A seguir estão os passos para criar um novo usuário em Jenkins:

Passo 1) Faça login em Jenkins Painel de controle

Entrar na sua Jenkins painel de controle visitando http://localhost:8080/

Se você não instalou Jenkins No seu servidor local, acesse o diretório apropriado. URL Acesse seu painel de controle usando suas credenciais de login. O painel de controle que você verá é mostrado abaixo.

Jenkins O painel foi aberto no navegador em Jenkins caminho de instalação

Passo 2) Escolha a opção

Agora você verá opções para criar e adicionar um usuário em Jenkins e gerenciar os usuários atuais.

Gerenciar Jenkins Tela mostrando as opções para criar e gerenciar usuários.

Etapa 3) Crie um novo usuário

  • Sob gestão JenkinsClique em Criar usuário.
  • Entrar Jenkins Adicione detalhes do usuário, como senha, nome, e-mail etc.
  • Clique em Criar usuário

Etapa 4) O usuário é criado

Você verá no painel que um novo Jenkins O usuário foi criado de acordo com os dados inseridos, conforme a lista de usuários abaixo.

Lista de usuários no Jenkins painel de controle após a criação do novo usuário

⚠️ Nota de versão: atual Jenkins as versões listam esta tela como Gerenciar Jenkins > Usuários em vez de Gerenciar Usuários. O Criar Usuário O botão e os campos nele contidos permanecem inalterados, e a tela só existe enquanto JenkinsO próprio banco de dados de usuários é o domínio de segurança — um domínio LDAP ou de autenticação única gerencia as contas externamente.

Como instalar o plugin Role Strategy em Jenkins

A tela de usuário integrada cria contas, mas não permite atribuir permissões diferentes a elas. Essa funcionalidade é adicionada com o plugin Estratégia de Autorização Baseada em Funções, instalado da seguinte forma.

Existem dois métodos para instalar plugins em Jenkins:

  1. Instalando-o através do seu Jenkins painel de instrumentos
  2. Baixando o plugin de Jenkins site e instalando-o manualmente.

Passo 1)

  1. Acesse Gerenciar Jenkins
  2. Clique na opção Gerenciar Plugins

Gerenciar Jenkins Página com a opção de gerenciamento de plugins destacada

Passo 2)

  1. Na tela de seções disponíveis, pesquise por “função”.
  2. Selecionar funçãoEstratégia de autorização baseada em plug-in
  3. Clique em "Instalar sem reiniciar”(certifique-se de ter uma conexão ativa com a Internet)

Os resultados da pesquisa do gerenciador de plugins listam o plugin "Role-based Authorization Strategy" (Estratégia de Autorização Baseada em Funções).

⚠️ Nota de versão: o caminho agora Gerenciar Jenkins > Plugins e a aba está etiquetada Plugins disponíveisA caixa de pesquisa e o nome do plugin são os mesmos, portanto, as duas etapas acima ainda se aplicam.

Passo 3)

Após a instalação do plugin, será exibido um status de "sucesso", como mostra a tela de instalação abaixo.

Tela de instalação do plugin mostrando o status de sucesso para o plugin de estratégia de função.

Clique em Volte para a página inicial.

Passo 4) Acesse Gerenciar Jenkins -> Configurar segurança global -> Em Autorização, selecionar Estratégia Baseada em Funções. Clique em EconomizeA seção de Autorização tem a seguinte aparência.

Seção de autorização da tela de segurança global com a Estratégia Baseada em Funções selecionada.

Na atual Jenkins o link para esta página é Gerenciar Jenkins > Segurançae a própria página ainda está intitulada Configurar segurança global com a mesma lista suspensa de Autorização.

Tipos de funções no plugin de estratégia de funções

Com a Estratégia Baseada em Funções ativada, o plugin oferece três escopos de função distintos. Escolher o escopo errado é o motivo mais comum para uma permissão parecer não ter efeito, portanto, vale a pena saber o que cada um abrange antes de criar qualquer coisa.

Tipo de papel Objetivo Uso típico
Funções globais Todo o Jenkins controlador, e eles substituem qualquer configuração definida nas funções do item. administrador, uma função autenticada somente leitura, anônima
Funções do item Tarefas, pipelines e pastas cujo nome completo corresponde a um padrão de expressão regular. Conceder direitos de "Construir" e "Configurar" a uma única equipe apenas em seus próprios trabalhos.
Funções do agente Criar agentes que correspondam a um padrão Permitir que uma equipe conecte ou desconecte seus próprios agentes.

O tutorial abaixo usa uma função global para revelador e uma função de item para testadorObserve a nomenclatura: o plugin agora chama o segundo escopo de Funções do item, porque abrange pastas e pipelines, bem como trabalhos simples. Versões mais antigas — e as capturas de tela mais abaixo nesta página — rotulam a mesma tabela. Funções do projeto.

Como gerenciar usuários e funções em Jenkins

A seguir, apresentamos os passos para gerenciar e atribuir funções em Jenkins:

Passo 1)

  1. Acesse Gerenciar Jenkins
  2. Selecionar Gerenciar e atribuir funções

Gerenciar Jenkins Página que exibe a entrada "Gerenciar e Atribuir Funções" adicionada pelo plugin.

Observação: que o Gerenciar e atribuir funções Essa opção só ficará visível se você tiver instalado o plugin de estratégia de funções e alterado a autorização para Estratégia Baseada em Funções.

Passo 2) Clique em Gerenciar funções para adicionar novas funções com base na sua organização.

Tela Gerenciar e Atribuir Funções com a opção Gerenciar Funções

Passo 3) Para criar uma nova função chamada “desenvolvedor”,

  1. Digite “desenvolvedor” em “função”.
  2. Clique em “Adicionar” para criar uma nova função.
  3. Agora, selecione o Jenkins Permissões de usuário que você deseja atribuir à função "Desenvolvedor".
  4. Clique em Salvar

A grade de caixas de seleção que aparece é mostrada abaixo.

Tela "Gerenciar funções" com a função de desenvolvedor adicionada e suas permissões marcadas.

Jenkins Grupos de permissões que você pode atribuir a uma função.

Na tela Gerenciar Funções, as caixas de seleção são agrupadas pelo objeto sobre o qual cada permissão atua. A tabela abaixo explica o que cada grupo controla, o que facilita bastante a concessão do mínimo necessário para uma equipe.

Grupo de permissão O que isso garante
No geral Administrar, Ler e os demais direitos de controlador geral. Administrador Tem controle total, portanto, conceda-o com moderação.
Credenciais Visualizar, criar e atualizar credenciais armazenadas
Agente Configurar, conectar, desconectar e excluir agentes de compilação
Trabalho Criar, cancelar, configurar, criar, excluir, ler, gerenciar espaço de trabalho e mover tarefas.
Execute Excluir, reproduzir e atualizar um registro de compilação individual
Consultar Criar, configurar, excluir e ler visualizações do painel de controle.
SCM Acionando uma compilação a partir de um gancho de controle de versão

Comece cada novo cargo com Visão geral/Leitura mais Trabalho/LeituraSem esses dois itens, um usuário conectado vê um painel vazio, mesmo quando outras permissões estão marcadas, o que é a confusão mais relatada com este plugin.

Como atribuir funções em Jenkins

Passo 1) Agora que você criou funções, vamos atribuí-las a usuários específicos.

  1. Acesse Gerenciar Jenkins
  2. Selecione Gerenciar e atribuir funções

A tela Gerenciar e Atribuir Funções foi aberta para acessar a opção Atribuir Funções.

Passo 2) Adicionaremos a nova função “desenvolvedor” ao usuário “guru99"

  1. Selecione a caixa de seleção da função de desenvolvedor
  2. Clique em Salvar

Tela de atribuição de funções com a caixa de seleção da função de desenvolvedor marcada para o usuário guru99.

Você pode atribuir qualquer função a qualquer usuário, conforme sua necessidade.

Como criar funções de projeto em Jenkins

As funções globais se aplicam a todos os lugares. Quando uma permissão deve se aplicar apenas a um conjunto de tarefas, crie uma função de projeto — o escopo que o plugin agora chama de função de item.

Você pode criar funções específicas do projeto em Funções do projeto.

Passo 1) In JenkinsGerenciar e atribuir funções

  1. Insira uma função como “testador”
  2. Adicione um padrão a isso adicionando testador.*, para que qualquer nome de usuário começando com “tester” receba a função de projeto que você especificar.
  3. clique em Adicionar
  4. Selecione privilégios
  5. Clique em Salvar

A tabela de Funções do Projeto preenchida é mostrada abaixo.

Tabela de Funções do Projeto com a função de testador e o padrão de estrela de pontos para testador inserido.

O padrão é uma expressão regular comparada com o nome completo do item, então tester.* também corresponde a uma pasta chamada conjunto de testes e tudo o que estiver dentro dele. Teste um novo padrão em um trabalho descartável antes de aplicá-lo a um trabalho em andamento. projeto freestyle trabalho de oleoduto.

Segurança baseada em matriz versus estratégia baseada em funções

A estratégia baseada em funções não é a única opção de autorização nesse menu suspenso. Jenkins Navegações com segurança matricial integrada podem ser suficientes para uma instalação pequena.

Ponto de comparação Segurança baseada em matrizes Estratégia baseada em funções
Instalação Incorporado Jenkins Requer o plugin de Estratégia de Autorização Baseada em Funções.
Unidade de atribuição Cada usuário ou grupo recebe permissões diretamente. As permissões pertencem a uma função específica, e os usuários são associados a essa função.
Adicionando o décimo usuário Toda a linha de permissão é repetida manualmente. Marque uma caixa de seleção de função
Controle por tarefa Autorização matricial baseada em projetos, configurada tarefa por tarefa. Um único item com um padrão abrange todas as tarefas correspondentes.
Melhor ajuste Um pequeno grupo de usuários com acesso quase idêntico. Várias equipes, muitos empregos, acesso que muda conforme as pessoas se deslocam.

A regra geral é o número de vezes que uma permissão é repetida. Quando o mesmo padrão de marcação é inserido para um terceiro usuário, a função se torna mais barata de manter — o mesmo argumento que leva as equipes a migrarem de tarefas ad hoc para tarefas revisadas. pipeline de CI/CD.

Perguntas Frequentes

Duas coisas precisam ser verdadeiras ao mesmo tempo. O plugin "Role-based Authorization Strategy" precisa estar instalado e a autorização na tela de segurança precisa estar configurada para "Role Based Strategy". A entrada permanece oculta até que a segunda etapa seja salva.

Dê um basta Jenkins, aberto config.xml em JENKINS_HOME e substitua o authorizationStrategy elemento com <authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>Em seguida, reinicie. Mantenha sempre uma conta com privilégios de Administrador Geral para evitar precisar fazer isso.

Sim. A tela Atribuir Funções aceita nomes de grupos, bem como nomes de usuários; portanto, um grupo LDAP ou do Active Directory pode ser associado a uma função uma única vez, e a associação a partir daí é gerenciada inteiramente no diretório.

As ferramentas de aprendizado de máquina comparam as permissões concedidas com o que cada conta realmente usa e sinalizam as não utilizadas, o que revela funções com privilégios excessivos muito mais rapidamente do que ler uma matriz de permissões manualmente.

Copiloto do GitHub escreve o Groovy ou chamadas REST que criam funções em massa e rascunhos de expressões de padrão para funções de itens. RevVeja tudo o que ele produz antes de ser executado, porque um padrão incorreto amplia o acesso silenciosamente.

As contas ficam sob JENKINS_HOME/users, uma pasta por usuário com um config.xml por dentro. Os papéis e suas permissões ficam no painel principal. JENKINS_HOME/config.xmlPortanto, fazer backup dessa pasta preserva ambas.

Exclua a conta da lista de usuários. Isso remove o login, mas não o histórico de compilação. Para revogar o acesso sem excluir nada, desmarque a caixa de seleção da função para esse usuário na tela Atribuir Funções e salve.

Sim. O grupo de permissões Credenciais na tela Gerenciar Funções abrange a visualização, a criação e a atualização de segredos armazenados. Portanto, uma função pode ter permissão para executar uma tarefa, mas ser impedida de ler as credenciais que ela utiliza.

Resuma esta postagem com: