gitlab配置LDAP

发布于 2024年03月13日

在 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
    图片1-ewja.png
    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 * * *”
    图片2-oolg.png
    在 ldap 中,需要登录 gitlab 的用户添加属性:employeeType=gitlab 通过 gitlab.rb 中的 user_filter 进行过滤,’(employeeType=gitlab)’
    配置后,使配置生效
    -$ gitlab-ctl reconfigure
    配置成功后
    图片3-oxij.png
    进行验证
    -$ gitlab-rake gitlab:ldap:check
    图片4-rhgs.png
    在网页端进行验证
    图片5-ujzb.png
    由于打开了 block_auto_created_users,因此新用户登录时,自动处于“禁用”状态。需要管理员在账号,禁用中解锁。
    图片6-jdwk.png
    Gitlab 权限组配置: 管理员:appuser
    图片7-pnjx.png
    设置->通用
    图片8-yhlg.png
    新用户首次登录时处于“Blocked”状态,直接设置为普通用户,配置如下:不得创建 group, 对已有 group 访问权限进行控制。Gitlab 中的 group 主要指代码或数据组,非用户组。Ldap-group 同步只能在 gitlab-ee 中进行。
    图片9-uaan.png