温馨提示×

linux gitlab怎么集成ldap

小樊
33
2026-09-10 10:45:21
栏目: 智能运维

在 Linux 上部署的 GitLab 集成 LDAP 主要通过修改 GitLab 的配置文件完成。下面以 Omnibus 版 GitLab(最常见) 为例说明。


一、前提条件

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

二、修改 GitLab LDAP 配置

1. 编辑配置文件

sudo vim /etc/gitlab/gitlab.rb

2. 添加 LDAP 配置(基础示例)

gitlab_rails['ldap_enabled'] = true

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

Active Directory 示例

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

三、重新配置 GitLab

sudo gitlab-ctl reconfigure

四、检查 LDAP 是否配置成功

sudo gitlab-rake gitlab:ldap:check

看到用户列表说明配置成功。


五、登录测试

  • 打开 GitLab 页面
  • 使用 LDAP 用户名 / 邮箱
  • 密码为 LDAP 密码

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


六、常见问题

1. 登录提示用户不存在

  • base / uid 配置错误
  • user_filter 过滤了用户
  • GitLab 无法连接 LDAP

2. 使用 SSL/TLS

port: 636
encryption: 'simple_tls'

或:

port: 389
encryption: 'start_tls'

3. 只允许特定用户登录

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

七、Docker / 源码版说明

  • Docker:在 GITLAB_OMNIBUS_CONFIG 环境变量中写入相同配置
  • 源码版:修改 config/gitlab.yml

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

  • GitLab 安装方式(Omnibus / Docker / K8s)
  • LDAP 类型(OpenLDAP / AD)
  • 是否启用 SSL

我可以直接帮你写一份可用配置。

0