下面以 Debian 上通过 Omnibus 方式安装的 GitLab 为例,说明如何集成 LDAP / Active Directory。
sudo vim /etc/gitlab/gitlab.rb
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
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
sudo gitlab-rake gitlab:ldap:check
输出类似:
Checking LDAP ...
LDAP: ... Server: LDAP
LDAP users with access to your GitLab server (only showing first 100 results)
✅ 首次登录会自动创建 GitLab 用户
port: 636
encryption: 'simple_tls'
并导入 CA:
cp ldap-ca.crt /etc/ssl/certs/
user_filter: '(memberOf=CN=GitLab,OU=Groups,DC=example,DC=com)'
确保 LDAP 中有 mail 属性,GitLab 会自动同步。
如果你使用的是:
可以告诉我,我可以给你对应版本的具体配置。