Адресная книга на LDAP за пять минут

Данное руководство поможет вам быстро настроить общедоступную адресную книгу с помощью OpenLDAP

[WBR, DebosH]

Адресная книга на LDAP за пять минут.


Эта шпаргалка не претендует на какую либо замену официальной документаци. RTFM – рулез форева, однако сие творение позволит быстро настроить и запустить собственно адресную книгу общего пользования – штуку довольно удобную. Ну а дальше уже можно обвешать все это дело разными спецфигнями, типа авторизации etc.


Итак, Steb-by-step lamers LDAP adresbook guide :-) (шутка)


Качаем с www.openldap.org собственно LDAP сервер. Если хотите в качестве backenda BerkleyDB, тогда качаем и его (www.sleepycat.com) Надоть версию 4. Кого устроит gdbm – берем его. Меня устроило – ибо он у меня уже был :). Итак, считаем, DB установлен. OpenLDAP<version>.tar.gz лежит в /usr/src. Идем туда.

tar -zxvf ./OpenLDAP<version>.tar.gz

cd OpenLDAP<version>

./configure –help > conf.help

читаем получившийся файл, выбираем опции по вкусу

./configure <option>

у меня было:

./configure –with-prefix=/usr/local/openldap --enable-bdb=no --enable-ldbm --with-ldbm-api=gdbm –enable-debug

БерклейДБ запретил (он включен по умолчанию), ldbm разрешил, без последнего демон не будет писать логи.

make depend

make

make test

su - root -c make install

Идем в /usr/local/openldap/etc, редактируем slapd.conf Для адресной книги у меня

подключены три схемы:

include /usr/local/openldap/schema/core.schema

include /usr/local/openldap/schema/cosine.schema

include /usr/local/openldap/schema/inetorgperson.schema

затем обязательно надо сказать:

allow bind_v2 – по умолчанию поддерживается протокол V3, а на сколько я понял , ни мышь, ни мозила по нему работать не умеют. Впрочем это мое имхо, если я не прав – поправьте.

pdfile /var/lock/slapd.pid

argsfile /var/lock/slapd.args

loglevel -1 -в лог пишется ВСЯ отладочная информация.

database ldbm

suffix “o=MyOrganization,c=ru” - вместо MyOrganization поставьте, ну скажем, аббревиатуру своей.

rootdn “cn=admin, o=MyOrganization,c=ru ” - фактически – учетная звпись администратора.

rootpw MyZuperSecretPassword – его пароль.

directory /usr/local/openldap/var/openldap-data - каталог, где буде база храниться.

index default pres, eq

Все, запускаем сервер -

/usr/local/openldap/sbin/slapd

Смотрим лог – в конце должно стоять что-то типа daemon started. Ага, потираем руки, идем пить пиво.

Напимшись, делаем базу: создаем пустой текстовый файл

cd /usr/local/openldap/var/openldap-data

touch mybase.ldif

dn: o:myorganization,c=ru ; Описываем уникальный ключ корневого каталога

objectclass: dcobject ;Указываем, какие классы объектов доступны (т.е атрибуты каких

objectclass: organization ;классов можно описывать для этого каталога

o: myorganization ; Собственно описываем атрибуты

dc: myorganization ;o и c – сокращение атрибутов organization и country


dn: ou=users,o=sngi,c=ru

ou: users

objectclass: top ;указывает на родительские объекты (?)

objectclass: organizationalunit ;дочерний объект от organization


dn: cn=John S Doe,ou=users,o=myorganization,c=ru

objectclass:top

objectclass: organizationalperson

objectclass: inetorgperson

cn: John Doe ;Общее имя – их может быть несколько, тогда для кажлого – новая строка

mail: john@foo.com

gn: John ; givenname - Имя

sn: Doe ; surname - Фамилия


Таким образом мы будем иметь следующую структуру каталогов:

корневой: myorganization.ru (/)

в корневом пока один: users.myorganization.ru (/users)

в users один пользователь: djohn doe.users.myorganization.ru (/users/john doe)

если вы не хотите пихать всех в одну структурную единицу – создайте для каждого отдела свою:

dn: ou=cooladmin,o=sngi,c=ru

ou: cooladmin

objectclass: top ;указывает на родительские объекты (?)

objectclass: organizationalunit ;дочерний объект от organization


Теперь собственно создадим базу:

slapadd -f ./mybase.ldif -D “cn=admin.o=myorganization,c=ru” -W

-ппосле ключа -D идет УЗ админа, которую вы прописали в конфе

-W – запрос пароля, указанного там-же

Проверим:

ldapsearch -x -b “o=sngi,c=ru” “(objectclass=*)” -P 2

последнеий ключ -указываем протокол v2 (иначе Bat, например, не работает)


Можно проверить Bat – создаем новую книгу, на вкладке LDAP прописываем имя или адрес LDAP сервера, в базе поиска указываем o=myorganization,c=ru

Жмем Ок и F7. Вводим в поле e-mail @. После некоторого раздумья получим адын результат.

Все. Готово.

PS. Русские символы хранятся в базе в base64 кодировке:

givenName::0JTQvNC40YLRgNC40Lk= -Например в таком виде надо указывать в ldif-файле имя Дмитрий.

!обратите внимание на двойное двоеточие после наименование аттрибута – оно указывает как раз на то, что он base64 закодирован.

WBR, DebosH.

Статья взята с сайта OpenNet

[ опубликовано 30/11/2004 ]

WBR, DebosH - Адресная книга на LDAP за пять минут   Версия для печати