cannatag/ldap3

GitHub: cannatag/ldap3

纯 Python 实现的 LDAP V3 客户端库,提供 pythonic 的抽象层和完善的线程安全策略。

Stars: 933 | Forks: 282

# LDAP3 .. image:: https://img.shields.io/pypi/v/ldap3.svg :target: https://pypi.python.org/pypi/ldap3/ :alt: Latest Version .. image:: https://img.shields.io/pypi/l/ldap3.svg :target: https://pypi.python.org/pypi/ldap3/ :alt: License .. image:: https://img.shields.io/travis/cannatag/ldap3/master.svg :target: https://travis-ci.org/cannatag/ldap3 :alt: TRAVIS-CI build status for master branch ldap3 是一个严格遵循 RFC 4510 标准的 **LDAP V3 纯 Python 客户端** 库。同一套代码库可以在 Python 2、Python 3、PyPy 和 PyPy3 中运行。 ## 更 Pythonic 的 LDAP LDAP 操作看起来笨拙且难以使用,因为它们反映了旧时代的观念,即耗时的操作应该在客户端执行,以免服务器因繁重的处理而不堪重负。为了缓解这个问题,ldap3 包含了一个功能齐全的 **Abstraction Layer**,让你以现代且 *pythonic* 的方式与 LDAP 服务器交互。使用 Abstraction Layer,你根本不需要直接发出任何 LDAP 操作。 ## 线程安全策略 在多线程程序中,你必须使用 **SAFE_SYNC**(同步连接策略)、**SAFE_RESTARTABLE**(可重启同步连接策略)或 **ASYNC**(异步连接策略)之一。 使用 SAFE_SYNC 或 SAFE_RESTARTABLE 策略的每个 LDAP 操作都会返回一个包含四个元素的元组:status、result、response 和 request: * status:表明操作是否成功 * result:操作的 LDAP 结果 * response:LDAP 搜索操作的响应 * request:操作的原始请求 SafeSync 策略可以与 Abstract Layer 一起使用,但 Abstract Layer 目前并不是线程安全的。 例如,要使用 *SAFE_SYNC*: ``` from ldap3 import Server, Connection, SAFE_SYNC server = Server('my_server') conn = Connection(server, 'my_user', 'my_password', client_strategy=SAFE_SYNC, auto_bind=True) status, result, response, _ = conn.search('o=test', '(objectclass=*)') # usually you don't need the original request (4th element of the returned tuple) ``` 使用 *ASYNC* 时,你必须使用 *get_response()* 方法来请求响应。 ## 主页 ldap3 项目的主页是 https://github.com/cannatag/ldap3 ## 文档 文档可在 http://ldap3.readthedocs.io 获取 ## 许可证 ldap3 项目是根据 **LGPL v3 许可证** 发布的开源软件。 版权所有 2013 - 2025 Giovanni Cannata ## PEP8 合规性 ldap3 符合 PEP8 规范,行长度除外。 ## 下载 可从 https://pypi.python.org/pypi/ldap3 下载包。 ## 安装 使用 **pip install ldap3** 安装 ## Git 仓库 你可以在 https://github.com/cannatag/ldap3 下载最新源代码 ## 持续集成 用于测试的持续集成位于 https://travis-ci.org/cannatag/ldap3 ## 支持与开发 你可以在 https://github.com/cannatag/ldap3/issues/new 提交支持工单 你可以在 https://github.com/cannatag/ldap3/tree/dev 的 **dev** 分支提交 pull request ## 致谢 * **Ilya Etingof**,*pyasn1* 包的作者,感谢他出色的工作和支持。 * **Mark Lutz**,感谢他优秀的 *Learning Python* 和 *Programming Python* 系列书籍,以及 **John Goerzen** 和 **Brandon Rhodes**,感谢他们的书 *Foundations of Python Network Programming*。这些书是学习 Python 的绝佳工具,本项目深受其益。 * **JetBrains**,感谢向本项目捐赠 *PyCharm Professional* 的开源许可证。 * **GitHub**,感谢提供我用于开发本项目的 *免费源代码仓库空间和工具*。 * **FreeIPA** 团队,感谢允许我在 ldap3 教程中使用他们的演示 LDAP 服务器。 ## 联系我 如需信息和提出建议,你可以通过 cannatag@gmail.com 联系我。你也可以在 https://github.com/cannatag/ldap3/issues/new 开启支持工单 ## 捐赠 如果你想维持这个项目的运行,你可以给我发送一张 Amazon 礼品卡。我将用它来提升我的信息与通信技术技能。 ## 更新日志 更新的变更日志位于 https://ldap3.readthedocs.io/changelog.html
标签:Active Directory, AD, Awesome, Checkov, LDAP, LDAP客户端, Plaso, PyPy, Python, Python2, Python3, RFC 4510, 内核驱动, 同步异步, 开发库, 开源库, 抽象层, 搜索引擎爬虫, 无后门, 目录服务, 系统管理, 纯Python, 线程安全, 网络协议, 逆向工具, 镜像验证