LDAP: ldap.SIZELIMIT_EXCEEDED

Recibo un error ldap.SIZELIMIT_EXCEEDED cuando ejecuto este código:

import ldap url = 'ldap://:389' binddn = 'cn= readonly,cn=users,dc=tnc,dc=org' 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 ) 

¿Dónde está mi nombre de usuario real, mi contraseña actual y el dominio real?

No entiendo por qué esto es. ¿Alguien puede arrojar algo de luz?

¡Gracias! 🙂 Eric

Manual: http://www.python-ldap.org/doc/html/ldap.html

excepción ldap . SIZELIMIT_EXCEEDED
Se excedió un límite de tamaño de LDAP. Esto podría deberse a una configuración de tamaño de servidor en el servidor LDAP.

Creo que lo mejor es limitar el sizelimit del mensaje que recibe del servidor. Puede hacerlo configurando el atributo LDAPObject.sizelimit (en desuso) o usando el parámetro sizelimit cuando use search_ext()

También debe asegurarse de que su enlace fue realmente exitoso …

Consulte aquí qué hacer cuando recibe este error:

¿Cómo obtener más resultados de búsqueda que el tamaño del servidor con Python LDAP?

El filtro que proporcionó ( objectClass=* ) es un filtro de presencia . En este caso, limita los resultados a la solicitud de búsqueda a los objetos en el directorio en y debajo del objeto base que proporcionó, que es cada objeto debajo del objeto base ya que cada objeto tiene al menos una objectClass . Restrinja su búsqueda utilizando un filtro más restrictivo, un scope más estricto, un objeto de base inferior o los tres. Para obtener más información sobre el tema de la solicitud de búsqueda, consulte Uso de ldapsearch y LDAP: Prácticas de progtwigción .

Los administradores de Directory Server tienen la libertad de imponer un límite a todo el servidor en las entradas que pueden devolverse a los clientes LDAP, esto se conoce como un límite de tamaño impuesto por el servidor . Hay un límite de tiempo que sigue las mismas reglas.

Los clientes LDAP siempre deben proporcionar un límite de tamaño y un límite de tiempo con una solicitud de búsqueda, sin embargo, estos límites, conocidos como límites solicitados por el cliente, no pueden invalidar los límites impuestos por el servidor.

Debe utilizar la búsqueda paginada para lograr esto. El tamaño de la página dependería de su servidor ldap, 1000 funcionaría para Active Directory.

Eche un vistazo a http://google-apps-for-your-domain-ldap-sync.googlecode.com/svn/trunk/ldap_ctxt.py para ver un ejemplo

De forma predeterminada, Active Directory devuelve un máximo de 1000 resultados. Lo que es un poco molesto es que en lugar de devolver 1000, con un código de error asociado, parece enviar el código de error sin los datos.

eDirectory comienza sin valores predeterminados y es completamente conifgurable a lo que quiera.

Otros directorios lo manejan de manera diferente. (Edite y agregue, si lo sabe).