LDAP SEARCH (Extraire de l'information)
Bonjour tous le monde
j'ai crée un code qui fonctionne bien et qui me permet de m’authentifier sur un serveur AD, et me retourner les infos de l'utilisateur authentifier.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| import ldap
import getpass
# get login info
username = raw_input("Enter your username: ")
password = getpass.getpass("Enter your password: ")
ldap_server = "ldap://zirgus.localdomaine.com"
base_dn = "DC=localdomaine,DC=com"
user_dn = username + "@localdomaine.com"
search_filter = "(&(objectClass=*)(sAMAccountName=" + username + "))"
ld = ldap.initialize(ldap_server);
#ld = ldap.open(ldap_server)
ld.protocol_version = 3
ld.set_option(ldap.OPT_REFERRALS, 0)
# bind user information to ldap connection
try:
print ld.simple_bind_s(user_dn, password)
msgid = ld.search(base_dn, ldap.SCOPE_SUBTREE, search_filter,["cn"])
actual_result = ld.result(msgid)
# print msgid
print actual_result
ld.unbind_s()
except ldap.INVALID_CREDENTIALS:
print "Your username or password is invalid."
except Exception as e:
print("Connection unsuccessful: " + str(e.message))
ld.unbind_s() |
mais mon problème maintenant c'est comment extraire les informations qui ne sont pas organisée (CN, mail...)
résultat de la requête search:
Citation:
(101, [("CN=Abdou ISMAILI,OU=Users,OU=Infrastructure,OU=Syst\xc3\xa8mes d'Information Et organisation,DC=localdomaine,DC=com", {'cn': ['Abdou ISMAILI']}), (None, ['ldap://DomainDnsZones.localdomaine.com/DC=DomainDnsZones,DC=localdomaine,DC=com']), (None, ['ldap://ForestDnsZones.localdomaine.com/DC=ForestDnsZones,DC=localdomaine,DC=com']), (None, ['ldap://localdomaine.com/CN=Configuration,DC=localdomaine,DC=com'])])
Merci