youngfan007 发表于 2015-4-26 05:55:23

python实例26[验证用户是否存在于LDAP Server]

  
  需要安装python2.x 和python-LDAP模块。
  python-ldap:http://www.python-ldap.org/
  python-ldap的windows版本下载:http://pypi.python.org/pypi/python-ldap/
  
  python26实例代码:(用来验证某用户是否存在于LDAP Server)


import time
import ldap

'''
    Need install python-ldap module from:
      http://www.python-ldap.org/
    For windows OS, you can get the module from:
      http://pypi.python.org/pypi/python-ldap/
'''
ldapuser = "yourusername";
#ldapuser = "CN=yourusername,OU=XXX,OU=XXX,DC=XXX,DC=XXXXX,DC=com"
ldappass = "youruserpasswd";
ldappath = "ldap://yourldapserveriporname:yourldapserverport/";
baseDN = "DC=XXX,DC=XXXXX,DC=COM"
FoundResult_ServerBusy = "Server is busy"
FoundResult_NotFound = "Not Found"
FoundResult_Found = "Found"

def _validateLDAPUser(user):
    try:
      l = ldap.initialize(ldappath)
      l.protocol_version = ldap.VERSION3
      l.simple_bind(ldapuser,ldappass)
      searchScope= ldap.SCOPE_SUBTREE
      searchFiltername = "sAMAccountName"
      retrieveAttributes = None
      searchFilter = '(' + searchFiltername + "=" + user +')'
      ldap_result_id = l.search(baseDN, searchScope, searchFilter, retrieveAttributes)
      result_type, result_data = l.result(ldap_result_id,1)
      if(not len(result_data) == 0):
          #print result_data
          return 1, FoundResult_Found
      else:
          return 0, FoundResult_NotFound
    except ldap.LDAPError, e:
      #print e
      return 0, FoundResult_ServerBusy
    finally:
      l.unbind()
      del l
def validateLDAPUser(user, trynum = 30):
    i = 0
    isfound = 0
    foundResult = ""
    while(i < trynum):
      #print "try: " + str(i)
      isfound, foundResult = _validateLDAPUser(user)
      if(isfound):
          break
      #time.sleep(60)
      i+=1
    print "-------------------------------"
    print "user is :" + user
    print "isfound :" + str(isfound)
    print "FoundResult : " + foundResult
    return isfound, foundResult
  
  
  
  参考:
  http://www.grotan.com/ldap/python-ldap-samples.html
  http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=python&Number=533078&page=1&view=collapsed&sb=5&o=all
  

http://www.python-ldap.org/doc/html/index.html   
  
  完!
页: [1]
查看完整版本: python实例26[验证用户是否存在于LDAP Server]