在 CentOS 上部署的 GitLab 集成 LDAP 通常通过修改 GitLab 的配置文件来实现(Omnibus 方式最常见)。下面给你一个实用、可落地的步骤说明。
sudo vim /etc/gitlab/gitlab.rb
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
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'
sudo gitlab-ctl reconfigure
sudo gitlab-rake gitlab:ldap:check
输出类似:
Checking LDAP ...
LDAP: ... Server: LDAP is reachable
base 配置错误uid 错误(OpenLDAP 通常是 uid,AD 是 sAMAccountName)base 范围内start_tlsverify_certificates: false
user_filter: '(memberOf=cn=gitlab-users,ou=groups,dc=example,dc=com)'
https://docs.gitlab.com/ee/administration/auth/ldap/
如果你愿意,可以告诉我:
我可以帮你写一份完全匹配你环境的配置。