1
Общий раздел / Не работает поиск в OpenLDAP по binary атрибуту
« : 26 Январь 2022, 19:29:21 »
Добрый день.
У нас есть приложение, которое умеет авторизовывать пользователей по сертификату, который хранится в LDAP.
Я пытаюсь настроить такую авторизацию, используя OpenLDAP.
При попытке авторизации приложение отправляет searchrequest с фильтром userCertificate;binary, указывая в качестве значения собственно сертификат в его бинарном виде.
Но при этом OpenLDAP возвращает 0 results, хотя объект user, у которого этот сертификат записан в атрибут userCertificate, присутствует.
В логе OpenLDAP я вижу ошибку "unknown attributeType userCertificate;binary".
При этом если делать тоже самое, используя не OpenLDAP, а MS AD, то все работает норм - сертификат и пользователь успешно находятся.
Если пробовать сделать запрос используя ldapsearch, а не наше приложение, то результат аналогичный - ничего не находится и ошибка "unknown attributeType userCertificate;binary" в логе.
Если попробовать запрос searchrequest с фильтром userCertificate, то также ничего не находится, а в логе ошибка illegal value for attributeType userCertificate.
Я попробовал также просто создать отдельный binary атрибут:
dn: cn={1}user,cn=schema,cn=config
changetype: modify
add: olcAttributeTypes
olcAttributeTypes: ( 2.5.4.90 NAME 'bin' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
Записал в него простую последовательность символов и также проверил с помощью ldapsearch - результат аналогичный.
В связи с этим вопрос, может кто подскажет.
Как должен выглядеть работающий ldapsearch запрос, чтобы он нашёл этот объект?
Либо может быть проблема в описании атрибута в схеме?
У нас есть приложение, которое умеет авторизовывать пользователей по сертификату, который хранится в LDAP.
Я пытаюсь настроить такую авторизацию, используя OpenLDAP.
При попытке авторизации приложение отправляет searchrequest с фильтром userCertificate;binary, указывая в качестве значения собственно сертификат в его бинарном виде.
Но при этом OpenLDAP возвращает 0 results, хотя объект user, у которого этот сертификат записан в атрибут userCertificate, присутствует.
В логе OpenLDAP я вижу ошибку "unknown attributeType userCertificate;binary".
При этом если делать тоже самое, используя не OpenLDAP, а MS AD, то все работает норм - сертификат и пользователь успешно находятся.
Если пробовать сделать запрос используя ldapsearch, а не наше приложение, то результат аналогичный - ничего не находится и ошибка "unknown attributeType userCertificate;binary" в логе.
Если попробовать запрос searchrequest с фильтром userCertificate, то также ничего не находится, а в логе ошибка illegal value for attributeType userCertificate.
Я попробовал также просто создать отдельный binary атрибут:
dn: cn={1}user,cn=schema,cn=config
changetype: modify
add: olcAttributeTypes
olcAttributeTypes: ( 2.5.4.90 NAME 'bin' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
Записал в него простую последовательность символов и также проверил с помощью ldapsearch - результат аналогичный.
В связи с этим вопрос, может кто подскажет.
Как должен выглядеть работающий ldapsearch запрос, чтобы он нашёл этот объект?
Либо может быть проблема в описании атрибута в схеме?