Pasaré a explicar como autenticarlo con LDAP.
Antes que nada realizamos una copia de la config del git:
cp -pf /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.orig
Agregamos lo siguiente en la sección "LDAP Settings", tener en cuenta los TABs y espacios, ya que si se modifica algo no va a funcionar. Reemplazar lo que está en rojo por los valores que correspondan a c/u:
### LDAP Settings
###! Docs: https://docs.gitlab.com/omnibus/settings/ldap.html
###! **Be careful not to break the indentation in the ldap_servers block. It is
###! in yaml format and the spaces must be retained. Using tabs will not work.**
gitlab_rails['ldap_enabled'] = true
###! **remember to close this block with 'EOS' below**
gitlab_rails['ldap_servers'] = YAML.load <<- br=""> main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'LDAP'
host: '192.168.0.1' #Ip del servidor LDAP con AD
port: 389 #Puerto si utiliza método plano, para ssl es otro
uid: 'sAMAccountName'
method: 'plain' # "tls" or "ssl" or "plain"
bind_dn: 'CN=Nombre Apellido Usuario para Leer el LDAP, OU=Users,OU=Ruta=Dominio,OU=Completa de OUs, DC=Mi,DC=Dominio,DC=com'
password: 'Poner Password del usuario de arriba'
active_directory: true
allow_username_or_email_login: false
block_auto_created_users: false
base: 'OU=Ruta,OU=Completa,OU=donde,OU=buscar,OU=Usuarios Permitidos,DC=Mi,DC=Dominio,DC=com'
user_filter: ''
attributes:
username: ['uid', 'userid', 'sAMAccountName']
email: ['mail', 'email', 'userPrincipalName']
name: 'cn'
first_name: 'givenName'
last_name: 'sn'
EOS #No olvidar descomentar esta linea->
gitlab-ctl reconfigure
Chequeamos que funcione la autenticación en LDAP:
gitlab-rake gitlab:ldap:check
Checking LDAP ...
Acá debe aparecer el listado de los usuarios de la OU base que configuramos"Server: ldapmain
LDAP authentication... Success
Checking LDAP ... Finished
Si obtenemos algún error de autenticación podremos utilizar el ldapsearch instalando lo siguiente:
apt-get install ldapscripts
Ejecutamos una búsqueda dentro del LDAP desde el linux con el siguiente comando, reemplazando lo que está en rojo:
ldapsearch -v -H ldap://ip_del_active_directory -b "OU=Users,OU=Sistemas,OU=Desarrolladores,DC=My,DC=Dominio,DC=com" -D "CN=Nombre Apellido,OU=Usuarios,OU=Sistemas,DC=My,DC=Dominio,DC=com" -W
El -D es el bind_dn y el -b es el base que configuraríamos en el git.
Reiniciamos el git:
gitlab-ctl restart
ok: run: gitlab-workhorse: (pid 8625) 0s
ok: run: logrotate: (pid 8632) 1s
ok: run: nginx: (pid 8639) 0s
ok: run: postgresql: (pid 8646) 1s
ok: run: redis: (pid 8655) 0s
ok: run: sidekiq: (pid 8660) 0s
ok: run: unicorn: (pid 8665) 1s
Nos logueamos a la página del gitlab y verificamos que podemos entrar con algún usuario del dominio de LDAP.
Si nos da error también podemos ejecutar un tail a la siguiente ruta:
tail -f /var/log/gitlab/gitlab-rails/production.log