У меня есть сервер LDAP со следующей структурой:
--> base dn
---->admin user
---->ou=employees
------>uid=person1
------>uid=person2
---->ou=services
------>uid=webservice1
------>uid=webservice2
По сути, у меня есть эта категория "сервисов" для аутентификации действительных сервисов, например, на сайте drupal, например.Этот идентификатор пользователя и его пароль будут помещены в раздел конфигурации LDAP веб-службы.Все участники "сервисов" должны иметь доступ только для чтения и поиска к разделу "сотрудники", вот и все.Сотрудники должны иметь доступ только для чтения ко всему, кроме себя (я должен иметь возможность редактировать только свою информацию).Прямо сейчас, с конфигурацией OpenLDAP по умолчанию, она позволяет любому пользователю читать или писать что угодно при входе в систему. Очевидно, что это не предпочтительно.Я включил это в slapd.conf:
access to *
by self write
by * read
by * search
Я подумал, что это сработает, но я ошибся.При тестировании этого с использованием phpldapadmin и моей учетной записи «employee», мне сказали, что root dn не может быть определен.Почему это так и как я могу это исправить?
РЕДАКТИРОВАТЬ: Ниже приведено дословное сообщение от PHPLDAPAdmin.Обратите внимание, что это не совсем ошибка, а скорее отсутствие надлежащих разрешений.Несмотря на то, что он предлагает config.php, я не думаю, что это правильное решение, так как другие программы должны будут использовать LDAP и должны видеть этот полный root, если они хотят разрешить вход в систему, верно?
Logged in as:
Could not determine the root of your LDAP tree.
It appears that the LDAP server has been configured to not reveal its root.
Please specify it in config.php