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

Настройте Jenkins с помощью LDAP: параметр 'Root DN'

Я устанавливаю сервер LDAP и настраиваю Jenkins для принятия LDAP для аутентификации. В параметрах Jenkins у меня странное поведение с параметром Root DN.

Документация говорит:

Корневой DN

Для аутентификации пользователя и определения ролей, данных ему, Дженкинс выполняет несколько запросов LDAP.

[...]

Но на практике серверы LDAP поддерживают обширный индекс данных, поэтому указывать это поле необходимо редко - просто позвольте Дженкинсу понять это, поговорив с LDAP.

Если вы укажете это значение, поле обычно будет выглядеть примерно так: dc = acme, dc = org.

Странное поведение : Если я не укажу параметр, мой пользователь не найден. Остальные параметры имеют значения по умолчанию.

LDAP для меня новичок, поэтому я, вероятно, делаю что-то не так. Я создал дерево LDAP, используя slapd. Я создал одного пользователя adenoyelle под узлом People что я тоже создал. видеть ldapsearch результат ниже:

root@myserver:~# ldapsearch -xLLL -b 'dc=acme,dc=com'
dn: dc=acme,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: acme.com
dc: acme

dn: cn=admin,dc=acme,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator

dn: ou=people,dc=acme,dc=com
cn: people
objectClass: organizationalRole
objectClass: top
ou: people

dn: uid=adenoyelle,ou=people,dc=acme,dc=com
objectClass: account
objectClass: top
objectClass: simpleSecurityObject
uid: adenoyelle

Если я позволю Root DN пусто, мой пользователь не может пройти аутентификацию. Но это сработает, если я дам это значение для параметра:

ou = люди, dc = acme, dc = com

Что я делаю не так? Я предполагаю, что мои узлы LDAP неправильные, но я не могу понять, почему. Может проблема с objectClass ценности?

Если вы опустите это значение, клиент LDAP запросит у сервера корневую DSE, используемую в качестве базового DN. Если slapd настроен неправильно, ldapsearch не сможет получить для этого значение и, следовательно, не выполнит запрос.

Подробности здесь: Из OpenLDAP не возвращается Root DSE, цитируя:

Это фактически зарегистрировано как ошибка # 427842 против Ubuntu 9.10 (кармический).

Чтобы исправить это, скопируйте в fixRootDSE.ldif следующее:

dn: olcDatabase={-1}frontend,cn=config
changetype: modify
add: olcAccess
olcAccess: to dn.base="" by * read
olcAccess: to dn.base="cn=subschema" by * read

И выполнить

sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f fixRootDSE.ldif

Это должно дать анонимный доступ к корневому DSE.