用于访问LDAP目录服务器的Python3模块。
bonsai的Python项目详细描述
这是一个在python中处理ldap操作的模块。在Unix平台上使用libldap2 Microsoft Windows上的WinLDAP。LDAP条目映射到特殊的不区分大小写的Python 字典,跟踪字典的更改以方便修改服务器上的条目。
仅支持Python3.5或更新版本,以及ldapv3。
功能
- 使用用c编写的ldap库(openldap和winldap)以加快 处理。
- 简单的Python图案。
- 实现自己的类字典对象以映射LDAP条目 这样可以更容易地添加和修改它们。
- 使用各种异步库(如asyncio、gevent)。
建筑要求
- python3.5-dev或更新版本
- libldap2 dev
- libsasl2 dev
- libkrb5 dev或heimdal dev(可选)
文档
文档可以通过简单的教程online获得。
示例
简单的搜索和修改:
importbonsaiclient=bonsai.LDAPClient("ldap://localhost")client.set_credentials("SIMPLE",user="cn=admin,dc=bonsai,dc=test",password="secret")withclient.connect()asconn:res=conn.search("ou=nerdherd,dc=bonsai,dc=test",2,"(cn=chuck)")res[0]['givenname']="Charles"res[0]['sn']="Carmichael"res[0].modify()
与Asyncio一起使用(在Python3.5或更新版本上):
importasyncioimportbonsaiasyncdefdo():client=bonsai.LDAPClient("ldap://localhost")client.set_credentials("DIGEST-MD5",user="admin",password="secret")asyncwithclient.connect(is_async=True)asconn:res=awaitconn.search("ou=nerdherd,dc=bonsai,dc=test",2)print(res)who=awaitconn.whoami()print(who)loop=asyncio.get_event_loop()loop.run_until_complete(do())
更改日志
目前,您可以读取变更日志here。
贡献
欢迎任何意见和建议。如有任何问题,请在 这是GitHub page。