我有两台机器,每台都装有 CentOS 7.0。第一台是域控制器,仅带有 OpenLDAP。我根据本教程配置了 OpenLDAP:http://www.server-world.info/en/note?os=CentOS_7&p=openldap
然后,我有另一台装有 GitLab 的机器。我尝试配置 LDAP 身份验证,但每次都收到“无效凭据”错误。
我的 GitLab 配置:
gitlab-rails": {
"ldap_enabled": true,
"ldap_servers": {
"main": {
"label": "LDAP",
"host": "192.168.50.4",
"port": 389,
"uid": "uid",
"method": "plain",
"bind_dn": "CN=gitlab,OU=people,DC=courseproject,DC=org",
"password": "mypass",
"active_directory": false,
"allow_username_or_email_login": false,
"base": "OU=people,DC=courseproject,DC=org",
"user_filter": ""
}
对于另一个项目,我必须使用普通身份验证和 LDAP,而不是 LDAPS。
我的用户和群组配置:
dn: dc=courseproject,dc=org
objectClass: top
objectClass: dcObject
objectclass: organization
o: courseproject org
dc: courseproject
dn: cn=admin,dc=courseproject,dc=org
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
userPassword: mySHApass
dn: ou=people,dc=courseproject,dc=org
objectClass: organizationalUnit
ou: people
dn: ou=groups,dc=courseproject,dc=org
objectClass: organizationalUnit
ou: groups
我不太熟悉 OpenLDAP,以前只有使用 AD 的经验。
我可以提供哪些信息来调查此问题?
答案1
首先,您可能需要将 的配置更改allow_username_or_email_login
为true
。
然后,您可能需要创建一个组gitlabusers
,其中包含您希望授予服务器访问权限的用户,并修改user_filter
为'(memberOf=cn=gitlabusers,ou=groups,dc=courseproject,dc=org)'
然后使用应用更改gitlab-ctl reconfigure
并使用检查 LDAP 配置
gitlab-rake gitlab:ldap:check RAILS_ENV=production
除非此命令成功为您提供您期望的用户列表,否则您的配置就有错误......
供参考,我的以下配置(针对 FreeIPA 服务器)有效:
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS' # remember to close this block with 'EOS' below
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'IPA'
host: 'ipa.mydomain.com'
port: 389
uid: 'uid'
method: 'tls' # "tls" or "ssl" or "plain"
bind_dn: 'uid=gitlab,cn=sysaccounts,cn=etc,dc=mydomain,dc=com'
password: '<password>'
active_directory: false
allow_username_or_email_login: true
#block_auto_created_users: false
base: 'cn=users,cn=accounts,dc=mydomain,dc=com'
user_filter: '(memberOf=cn=gitlabusers,cn=groups,cn=accounts,dc=mydomain,dc=com)'
## EE only
group_base: 'cn=groups,cn=accounts,dc=mydomain,dc=com'
#admin_group: ''
#sync_ssh_keys: true
EOS