温馨提示×

gitlab linux如何集成ldap

小樊
47
2026-10-01 13:02:19
栏目: 智能运维

在 GitLab(Linux 部署)中集成 LDAP 通常用于使用公司统一账号登录 GitLab。下面以 Omnibus GitLab(最常见) 为例说明配置方法。


一、前置条件

  • GitLab 已安装(Omnibus 或源码)
  • 你有 LDAP 服务(如 OpenLDAP、Microsoft AD)
  • 有 LDAP 管理员账号或只读账号
  • GitLab 服务器能访问 LDAP 端口(389 / 636)

二、LDAP 常见类型

类型 示例
OpenLDAP ou=people,dc=example,dc=com
Microsoft AD dc=corp,dc=example,dc=com

三、Omnibus 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_password'
  encryption: 'plain'
  verify_certificates: false
  active_directory: false
  allow_username_or_email_login: true
  base: 'ou=people,dc=example,dc=com'
  user_filter: ''
EOS

3️⃣ Microsoft AD 示例

gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-EOS
main:
  label: 'AD'
  host: 'ad.corp.com'
  port: 389
  uid: 'sAMAccountName'
  bind_dn: 'cn=gitlab,ou=users,dc=corp,dc=com'
  password: 'password'
  encryption: 'plain'
  active_directory: true
  base: 'dc=corp,dc=com'
  user_filter: ''
EOS

四、LDAP over SSL(推荐生产环境)

port: 636
encryption: 'simple_tls'
verify_certificates: true

五、使配置生效

sudo gitlab-ctl reconfigure

六、测试 LDAP 连接

sudo gitlab-rake gitlab:ldap:check

出现类似:

LDAP: ... Server: LDAP ... users: 25

说明成功。


七、登录 GitLab

  • 访问 GitLab
  • 点击 LDAP
  • 使用 LDAP 用户名 / 密码登录

✅ 首次登录会自动创建 GitLab 用户


八、常见问题

1️⃣ 登录失败

  • 检查 base、uid
  • AD 一般用 sAMAccountName
  • OpenLDAP 一般用 uid

2️⃣ 证书错误

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)
  • 是否使用 SSL

我可以给你 一份可直接用的配置。

0 踩