在 Linux 上部署的 GitLab 集成 LDAP 主要通过修改 GitLab 的配置文件完成。下面以 Omnibus 版 GitLab(最常见) 为例说明。
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' # 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
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
sudo gitlab-ctl reconfigure
sudo gitlab-rake gitlab:ldap:check
看到用户列表说明配置成功。
首次登录会自动创建 GitLab 用户。
port: 636
encryption: 'simple_tls'
或:
port: 389
encryption: 'start_tls'
user_filter: '(memberOf=cn=gitlab-users,ou=groups,dc=example,dc=com)'
GITLAB_OMNIBUS_CONFIG 环境变量中写入相同配置config/gitlab.yml如果你愿意,可以告诉我:
我可以直接帮你写一份可用配置。