使用python模拟Simple方式连接ldap

发布时间:2019-08-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了使用python模拟Simple方式连接ldap脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
#!/usr/bin/python
# -*- coding: utf-8 -*-
# filename: ldap_test.py
import ldap

'''
实现LDAP用户登录验证,首先获取用户的dn,然后再验证用户名和密码
'''

#获得用户的dn
def getLdapUserDN(user):
    l = ldap.inITialize(ldapPath)
    # Set LDAP PRotocol version used
    l.protocol_version = ldap.VERSION3
    l.simple_bind_s(ldapUser,ldappasswd)
    # l.simple_bind_s(dn,ldapPasswd) 

    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):
        r_a,r_b = result_data[0]
        print r_b["distinguishedName"]
        return 1, r_b["distinguishedName"][0]
    else:
        return 0, ''
        

if __name__ == '__main__':
    ldapPath = "ldap://x.x.x.x"
    baseDN = "OU=demo,DC=AD,DC=xx,DC=com"
    # ldapUser = "root"
    ldapUser = "CN=admin,OU=demo,DC=AD,DC=xx,DC=com"
    ldapPasswd = "demo"
    passwd = "0"
    dn = getLdapUserDN("test1")[1]
    print dn
    my_ldap = ldap.initialize(ldapPath)
    print my_ldap.simple_bind_s(dn,passwd)

参考文档:
http://www.vpsee.com/2012/11/use-python-...
http://www.linuxidc.com/Linux/2015-02/11...

脚本宝典总结

以上是脚本宝典为你收集整理的使用python模拟Simple方式连接ldap全部内容,希望文章能够帮你解决使用python模拟Simple方式连接ldap所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。