Integrando o GitLab no Active Directory (LDAP)

gitlab

Olá pessoal, bom dia (bom dia num blog que pode ser lido em qualquer hora, francamente, tsc…).

Hoje vou deixar uma dica para quem quer integrar a ferramenta GitLab no Active Directory.

fonte: http://matigado.wordpress.com

Para quem não conhece o GitLab, deixarei uma breve citação sobre o mesmo:

O GitLab compete com várias outras plataformas de gerenciamento de código para equipes de desenvolvimento – como o GitHub e Atlassian – mas atraiu investidores devido à sua torção open source no repositório de código e no modelo de ferramenta de colaboração, que permite aos usuários adaptar a plataforma para melhor atender às suas necessidades.

O texto acima também quer dizer que você pode baixar a ferramenta e instalar na sua empresa tendo uma espécie de GitHub lá dentro, mas sua instalação não será abordada aqui porque depende de várias dependências online e que do meu ponto de vista podem variar, portanto para ter acesso ao passo da instalação do GitLab localmente aconselho procurar no próprio site do GitLab (lembrando que instalei no Linux Debian 8).

Definições para o arquivo de configuração

Para a nossa configuração junto ao Active Directory vamos supor que tenhamos um servidor com as seguintes informações:

  • Nome do servidor do AD: meu_servidor_do_ad
  • Nome do domínio: dominio.central
  • Local onde está localizado o usuário administrador do AD: CN=Users
  • Base onde estão os usuários do AD: OU=PESSOAS,OU=USUARIOS,OU=ATIVOS,DC=dominio,DC=central.
  • Meu usuário admin do AD: Jair Rodrigues.

Vale lembrar uma observação feita por um usuário no site do Viva o Linux de que você não deve tentar reidentar o código, mas apenas descomentar e alterar o conteúdo do que está dentro das aspas. Eis a observação feita por ele:

ATENÇÃO: este arquivo gitlab.rb tem indentação (yaml), sendo assim não mude os espaços, não use tab, cada linha que você descomentar, deixe os espaços exatamente como estavam, não tente deixar mais para esquerda, mais para direita, não mexa na formatação, apenas apague o “#”, mude os atributos e pronto.

Portanto depois de instalado o Gitlab devemos editar suas configurações para integrá-lo ao AD de acordo com o que está descrito abaixo.

   nano /etc/gitlab/gitlab.rb
   gitlab_rails['ldap_enabled'] = true

###! **remember to close this block with 'EOS' below**
   gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
      main: # 'main' is the GitLab 'provider ID' of this LDAP server
      label: 'LDAP'
      host: 'meu_servidor_do_ad.dominio.central'
      port: 389
      uid: 'sAMAccountName'
      method: 'plain' # "tls" or "ssl" or "plain"
      bind_dn: 'CN=Jair Rodrigues,CN=Users,DC=dominio,DC=central'
      password: 'xererenenen'
      active_directory: true
      allow_username_or_email_login: true
      block_auto_created_users: false
      base: 'OU=PESSOAS,OU=USUARIOS,OU=ATIVOS,DC=dominio,DC=central'
# user_filter: ''
      attributes:
         username: ['uid', 'userid', 'sAMAccountName']
         email: ['mail', 'email', 'userPrincipalName']
         name: 'cn'
         first_name: 'givenName'
         last_name: 'sn'
EOS

Algumas observações acerca desta configuração

Sobre o atributo base:

Na empresa que trabalho, os usuários do AD estão sob a seguinte hierarquia de pastas: ATIVOS > USUARIOS > PESSOAS, mas quando você utiliza um utilitário chamado ADSI (que está lá instalado no Active Directory) o programa te dá o caminho escrito ao contrário, portanto será assim mesmo, de trás de frente que você irá escrever na configuração do GitLab.


base: 'OU=PESSOAS,OU=USUARIOS,OU=ATIVOS,DC=dominio,DC=central'

Para entrar no aplicativo ADSI você deve seguir o caminho abaixo.

E para localizar o caminho dos seus usuários siga a árvore até ela lhe mostrar por completo.


Sobre o atributo bind_dn:

Uma das coisas que me confundiu bastante foi o fato de nessa configuração do Gitlab eu não ter de colocar o login do meu usuário administrador, mas sim o nome dele. Portanto preste atenção a isso porque meu usuário tem login jair.rodrigues, mas seu nome é Jair Rodrigues lá no AD.


bind_dn: 'CN=Jair Rodrigues,CN=Users,DC=dominio,DC=central'

Comandos úteis para ocasiões inesperadas ou desesperadas

Para caso você precise consultar as informações sobre sua versão do GitLab instalada


gitlab-rake gitlab:env:info

Para editar o arquivo de configuração do GitLab


nano /etc/gitlab/gitlab.rb

Para reconfigurar seu GitLab logo após ter editado o arquivo de configuração acima

gitlab-ctl reconfigure

Para reiniciar o serviço do Gitlab logo após tê-lo reconfigurado

service gitlab-runsvdir restart

Para abrir um console rails no intuito de alterar alguns parâmetros

gitlab-rails console

Para abrir um console rails e desbloquear um usuarío (o usuário pode ser bloqueado no GitLab após tentar logar digitando a senha errada repetidamente)

gitlab-rails console
user = User.find_by_email("myuser@example.com")
user.state = "active"
user.save
exit

fonte: http://matigado.wordpress.com

fonte: https://forum.gitlab.com/t/how-to-reset-the-admin-password-via-the-rails-console/223

fonte: https://gitlab.com/gitlab-org/gitlab-ce/issues/13179

fonte: https://www.vivaolinux.com.br/artigo/Instalacao-do-Gitlab-e-introducao-ao-Git?pagina=3

fonte: http://blog.dimaj.net/content/updated-howto-enable-ldap-filters-gitlab

Anúncios
%d blogueiros gostam disto: