django - How to get user Data from LDAP Active directory? -


i new learner use active directory fetch user data , getting difficulty data. have environment set this. how user data ? please me . need account information , organizational data active directory

my views.py

def getldapdata(request): try:     l = ldap.initialize("ldap://192.100.78.45")     username = "admin"     password  = "hxxxxxxx"     l.simple_bind(username, password)     except ldap.ldaperror, e:     print e  searchscope = ldap.scope_subtree retrieveattributes = none  basedn = "dc=hashed,dc=local" searchfilter = "dc=hashed,dc=local"   try:     ldap_result_id = l.search(basedn, searchscope, searchfilter, retrieveattributes)     print "ldap_result_id : " ,  ldap_result_id       result_set = []     i=1     while 1:         print ," ",         i=i+1         result_type, result_data = l.result(ldap_result_id, 0)         schema_entry=l.search_subschemasubentry_s(basedn)          m=l.get_option( ldap_result_id )          print m         if (result_data ==[]):             break         else:             result_set.append(result_data)  except ldap.ldaperror, e:     print" e---->"     print e  return httpresponse(content=simplejson.dumps({              "schema_entry" : schema_entry,           "ldapdata" : result_set,  })      

json output:

   ldapdata: [         [           [              null,             [            "ldap://forestdnszones.hashed.local/dc=forestdnszones,dc=hashed,dc=local"             ]           ]         ],         [             [              null,                [            "ldap://domaindnszones.hashed.local/dc=domaindnszones,dc=hashed,dc=local"                ]             ]         ],       [            [                null,                 [                  "ldap://hashed.local/cn=configuration,dc=hashed,dc=local"                 ]            ]      ]    ],     schema_entry: "cn=aggregate,cn=schema,cn=configuration,dc=hashed,dc=local"    } 

i got solution: - have change filter variable , starts working ..:)

here class , methods used:

class ldapdatareciver: def get_access_token(self,data):     user_detail = {'user_name':data}     auth = hmaauthentication(expire_duration=4*60*60)     access_token = auth.create_access_token(user_detail)     return access_token  def get_group(self,list):     groups=[]     try:         entry in list:             cn = entry.split(' ')             cn1 = cn[0].split('=')             groups.append(cn1[1])         return groups;      except :         raise authenticationexception("username not exist")       def authenticate_with_active_directory(self,username,password):     try:         l = ldap.initialize(settings.ldap_url)         l.simple_bind(username, password)      except ldap.ldaperror e:         raise authenticationexception("""could not bind username %s , password          ldap url %s, got exception %s""" % (username, settings.ldap_url, str(e)))       match = re.search(r'@', username)     if match:            user_id=username.split("@")                         else:         user_id=username     search_scope = ldap.scope_subtree     base_dn =settings.base_dn     filter = "(&(objectclass=user)(samaccountname=%s))" % user_id[0]     try:         ldap_result_id = l.search(base_dn, search_scope, filter, none)         result_type, result_data = l.result(ldap_result_id, all=0)           ldap_data=result_data[0][1]                     data_set={};            if ldap_data:              firstname=ldap_data['name'][0]              data_set["memberof"] =ldap_data['memberof']             data_set["displayname"]=ldap_data['displayname'][0]             data_set["firstname"]=ldap_data['givenname'][0]             data_set["samaccountname"]=ldap_data['samaccountname'][0]             data_set["email"]=ldap_data['mail'][0]             data_set["access_token"]=self.get_access_token(firstname[0])             data_set["department"]=ldap_data['department'][0]             data_set["lastname"]=ldap_data['sn'][0]             data_set["goups"]= self.get_group(data_set["memberof"])             data_set["middlename"]=ldap_data['initials'][0]          return data_set      except ldap.ldaperror, e:         raise authenticationexception("""got exception %s""" % (  str(e)))  

Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -