在 GitLab(Linux 部署)中集成 LDAP 通常用于使用公司统一账号登录 GitLab。下面以 Omnibus GitLab(最常见) 为例说明配置方法。
| 类型 | 示例 |
|---|---|
| OpenLDAP | ou=people,dc=example,dc=com |
| Microsoft AD | dc=corp,dc=example,dc=com |
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_password'
encryption: 'plain'
verify_certificates: false
active_directory: false
allow_username_or_email_login: true
base: 'ou=people,dc=example,dc=com'
user_filter: ''
EOS
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-EOS
main:
label: 'AD'
host: 'ad.corp.com'
port: 389
uid: 'sAMAccountName'
bind_dn: 'cn=gitlab,ou=users,dc=corp,dc=com'
password: 'password'
encryption: 'plain'
active_directory: true
base: 'dc=corp,dc=com'
user_filter: ''
EOS
port: 636
encryption: 'simple_tls'
verify_certificates: true
sudo gitlab-ctl reconfigure
sudo gitlab-rake gitlab:ldap:check
出现类似:
LDAP: ... Server: LDAP ... users: 25
说明成功。
✅ 首次登录会自动创建 GitLab 用户
base、uidsAMAccountNameuidverify_certificates: false
user_filter: '(memberOf=cn=gitlab-users,ou=groups,dc=example,dc=com)'
官方文档:
https://docs.gitlab.com/ee/administration/auth/ldap/
如果你愿意,可以告诉我:
我可以给你 一份可直接用的配置。