# ldaptor **Repository Path**: watching/ldaptor ## Basic Information - **Project Name**: ldaptor - **Description**: LDAP server, client and utilities, using Twisted Python - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-23 - **Last Updated**: 2025-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Ldaptor ======= .. image:: https://img.shields.io/codecov/c/github/twisted/ldaptor?label=codecov&logo=codecov :alt: Codecov :target: https://codecov.io/gh/twisted/ldaptor .. image:: https://img.shields.io/readthedocs/ldaptor?logo=read-the-docs :alt: Read the Docs :target: https://ldaptor.readthedocs.io/en/latest/ .. image:: https://img.shields.io/github/workflow/status/twisted/ldaptor/CI?label=GitHub%20Actions&logo=github :alt: GitHub Actions :target: https://github.com/twisted/ldaptor .. image:: https://img.shields.io/pypi/v/ldaptor?logo=pypi :alt: PyPI :target: https://pypi.org/project/ldaptor/ .. image:: https://img.shields.io/badge/code%20style-black-black :alt: Black :target: https://github.com/psf/black Ldaptor is a pure-Python library that implements: - LDAP client logic - separately-accessible LDAP and BER protocol message generation/parsing - ASCII-format LDAP filter generation and parsing - LDIF format data generation - Samba password changing logic Also included is a set of LDAP utilities for use from the command line. Verbose documentation can be found on `ReadTheDocs `_. Quick Usage Example ------------------- .. code-block:: python from twisted.internet import reactor, defer from ldaptor.protocols.ldap import ldapclient, ldapsyntax, ldapconnector @defer.inlineCallbacks def example(): # The following arguments may be also specified as unicode strings # but it is recommended to use byte strings for ldaptor objects serverip = b'192.168.128.21' basedn = b'dc=example,dc=com' binddn = b'bjensen@example.com' bindpw = b'secret' query = b'(cn=Babs*)' c = ldapconnector.LDAPClientCreator(reactor, ldapclient.LDAPClient) overrides = {basedn: (serverip, 389)} client = yield c.connect(basedn, overrides=overrides) yield client.bind(binddn, bindpw) o = ldapsyntax.LDAPEntry(client, basedn) results = yield o.search(filterText=query) for entry in results: print(entry.getLDIF()) if __name__ == '__main__': df = example() df.addErrback(lambda err: err.printTraceback()) df.addCallback(lambda _: reactor.stop()) reactor.run() Installation ------------ Ldaptor can be installed using the standard command line method:: python setup.py install or using pip from PyPI:: pip install ldaptor Linux distributions may also have ready packaged versions of Ldaptor and Twisted. Debian and Ubuntu have quality Ldaptor packages that can be installed e.g., by:: apt-get install python-ldaptor To run the LDAP server (bind port 38942) from a repo checkout with the project installed:: twistd -n --pidfile=ldapserver.pid --logfile=ldapserver.log \ -y test-ldapserver.tac Dependencies: - `Twisted[tls] `_ - `pyparsing `_ - `passlib `_ for Samba passwords - `six `_ for simultaneous Python 2 and 3 compatability - `zope.interface `_ to register implementers of Twisted interfaces