Как получить больше результатов поиска, чем сервер sizelimit с Python LDAP?

Я использую python LDAP для поиска (среди прочего) поиска групп, и я нажимаю на ограничение размера сервера и получаю Исключение SIZELIMIT_EXCEEDED. Я пробовал как синхронный, так и асинхронный поиск и попадал в проблему в обоих направлениях.

Предполагается, что вы сможете обойти это, установив элемент управления поисковым вызовом в поиске, но в соответствии с элементами управления python-ldap docs еще не реализованы для search_ext. Есть ли способ сделать это в Python? Если библиотека python-ldap не поддерживает его, есть ли другая библиотека Python, которая делает?

Ответ 2

После некоторого обсуждения списка рассылки python-ldap-dev я могу ответить на собственный вопрос.

Элементы управления страницами поддерживаются модулем lDAP Python, но документы не были обновлены для search_ext, чтобы показать это. Пример связанный с Gorgapor, показывает, как использовать ldap.controls.SimplePagedResultsControl для чтения результатов на страницах.

Однако есть и есть. Это будет работать с серверами Microsoft Active Directory, но не с серверами OpenLDAP (и, возможно, с другими, такими как Sun). LDAP-контроль RFC неоднозначен в отношении того, нужно ли переопределить настройку sizelimit сервера для пейджинговых элементов управления. На серверах ActiveDirectory они могут по умолчанию, а на OpenLDAP они не могут, но я думаю, что есть параметр сервера, который позволит им.

Таким образом, даже если вы реализуете пейджинговый элемент управления, все равно нет гарантии, что он получит все нужные вам объекты. Вздох

Также пейджинговые элементы управления доступны только с LDAP v3, но я сомневаюсь, что существует много серверов v2.