在 gitlab 中配置 ldap
参考文档:帮助文档 http://10.179.122.140:8090/ help/administration/auth/ldap/index.md https://docs.gitlab.com/ee/administration/auth/ldap/index.html
在 gitlab 容器内
-$ vim /etc/gitlab/gitlab.rb
Line32: external_url ‘http://10.179.122.140’ Line437-Line463:
-gitlab_rails[‘ldap_enabled’] = true
-gitlab_rails[‘prevent_ldap_sign_in’] = false
-gitlab_rails[‘ldap_servers’] = YAML.load <<- ‘EOS’
-main:
-label: ‘LDAP’
- host: ‘10.130.161.251’
-port: 389
-uid: ‘uid’
-bind_dn: ‘cn=admin,dc=soimt,dc=com’
-password: ‘admin1234’
-encryption: ‘plain’
-verify_certificates: true
-timeout: 10
-smartcard_auth: false
-active_directory: true
-allow_username_or_email_login: false
-lowercase_usernames: true
-block_auto_created_users: true
-base: ‘dc=soimt,dc=com’
-user_filter: ’(employeeType=gitlab)’
-attributes:
-username: ‘uid’
-email: ‘mail’
-name: ‘cn’
-first_name: ‘givenName’
-last_name: ‘sn’
如果需要配置 ldap-group 权限,需要使用 gitlab-ee 版本,也就是企业版
-group_base: ‘ou=Gitlab,dc=soimt,dc=com’
-admin_group: ‘Giltlab-admins’
EOS

By default, GitLab runs a worker once per day at 01:30 a.m. 如需配置 ldap 账号同步时间,每天早上 8 点开始同步,每隔 15 分钟更新一次。
计算公式:http://www.crontabgenerator.com/
修改 2159 行:
-$ gitlab_rails[‘ldap_sync_worker_cron’] = “*/15 8 * * *”

在 ldap 中,需要登录 gitlab 的用户添加属性:employeeType=gitlab 通过 gitlab.rb 中的 user_filter 进行过滤,’(employeeType=gitlab)’
配置后,使配置生效
-$ gitlab-ctl reconfigure
配置成功后

进行验证
-$ gitlab-rake gitlab:ldap:check

在网页端进行验证

由于打开了 block_auto_created_users,因此新用户登录时,自动处于“禁用”状态。需要管理员在账号,禁用中解锁。

Gitlab 权限组配置: 管理员:appuser

设置->通用

新用户首次登录时处于“Blocked”状态,直接设置为普通用户,配置如下:不得创建 group, 对已有 group 访问权限进行控制。Gitlab 中的 group 主要指代码或数据组,非用户组。Ldap-group 同步只能在 gitlab-ee 中进行。
