Este passo é opcional, porém dificilmente você não utilizará um LDAP na sua empresa. Para a autenticação centralizada você pode utilizar o Active Directory ou OpenLDAP, neste exemplo utilizei o
OpenLDAP.
Algumas configurações mudam entre Active Directory e OpenLDAP.
1. Edite o arquivo
/etc/gitlab/gitlab.rb e deixe as informações do LDAP conforme segue abaixo.
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.
Você precisa de um usuário/senha "bind_dn" no LDAP, e saber qual a "base" que estarão os usuários.
# vi /etc/gitlab/gitlab.rb
###OpenLDAP
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS' # remember to close this block with 'EOS' below
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'LDAP'
host: 'ldap.devopslab.com.br'
port: 389
uid: 'mail'
method: 'plain' # "tls" or "ssl" or "plain"
bind_dn: 'cn=usuario_ldap,cn=dev,ou=Users,dc=devopslab,dc=com,dc=br'
password: 'senha_texto_plano'
active_directory: false
allow_username_or_email_login: false
block_auto_created_users: false
base: 'ou=Users,dc=devopslab,dc=com,dc=br'
user_filter: ''
EOS
DICA: para o Active Directory do Windows altere os valores abaixo para:
uid: 'sAMAccountName'
active_directory: true
Obs.: testei apenas o OpenLDAP, mas em teoria deve funcionar no Active Directory.
2. ldapsearch
Rode o comando "ldapsearch" para garantir que o servidor do Gitlab esteja se comunicando com o LDAP.
# ldapsearch -h ldap.devopslab.com.br -x -w senha_texto_plano -D 'cn=usuario_ldap,cn=dev,ou=Users,dc=devopslab,dc=com,dc=br' -b 'ou=Users,dc=devopslab,dc=com,dc=br'
O resultado é uma Query no OpenLDAP.
# usuario_ldap, dev, Users, devopslab.com.br
dn: cn=usuario_ldap,cn=dev,ou=Users,dc=devopslab,dc=com,dc=br
givenName: usuario_ldap
gidNumber: 502
homeDirectory: /home/users/usuario_ldap
sn: macedo
loginShell: /bin/sh
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
userPassword:: e01ENX1WSATFpCeW1LRWxTSmp3eSFEtVZ0NTNnPT0=
uidNumber: 1000
uid: usuario_ldap
cn: usuario_ldap
mail: usuario_ldap@devopslab.com.br
3. Finalizando a configuração do LDAP:
# gitlab-ctl reconfigure
GitLab UP and Running, com HTTPS, e autenticação centralizada.