Форум проекта Pro-LDAP.ru

Общие вопросы по LDAP => Общий раздел => Тема начата: romt от 23 Сентябрь 2013, 07:42:18

Название: (objectClass=person)(!(objectClass=computer))
Отправлено: romt от 23 Сентябрь 2013, 07:42:18
Доброго времени суток.
Занялся OpenLDAP, что бы организовать внешнюю телефонную книгу для IP-телефонии от Panasonic.
Создал LDAP. Занёс тестовых пользователей (шаблон Person).
Если их искать просто по имени, например так: (&(cn=*частьимени*)(objectClass=person)) - всё находится.
А вот так: (&(cn=*частьимени*)(&(objectClass=person)(!(objectClass=computer)))) - не находится (0 результатов)

Клиент IP-телефонии ищет именно вторым вариантом. Изменить нельзя. Т.е. поиск из него не работает. А хочется.

В схеме данных objectClass=computer отсутствует. Поэтому не ищет?
Я не планирую держать в каталоге компьютеры.

Оперативный поиск по статьям результатов не дал. Если есть - ткните в нужное руководство.
Название: Re: (objectClass=person)(!(objectClass=computer))
Отправлено: egor от 23 Сентябрь 2013, 14:04:36
Здравствуйте!
В схеме данных objectClass=computer отсутствует. Поэтому не ищет?
Да, именно поэтому. Фильтр явно заточен под AD. Если изменить фильтр не удастся (хотя странно, какая марка у этого устройства?), придётся расширять схему данных каталога.

Егор
Название: Re: (objectClass=person)(!(objectClass=computer))
Отправлено: romt от 24 Сентябрь 2013, 11:15:48
Изменить фильтр нельзя. Это приложение компьютерной телефонии для IP-АТС Panasonic. Называется Communication Assistant.
Вопрос по введению класса:
Как я понимаю, мне нужно ввести objectclas=computer.
В стандартных схемах OpenLDAP (core.schema, cosine.schema, inetorgperson.schema и т.д.) я такого класса не нашел.
Поверхностным поиском в гугле тоже не нашел (всё Active Directory попадается).
Я могу в принципе определить свой собственный класс. Но если я правильно понял http://pro-ldap.ru/tr/zytrax/ch3/index.html#objectclass-def , я не могу взять OID класса с потолка, я должен взять класс единого реестра или получить его там: http://www.alvestrand.no/objectid/top.html
Класс computer по поиску там не находится, есть класс host, есть server.
Что делать? Впихивать класс computer с потолка?
Вообще слабо верится, что в OpenLDAP никто ещё такой класс не изобретал.
Название: Re: (objectClass=person)(!(objectClass=computer))
Отправлено: egor от 25 Сентябрь 2013, 05:22:54
Здравствуйте! Курт Зеленга когда-то пытался вести AD-шные схемы (их можно найти в мёртвых схемах OpenLDAP (http://www.openldap.org/devel//cvsweb.cgi/~checkout~/servers/slapd/schema/Attic/)), но потом забросил с пометкой "кому надо, возьмёт в MSAD". Если Вы не планируете вести в каталоге компьютеры, можно просто сделать класс-заглушку с Microsoft-овским OID, что-то типа:
objectclass ( 1.2.840.113556.1.3.30
        NAME 'computer'
        SUP top
        STRUCTURAL
        MUST cn )

Егор