У меня две машины с 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