在 CentOS 上部署的 GitLab 集成 LDAP 通常通过修改 GitLab 配置文件 来实现(GitLab 内置了对 LDAP 的支持,无需额外插件)。下面以 Omnibus 安装的 GitLab 为例说明。
sudo vi /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_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
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'
active_directory: true
allow_username_or_email_login: true
base: 'dc=example,dc=com'
EOS
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
sudo gitlab-rake gitlab:ldap:check
看到用户列表说明配置成功。
uid 是否正确user_filtersudo gitlab-ctl tail gitlab-rails
port: 636
encryption: 'simple_tls'
user_filter: '(memberOf=cn=gitlab-users,ou=groups,dc=example,dc=com)'
gitlab_rails['omniauth_allow_single_sign_on'] = ['ldap']
如果你能提供:
我可以给你一份完全对应你环境的配置。