资讯专栏INFORMATION COLUMN

使用python模拟Simple方式连接ldap

zhangke3016 / 3511人阅读

摘要:实现用户登录验证,首先获取用户的,然后再验证用户名和密码获得用户的参考文档

#!/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...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/37856.html

相关文章

  • mitmproxy与安卓模拟器搭配,助力Python爬虫工程师,然后就可以爬CSDN粉丝数据了

    摘要:配合安卓模拟器有了前文的铺垫,在加上以前对和的学习,和模拟器连接操作就非常容易了。配置模拟器的代理,指向电脑,同时端口为。 本篇博客为大家介绍 mitmproxy,...

    ddongjian0000 评论0 收藏0
  • VMware Harbor:基于 Docker Distribution 的企业级 Registry

    摘要:架构介绍主要组件在架构上主要由五个组件构成的等服务,通过一个前置的反向代理统一接收浏览器客户端的请求,并将请求转发给后端不同的服务。目前不支持功能已提交。 前言 对于 Harbor 这样一个优秀的 Docker Registry 管理开源项目,以下内容基本上来自前人已有的研究,我只是将其在实践中进行了测试,并整理汇集了相关资料供大家参考,同时针对 Harbor 与 Rancher产品的...

    simon_chen 评论0 收藏0
  • PHP7.0.0在OS X编译安装

    摘要:目前支持和协议。除此以外,还能在可能的字符编码之间相互进行编码转换。如果启用了这个功能,输入字符编码可能将自动转换成。这些可能在未来增加。 前言 PHP7即将在12月3日正式发布,而RC8是已经差不多稳定了的版本,后续的GA版本主要都是在修复bug,所以为了未来开发环境的升级,准备尝试安装一下。 PHP7.0.0将在12月3日正式发布,但是12月2日时github已经发布出PHP-7...

    lordharrd 评论0 收藏0
  • 基于 Harbor 搭建 Docker 私有镜像仓库

    摘要:的每个组件都是以容器的形式构建的,使用来对它进行部署。登录输入用户名,默认密码或已修改密码登录系统。 showImg(https://segmentfault.com/img/remote/1460000012261129?w=1280&h=786); 什么是 Harbor? 第一次使用这个的时候是刚进公司处理的第一个任务的时候,发现 Harbor 就是一个用于存储和分发 Docker...

    lvzishen 评论0 收藏0

发表评论

0条评论

zhangke3016

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<