LDAP: ldap.SIZELIMIT_EXCEEDED - PullRequest
8 голосов
/ 31 июля 2010

Я получаю ошибку ldap.SIZELIMIT_EXCEEDED при запуске этого кода:

import ldap

url = 'ldap://<domain>:389'
binddn = 'cn=<username> readonly,cn=users,dc=tnc,dc=org'
password = '<password>'

conn = ldap.initialize(url)
conn.simple_bind_s(binddn,password)

base_dn = "ou=People,dc=tnc,dc=org"
filter = '(objectClass=*)'
attrs = ['sn']

conn.search_s( base_dn, ldap.SCOPE_SUBTREE, filter, attrs )

Где мое действительное имя пользователя, мой действительный пароль и фактический домен.

Я не знаюне понимаю, почему это так.Может кто-нибудь пролить свет?

Спасибо!:) Эрик

Ответы [ 5 ]

5 голосов
/ 31 июля 2010

Руководство: http://www.python -ldap.org / doc / html / ldap.html

исключение ldap. SIZELIMIT_EXCEEDED
Превышен предел размера LDAP. это может быть из-за sizelimit настройка на сервере LDAP.

Я думаю, что вам лучше всего ограничить sizelimit в сообщении, которое вы получаете с сервера. Вы можете сделать это, установив атрибут LDAPObject.sizelimit (устарел) или используя параметр sizelimit при использовании search_ext()

Вы также должны убедиться, что ваше связывание действительно было успешным ...

2 голосов
/ 26 августа 2011

Указанный вами фильтр (objectClass=*) является фильтром присутствия .В этом случае результаты ограничиваются поисковым запросом для объектов в каталоге и под предоставленным вами базовым объектом, то есть каждый объект под базовым объектом, поскольку каждый объект имеет по крайней мере один objectClass.Ограничьте ваш поиск, используя более строгий фильтр, или более узкую область, или более низкий базовый объект, или все три.Для получения дополнительной информации по теме поискового запроса см. Использование ldapsearch и LDAP: Практика программирования .

Администраторы сервера каталогов могут устанавливать ограничения для всех записей, которые могут быть возвращены клиентам LDAP, которые известны как ограничение размера наложенное сервером .Существует ограничение по времени, которое следует тем же правилам.

Клиенты LDAP всегда должны указывать ограничение размера и время для запроса поиска, эти ограничения, известные как запрошенные клиентом ограничения , не могут быть переопределеныоднако налагаемые сервером ограничения.

2 голосов
/ 29 июня 2011

см. Здесь, что делать, когда вы получаете эту ошибку:

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

1 голос
/ 26 июня 2012

Вы должны использовать постраничный поиск для достижения этой цели. Размер страницы будет зависеть от вашего ldap-сервера, 1000 будет работать для Active Directory.

Взгляните на http://google -apps-for-your-domain-ldap-sync.googlecode.com / svn / trunk / ldap_ctxt.py для примера

0 голосов
/ 01 августа 2010

Active Directory по умолчанию возвращает максимум 1000 результатов.Что раздражает, так это то, что вместо возврата 1000 со связанным кодом ошибки он, похоже, отправляет код ошибки без данных.

eDirectory запускается без значения по умолчанию и полностью настраивается на все, что вам нравится.

Другие каталоги обрабатывают это по-другому.(Отредактируйте и добавьте, если знаете).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...