Articles taggés python
Accéder à Active Directory avec Python
7
Python-ldap est une API permettant l’accès à votre annuaire LDAP avec un script Python. Rien de nouveau, c’est connu, mais c’est vraiment pratique et très puissant. L’objectif que je m’étais fixé était de pouvoir stocker dans une liste tous les membres d’un groupe de l’AD, sans doublon, et en détaillant les membres des groupes inclus dans groupes … Bref, tout bêtement du récursif. Si ça intéresse quelqu’un, qu’il le demande
. Le script ci-dessous permet simplement d’afficher les informations d’un utilisateur. Une fois que vous avez ceci, vous pouvez tout faire très simplement, ça coule de source. A noter que j’ai utilisé python2.7 et python-ldap2.4.10.
# -*- coding: iso-8859-1 *-* import ldap ldap.set_option(ldap.OPT_REFERRALS, 0) # Nécessaire chez moi pour éviter le INVALID CREDENTIALS lors du binding def search_by_samaccount(samaccount): con = ldap.initialize("ldap://MONDOMAIN:389") # Remplacez par votre domaine... con.simple_bind('MON_ID@MONDOMAIN','MON_PASSWORD') # Username et password base_filter = 'DC=MON,DC=DOMAIN,DC=FR' # Le base filter, ici on cherche à partir de la racine search_filter = 'sAMAccountName='+samaccount # Le filtre de recherche search_attr = None # Le filtre d'attribut à récupérer. Par exemple, search_attr = ['displayName']. None = No filtre search_result = con.search_s(base_filter,ldap.SCOPE_SUBTREE,search_filter,search_attr) i = 0 try: for i in range(len(search_result)-4): # Pour chaque personne trouvée, on affiche quelques infos print " \n *******************************************\n" #print search_result[i] pour afficher tous les attributs print search_result[i][1]['sAMAccountName'] print search_result[i][1]['distinguishedName'] print search_result[i][1]['displayName'] print search_result[i][1]['memberOf'] i = i + 1 except TypeError,error: print error con.unbind() # Unbind de la connexion if __name__ =='__main__': sam_input = raw_input("sAMAccountName please ? ") search_by_samaccount(sam_input) |

Commentaires récents