Назад | Перейти на главную страницу

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": ""
    }

Мне нужно использовать обычный auth и 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.

Какую информацию я могу предоставить для исследования этой проблемы?

Прежде всего, вам, вероятно, следует изменить конфигурацию для 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