I am trying to use Python ldap3 to retrieve users from a ldap. This is my setup
from ldap3 import Server, Connection, ObjectDef, AttrDef, Reader, Writer, ALL
server = Server('ldap://ldapserver:389', get_info=ALL)
conn = Connection(server, 'eTGlobalUserName=user,eTGlobalUserContainerName=Global Users,eTNamespaceName=CommonObjects,dc=iam,dc=eta', 'pass123', auto_bind=True)
When i search using the connection object, i can retrieve all users:
conn.search('eTGlobalUserContainerName=Global Users,eTNamespaceName=CommonObjects,dc=iam,dc=eta', '(objectclass=eTGlobalUser)')
But when i try to get all users with the Reader i only get one item and it does not even contain an user, this is what i did:
obj_person = ObjectDef('eTGlobalUser',conn)
r = Reader(conn,obj_person,'eTGlobalUserContainerName=Global Users,eTNamespaceName=CommonObjects,dc=iam,dc=eta')
r.search()
Is there anything i am missing?
Edit 1 This is the output of print(r):
This is the output of print(r):
CURSOR : Reader
CONN : ldap://ldapserver:389 - cleartext - user: eTGlobalUserName=user,eTGlobalUserContainerName=Global Users,eTNamespaceName=CommonObjects,dc=asusisv-iam,dc=eta - not
lazy - bound - open - <local: 10.150.8.169:54196 - remote: 10.145.10.123:389> - tls not started - listening - SyncStrategy - internal decoder
DEFS : eTGlobalUser
ATTRS : ['eTAccessControlList', ... , 'eTGlobalUserName', ... , 'objectClass']
BASE : 'eTGlobalUserContainerName=Global Users,eTNamespaceName=CommonObjects,dc=iam,dc=eta' [SUB]
FILTER : '(objectClass=eTGlobalUser)'