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 : Sélectionner tout - Visualiser dans une fenêtre à part
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:

(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