温馨提示×

debian gitlab如何集成ldap

小樊
48
2026-10-02 12:59:56
栏目: 智能运维

下面以 Debian 上通过 Omnibus 方式安装的 GitLab 为例,说明如何集成 LDAP / Active Directory。


一、前提条件

  • GitLab 已安装(推荐 Omnibus 包)
  • 已有可用的 LDAP 服务(OpenLDAP / Active Directory)
  • 拥有 LDAP 的:
    • 地址(host / port)
    • Bind DN(管理员或只读账号)
    • Base DN
    • 用户、群组对应的属性

二、修改 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: # 可以改成你的 LDAP 名称
  label: 'LDAP'
  host: 'ldap.example.com'
  port: 389
  uid: 'uid'
  bind_dn: 'cn=admin,dc=example,dc=com'
  password: 'ldap_password'
  encryption: 'plain' # 如果是 ldaps 用 'simple_tls'
  base: 'dc=example,dc=com'
  user_filter: ''
EOS

3. Active Directory 示例

gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main:
  label: 'AD'
  host: 'ad.example.com'
  port: 389
  uid: 'sAMAccountName'
  bind_dn: 'cn=gitlab,ou=users,dc=example,dc=com'
  password: 'password'
  encryption: 'plain'
  base: 'dc=example,dc=com'
  user_filter: '(memberOf=CN=GitLabUsers,OU=Groups,DC=example,DC=com)'
EOS

三、应用配置

sudo gitlab-ctl reconfigure

四、验证 LDAP 配置

sudo gitlab-rake gitlab:ldap:check

输出类似:

Checking LDAP ...

LDAP: ... Server: LDAP
LDAP users with access to your GitLab server (only showing first 100 results)

五、登录测试

  1. 打开 GitLab 登录页
  2. 会看到 LDAP 登录标签
  3. 使用 LDAP 用户名 / 密码登录

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


六、常见问题

1. 使用 LDAPS(SSL)

port: 636
encryption: 'simple_tls'

并导入 CA:

cp ldap-ca.crt /etc/ssl/certs/

2. 只允许特定用户组

user_filter: '(memberOf=CN=GitLab,OU=Groups,DC=example,DC=com)'

3. 自动绑定邮箱

确保 LDAP 中有 mail 属性,GitLab 会自动同步。


七、LDAP 用户管理说明

  • LDAP 用户 不能修改密码(由 LDAP 控制)
  • 管理员仍可在 GitLab 中分配角色
  • 删除 LDAP 用户不会自动删除 GitLab 用户

如果你使用的是:

  • Docker GitLab
  • Kubernetes GitLab
  • GitLab CE vs EE

可以告诉我,我可以给你对应版本的具体配置。

0 踩