下面以 GitLab(Omnibus 安装,Debian/Ubuntu)接入 Debian 上的 OpenLDAP 为例,说明如何配置和绑定 LDAP。
slapd、ldap-utils)ldap://192.168.1.10)dc=example,dc=com)cn=admin,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: '192.168.1.10'
port: 389
uid: 'uid' # Debian LDAP 通常用 uid
bind_dn: 'cn=admin,dc=example,dc=com'
password: 'ldap_admin_password'
encryption: 'plain' # 生产建议 ldaps 或 start_tls
verify_certificates: false
active_directory: false
allow_username_or_email_login: true
lowercase_usernames: true
base: 'dc=example,dc=com'
user_filter: ''
EOS
若使用 LDAPS:
port: 636
encryption: 'simple_tls'
sudo gitlab-ctl reconfigure
sudo gitlab-rake gitlab:ldap:check
输出示例:
Checking LDAP...
LDAP users with access to your GitLab server (only showing first 100 users)
...
uid 或邮箱登录base 配置错误uid 不是 uid(检查 LDAP 属性)base 下可用命令检查:
ldapsearch -x -b "dc=example,dc=com" "(uid=testuser)"
dn: uid=testuser,ou=people,dc=example,dc=com
objectClass: inetOrgPerson
uid: testuser
cn: Test User
sn: User
mail: testuser@example.com
userPassword: {SSHA}xxxx
user_filter: '(memberOf=cn=gitlab,ou=groups,dc=example,dc=com)'
verify_certificates: true如果你愿意,我可以:
直接把你的 LDAP 结构或报错贴出来即可。