Форум проекта Pro-LDAP.ru
Общие вопросы по LDAP => Схема данных, наборы Schema, объектные классы, атрибуты и другое => Тема начата: aathexf от 16 Февраль 2013, 20:08:08
-
Доброго времени суток!
Возникла необходимость организовать хранения записей таким образом,что бы 1 запись была записана только в одном ветке дерева каталога, а в другой ссылка на эту запись.
Напрмер: в ветке ou=People,dc=example,dc=com есть запись пользователя U, и есть ветка ou=X,dc=example,dc=com, в которой есть ссылка на запись пользователя U.
В идеале, я делаю запрос на поиск в ветке ou=X,dc=example,dc=com с фильтром,содержащим данные пользователя U, получаю в ответ эти данные...
Посоветуйте как это можно сделать и можно ли?
Пробовал использовать referalls и alias, но поиск не ищет запись...
Всё это на одном сервере ldap.
-
Здравствуйте! Концепция alias (http://www.openldap.org/faq/data/cache/1111.html (http://www.openldap.org/faq/data/cache/1111.html)) работает нормально, нужно только при поиске не забывать указывать разрешение псевдонимов (в случае ldapsearch это опция -a со значением, отличным от never (по умолчанию)):
ldapsearch -x -a search -b 'ou=Aliases,dc=mycompany,dc=ru' '(uid=myUser)'
В фильтре указываются параметры настоящей записи, а не псевдонима.
Егор
-
Спасибо!Вечером опробую!!!
-
К сожалению,данный способ не работает для 389-ds. т.к. при добавлении записи вида:
dn: uid=uuser22,ou=people3,dc=domain,dc=edu
objectclass: alias
objectclass: extensibleObject
uid: alias
aliasedobjectname: uid=uuser1,ou=People2,dc=domain,dc=edu
автоматически добавляются объектный класс и атрибут и запись принимает вид:
dn: uid=uuser22,ou=people3,dc=domain,dc=edu
objectClass: alias
objectClass: extensibleObject
objectClass: top
uid: alias
uid: uuser22
aliasedObjectName: uid=uuser1,ou=People2,dc=domain,dc=edu
Хотя,может быть проблема и не в этом...
-
Здравствуйте! То, что в запись добавляются класс и атрибут -- это нормально. top -- абстрактный объектный класс, от которого унаследован класс alias, сервер добавляет его для соблюдения иерархии, uid: uuser22 -- тот атрибут, который образует Ваш RDN (если бы DN Вашей записи был uid=alias,ou=people3,dc=domain,dc=edu , он бы не появлялся). Так что проблемы не из-за этого. Приведите пример поискового запроса, который Вы хотите выполнить.
Егор
-
ldapsearch -x -a search -D "cn=Directory Manager" -w password -b "ou=People3,dc=domain,dc=edu" "(uid=uuser1)"
-
Здравствуйте!
ldapsearch -x -a search -D "cn=Directory Manager" -w password -b "ou=People3,dc=domain,dc=edu" "(uid=uuser1)"
Запрос правильный, но, к сожалению, концепция alias в 389ds не реализована =( . Вот ссылки:
https://bugzilla.redhat.com/show_bug.cgi?id=178898 (https://bugzilla.redhat.com/show_bug.cgi?id=178898)
https://fedorahosted.org/389/ticket/152 (https://fedorahosted.org/389/ticket/152)
Причём, к разработке ещё не приступили (этап разработки: FUTURE), так что пока не судьба. Переходите на OpenLDAP, там работает =).
Егор
-
О,пропустил этот момент=) благодарствую =)