Егор, благодарю за ответ.
Да, согласен по поводу вопроса, момент важный, поэтому уточню.
ou=addressbook,dc=mycompany,dc=lanАвторизированный доступ, если человеку разрешена правка общей адресной книги и анонимный для всех остальных сотрудников
клиенты Outlook 2013, Outlook 2016 и Вебинтерфейс Rouncubemail
ou=adrbookprivate,dc=mycompany,dc=lanТолько авторизированный под конкретного пользователя
Создание, редактирование и запись контактов адресной книги.
клиенты Outlook 2013, Outlook 2016 и Вебинтерфейс Rouncubemail
Характеристики сервера.ОС FreeBSD 11.1-Release
openldap-client-2.4.45 Open source LDAP client implementation
openldap-server-2.4.45 Open source LDAP server implementation
php56-ldap-5.6.31 The ldap shared extension for php
phpldapadmin-1.2.3_7,1 PHP application to administer LDAP over the webТеперь что касается написанного Вами решения вопроса.
Попробовал, аккуратно скопировав и проверив всё, но не работает к сожалению...
Опишу что происходит.
1. Копирую написанную конфигурацию.
2. Рестартую slapd
# service slapd restart
3. Открываю в браузере phpLDAPadmin, пробую логиниться через имя пользователя
cn=adrbook,ou=adrbookusers,dc=mycompany,dc=lan
и пароль 12345
Ответ в окне браузера
Невозможно соединиться с сервером LDAP My LDAP Server
Ошибка: Invalid credentials (49) for user
error Ошибка авторизации
Неверное имя пользователя или пароль.
Зайдя через root, проверил совпадение пароля - совпадение есть, в пароле ошибки нет точно!
В логах в момент ошибки
# tail -n33 -Ff /var/log/debug.log
Oct 2 20:16:04 srv slapd[54696]: conn=1000 fd=9 ACCEPT from IP=127.0.0.1:10341 (IP=127.0.0.1:389)
Oct 2 20:16:04 srv slapd[54696]: conn=1000 op=0 BIND dn="cn=adrbook,ou=adrbookusers,dc=mycompany,dc=lan" method=128
Oct 2 20:16:04 srv slapd[54696]: conn=1000 op=0 RESULT tag=97 err=49 text=
Oct 2 20:16:04 srv slapd[54696]: conn=1000 op=1 UNBIND
Oct 2 20:16:04 srv slapd[54696]: conn=1000 fd=9 closed
Oct 2 20:16:18 srv slapd[54696]: conn=1001 fd=9 ACCEPT from IP=127.0.0.1:54724 (IP=127.0.0.1:389)
Oct 2 20:16:18 srv slapd[54696]: conn=1001 op=0 BIND dn="cn=adrbook,ou=adrbookusers,dc=mycompany,dc=lan" method=128
Oct 2 20:16:18 srv slapd[54696]: conn=1001 op=0 RESULT tag=97 err=49 text=
Oct 2 20:16:18 srv slapd[54696]: conn=1001 op=1 UNBIND
Oct 2 20:16:18 srv slapd[54696]: conn=1001 fd=9 closed
Конфиг выглядит сейчас так
# cat slapd.conf | grep -v ^# | grep -v ^$
include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/misc.schema
include /usr/local/etc/openldap/schema/nis.schema
include /usr/local/etc/openldap/schema/openldap.schema
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
modulepath /usr/local/libexec/openldap
moduleload back_mdb
access to dn.base=""
by * read
access to dn.base="cn=Subschema"
by * read
access to *
by * none
access to dn.subtree="ou=adrbookusers,dc=mycompany,dc=lan" attrs=userPassword
by anonymous auth
by * none
access to dn.subtree="ou=addressbook,dc=mycompany,dc=lan"
by dn.base="cn=adrbook,ou=adrbookusers,dc=mycompany,dc=lan" write
by * none
access to dn.subtree="ou=adrbookprivate,dc=mycompany,dc=lan"
by dn.base="cn=userspriv,ou=adrbookusers,dc=mycompany,dc=lan" write
by * none
access to dn.subtree="dc=mycompany,dc=lan"
by * search
access to * by * read
database mdb
maxsize 1073741824
overlay sssvlv
suffix "dc=mycompany,dc=lan"
rootdn "cn=root,dc=mycompany,dc=lan"
rootpw passwd_root
directory /var/db/openldap-data
index objectClass eq
Если добавляю строчки после moduleload back_mdbТакого вида
access to * by * read
То авторизация по логину
cn=adrbook,ou=adrbookusers,dc=mycompany,dc=lan проходит успешно, но право добавлять записи в
ou=addressbook,dc=mycompany,dc=lan отсутствует и выводится такая ошибка
Не удалось добавить объект на LDAP-сервер.
Сообщение LDAP: Insufficient access
Номер ошибки: 0x32 (LDAP_INSUFFICIENT_ACCESS)
Описание: You do not have sufficient permissions to perform that operation.
Тестовое создание контакта в phpLDAPadmin делаю так- выбираю
ou=addressbook- далее
"Создать потомка"- далее Выбираю шаблон
Общее: Запись в адресной книге(Generic: Address Book Entry (inetOrgPerson))*** обязательные поля Фамилия и Общее имя
* в логе это фигурирует как
Oct 2 20:41:49 srv slapd[54747]: conn=1009 op=2 ADD dn="cn=First_name Second_name,ou=addressbook,dc=mycompany,dc=lan"Тут полный лог с момента выбора опций и до момента добавления и возникновения ошибки.Ввиду объёмности, предоставил лог по ссылке
http://www.heypasteit.com/clip/0IIUKJЕгор,
какие можете дать рекомендации, может в целом подход другой нужен для той задачи что требуется ?
Кратко, то что требуется.ou=adrbookusers,dc=mycompany,dc=lanСоздание, редактирование(через outlook или roundcubemail) и запись в адресную книгу некоторым пользователям, анонимное чтение любому пользователю.
ou=adrbookprivate,dc=mycompany,dc=lanРедактирования(через outlook или roundcubemail), чтение и запись только через авторизацию.