roundcube и адресная книга в LDAP’e

В статье будет выложен пример рабочих настроек для использования адресной книги в ldap’e.

Структура адресной книги в ldap’e такова:

в корне каталога создан контейнер OU с названием addressbook. Есть отдельный контейнер people, в котором заведён юзер book_ro, через которого и осуществляется доступ к адресной книге.

Структура записей:

класс объектов = inetOrgPerson
cn = имя
sn = фамилия
mail = почтовый адрес

Если у вас есть отличия — отредактируйте соответствующий код под себя.

А ниже привожу рабочий код из файла настроек roundcube :

$rcmail_config['address_book_type'] = 'ldap';
$rcmail_config['ldap_public']['domain.lan'] = array(
'name'          => 'domain.lan',
'hosts'         => array('192.168.0.1'),
'port'          => 389,
'use_tls'       => false,
'user_specific' => false,
'base_dn'       => 'ou=addressbook,dc=domain,dc=lan',
'bind_dn'       => 'cn=book_ro,ou=people,dc=domain,dc=lan',
'bind_pass'     => 'user_pass',
'ldap_version'  => 3,
'search_fields' => array('addressbook', 'cn'),
'name_field'    => 'cn',
'email_field'   => 'mail',
'surname_field' => 'sn',
'firstname_field' => 'cn',
'sort'          => 'cn',
'scope'         => 'sub',
'filter'        => '(&(mail=*)(objectClass=inetOrgPerson))',
'global_search' => true,
'fuzzy_search'  => true);

Кстати, пользователь book_ro должен обладать правами на чтение указанного OU. Для этого добавим такую запись в настройки сервера ldap:

access to dn.base="" by * read
access to dn.base="cn=Subschema" by * read
access to attrs=userPassword
by self read
by anonymous auth
by users read
###ou=addressbook
access to dn="ou=addressbook,dc=fbp,dc=lan"
by dn="cn=book_ro,ou=people,dc=fbp,dc=lan" read
by * auth
access to dn.subtree="ou=addressbook,dc=fbp,dc=lan"
by dn="cn=book_ro,ou=people,dc=fbp,dc=lan" read
by * auth
### other access
access to *
by anonymous auth
by users read
by * none

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *