Python de Recherche LDAP
J'ai lu sur la façon de rechercher des serveurs LDAP à l'aide de Python, mais j'ai été coincé pendant des heures et je ne sais pas pourquoi. C'est ma première fois d'essayer d'utiliser ce genre d'API.
Heres comment je ouvrir la connexion et essayez de rechercher:
aims_server = '#####.com'
base_dn = 'cn=EMPLOYEES,cn=portal,cn=Groups,dc=Company,dc=com'
username = 'cn=admin,cn=users,dc=Company,dc=com'
password='#####'
directory=ldap.open(aims_server)
directory.simple_bind_s(username, password)
#retrieve the current members from group
old = {'uniquemember':attr['uniquemember']}
Puis je fait exprès de casser le code, donc je peux utiliser le débogueur et de recherche à l'aide de ceci:
>>> searchFilter = "cn=*"
>>> directory.search_s(base_dn,ldap.SCOPE_SUBTREE,searchFilter, retrieveAttributes)
Résultats:
[('cn=EMPLOYEES,cn=portal,cn=groups,dc=Company,dc=com', {'displayname': ['Employees'], 'description': ['Members of this group are employees. '], 'objectclass': ['top', 'groupOfUniqueNames', 'orclGroup'], 'orclisvisible': ['true'], 'owner': ['cn=portal_admin ,cn=users,dc=Company,dc=com', 'cn=portal,cn=users, dc=Company,dc=com'], 'uniquemember': ['cn=alan,cn=users,dc=Company,dc=com', 'cn=alan_r,cn=users,dc=Company,dc=com', ....
Si j'ai un filtre de "cn=*"
, il va ramener le dictionnaire ci-dessus, mais si j'ai effectivement mis quelque chose dans le searchFilter
il ne sera pas ramener tous les résultats.
N'quelqu'un a des idée? Je me demande si je ne suis pas à la recherche assez profond dans les répertoires?
MODIFIER
Le mieux que je puisse semblent sortir de ce est pour modifier les paramètres:
searchFilter = "cn=*"
retrieveAttributes = ["uniquemember"]
Alors:
(cn, attr) = searcher.pop()
Retourne:
{'uniquemember': ['cn=alan_t,cn=users,dc=company,dc=com','cn=alan_r,cn=users,dc=company....
Il semble comme il est à la recherche d'un niveau trop élevé, comment pourrais-je aller vers le bas un autre niveau d'être à la recherche de l'unique membres?
Je veux juste à la recherche de leurs noms!
OriginalL'auteur JackalopeZero | 2011-11-17
Vous devez vous connecter pour publier un commentaire.
Je l'ai enfin fait et il ne m'a fallu plus de 5 heures.
Chaque fois que j'ai foiré autour avec une configuration que j'ai appris un peu plus, mais en gros, j'ai dû essayer toutes les combinaisons de l'obtenir pour fonctionner.
Il s'avère que j'ai été sans doute trop spécifique avec le base_dn, donc j'ai changé pour un niveau plus élevé
Puis j'ai réalisé que je ne pourrais pas de recherche plus bas que uniquemember, de sorte que devait être l'attribut j'étais de retour
De cette façon, le filtre fonctionne
Il sera ensuite de retour:
Bien qu'il ne contiennent un objet vide à la fin, cela me donne toujours le résultat Im recherchez.
J'espère que cela aide quelqu'un d'autre quand ils sont nouveaux pour LDAP
OriginalL'auteur JackalopeZero
Au lieu de ...
J'ai utilisé ...
Aussi, si vous avez ...
ne parvenez toujours pas à vous donner ce dont vous avez besoin?
OriginalL'auteur jcfollower