GitLab 和 OpenLDAP:凭据无效

GitLab 和 OpenLDAP:凭据无效

我有两台机器,每台都装有 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_logintrue

然后,您可能需要创建一个组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

相关内容