温馨提示×

centos gitlab怎么集成ldap

小樊
39
2026-09-08 22:09:36
栏目: 智能运维

CentOS 上部署的 GitLab 集成 LDAP 通常通过修改 GitLab 的配置文件来实现(Omnibus 方式最常见)。下面给你一个实用、可落地的步骤说明


一、前提条件

  • GitLab 已安装(Omnibus 包方式,推荐)
  • 已有可用的 LDAP 服务(OpenLDAP / Active Directory / 389 等)
  • 有 GitLab 服务器 root 权限

二、修改 GitLab LDAP 配置

1. 编辑配置文件

sudo vim /etc/gitlab/gitlab.rb

2. 添加 LDAP 配置(示例:OpenLDAP)

gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
  main:
    label: 'LDAP'
    host: 'ldap.example.com'
    port: 389
    uid: 'uid'
    bind_dn: 'cn=admin,dc=example,dc=com'
    password: 'ldap_admin_password'
    encryption: 'plain'  # 可用 'start_tls' 或 'simple_tls'
    verify_certificates: false
    active_directory: false
    allow_username_or_email_login: true
    lowercase_usernames: false
    base: 'dc=example,dc=com'
    user_filter: ''
EOS

如果是 Active Directory

main:
  label: 'AD'
  host: 'ad.example.com'
  port: 389
  uid: 'sAMAccountName'
  bind_dn: 'cn=gitlab,ou=users,dc=example,dc=com'
  password: 'password'
  active_directory: true
  base: 'dc=example,dc=com'

三、重新配置 GitLab

sudo gitlab-ctl reconfigure

四、检查 LDAP 是否配置成功

sudo gitlab-rake gitlab:ldap:check

输出类似:

Checking LDAP ...
LDAP: ... Server: LDAP is reachable

五、登录测试

  1. 打开 GitLab 登录页
  2. 使用 LDAP 用户名 / 邮箱登录
  3. 首次登录会自动创建 GitLab 用户

六、常见问题

1. 登录提示用户不存在

  • base 配置错误
  • uid 错误(OpenLDAP 通常是 uid,AD 是 sAMAccountName
  • 用户不在 base 范围内

2. TLS 报错

  • 使用 start_tls
  • 确保证书可信或设置:
verify_certificates: false

3. 只允许特定用户登录

user_filter: '(memberOf=cn=gitlab-users,ou=groups,dc=example,dc=com)'

七、参考官方文档

https://docs.gitlab.com/ee/administration/auth/ldap/

如果你愿意,可以告诉我:

  • GitLab 版本
  • LDAP 类型(OpenLDAP / AD)
  • CentOS 版本

我可以帮你写一份完全匹配你环境的配置

0