Skip to main content

A strictly RFC 4510 conforming LDAP V3 pure Python client library

Project description

Latest Version License TRAVIS-CI build status for master branch

ldap3 is a strictly RFC 4510 conforming LDAP V3 pure Python client library. The same codebase runs in Python 2, Python 3, PyPy and PyPy3.

A more pythonic LDAP

LDAP operations look clumsy and hard-to-use because they reflect the old-age idea that time-consuming operations should be performed client-side to not hog the server with heavy elaborations. To alleviate this ldap3 includes a fully functional Abstraction Layer that lets you interact with the LDAP server in a modern and pythonic way. With the Abstraction Layer you don’t need to directly issue any LDAP operation at all.

Thread safe strategies

In multithreaded programs you must use on of SAFE_SYNC (synchronous connection strategy), SAFE_RESTARTABLE (restartable syncronous connection strategy) or ASYNC (asynchronous connection strategy).

Each LDAP operation with SAFE_SYNC or SAFE_RESTARTABLE strategies returns a tuple of four elements: status, result, response and request.

  • status: states if the operation was successful

  • result: the LDAP result of the operation

  • response: the response of a LDAP Search Operation

  • request: the original request of the operation

The SafeSync strategy can be used with the Abstract Layer, but the Abstract Layer currently is NOT thread safe. For example, to use 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)

With ASYNC you must request the response with the get_response() method.

Home Page

The home page of the ldap3 project is https://github.com/cannatag/ldap3

Documentation

Documentation is available at http://ldap3.readthedocs.io

License

The ldap3 project is open source software released under the LGPL v3 license. Copyright 2013 - 2020 Giovanni Cannata

PEP8 Compliance

ldap3 is PEP8 compliant, except for line length.

Download

Package download is available at https://pypi.python.org/pypi/ldap3.

Install

Install with pip install ldap3

Git repository

You can download the latest source at https://github.com/cannatag/ldap3

Continuous integration

Continuous integration for testing is at https://travis-ci.org/cannatag/ldap3

Support & Development

You can submit support tickets on https://github.com/cannatag/ldap3/issues/new You can submit pull request on the dev branch at https://github.com/cannatag/ldap3/tree/dev

Thanks to

  • Ilya Etingof, the author of the pyasn1 package for his excellent work and support.

  • Mark Lutz for his Learning Python and Programming Python excellent books series and John Goerzen and Brandon Rhodes for their book Foundations of Python Network Programming. These books are wonderful tools for learning Python and this project owes a lot to them.

  • JetBrains for donating to this project the Open Source license of PyCharm Professional.

  • GitHub for providing the free source repository space and the tools I use to develop this project.

  • The FreeIPA team for letting me use their demo LDAP server in the ldap3 tutorial.

Contact me

For information and suggestions you can contact me at cannatag@gmail.com. You can also open a support ticket on https://github.com/cannatag/ldap3/issues/new

Changelog

Updated changelog at https://ldap3.readthedocs.io/changelog.html

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ldap3-2.9.1.tar.gz (398.8 kB view details)

Uploaded Source

Built Distributions

ldap3-2.9.1-py3.9.egg (856.8 kB view details)

Uploaded Source

ldap3-2.9.1-py2.py3-none-any.whl (432.2 kB view details)

Uploaded Python 2 Python 3

ldap3-2.9.1-py2.7.egg (858.2 kB view details)

Uploaded Source

ldap3-2.9.1-py2.6.egg (858.0 kB view details)

Uploaded Source

File details

Details for the file ldap3-2.9.1.tar.gz.

File metadata

  • Download URL: ldap3-2.9.1.tar.gz
  • Upload date:
  • Size: 398.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.4

File hashes

Hashes for ldap3-2.9.1.tar.gz
Algorithm Hash digest
SHA256 f3e7fc4718e3f09dda568b57100095e0ce58633bcabbed8667ce3f8fbaa4229f
MD5 12bbef3ec3dac315a9768eb0c2e4b4ee
BLAKE2b-256 43ac96bd5464e3edbc61595d0d69989f5d9969ae411866427b2500a8e5b812c0

See more details on using hashes here.

File details

Details for the file ldap3-2.9.1-py3.9.egg.

File metadata

  • Download URL: ldap3-2.9.1-py3.9.egg
  • Upload date:
  • Size: 856.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.4

File hashes

Hashes for ldap3-2.9.1-py3.9.egg
Algorithm Hash digest
SHA256 5630d1383e09ba94839e253e013f1aa1a2cf7a547628ba1265cb7b9a844b5687
MD5 15bc26c7e93741dae8e44ee325a8c4ef
BLAKE2b-256 e17f9bc8ea8dcaa502168a8972d1c80d0ef6c50b2397de454bb9d452220e54cf

See more details on using hashes here.

File details

Details for the file ldap3-2.9.1-py2.py3-none-any.whl.

File metadata

  • Download URL: ldap3-2.9.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 432.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.4

File hashes

Hashes for ldap3-2.9.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5869596fc4948797020d3f03b7939da938778a0f9e2009f7a072ccf92b8e8d70
MD5 b2446baeb06b7bc4289be44c7831ee9b
BLAKE2b-256 4ef671d6ec9f18da0b2201287ce9db6afb1a1f637dedb3f0703409558981c723

See more details on using hashes here.

File details

Details for the file ldap3-2.9.1-py2.7.egg.

File metadata

  • Download URL: ldap3-2.9.1-py2.7.egg
  • Upload date:
  • Size: 858.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.4

File hashes

Hashes for ldap3-2.9.1-py2.7.egg
Algorithm Hash digest
SHA256 2bc966556fc4d4fa9f445a1c31dc484ee81d44a51ab0e2d0fd05b62cac75daa6
MD5 3005e64cdadc351eb976912b72c3bda1
BLAKE2b-256 16db517b2cdd8e2eb19a41a24ce436ff3ac6986bb5687d82b5af10cfc01c4317

See more details on using hashes here.

File details

Details for the file ldap3-2.9.1-py2.6.egg.

File metadata

  • Download URL: ldap3-2.9.1-py2.6.egg
  • Upload date:
  • Size: 858.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.4

File hashes

Hashes for ldap3-2.9.1-py2.6.egg
Algorithm Hash digest
SHA256 5ab7febc00689181375de40c396dcad4f2659cd260fc5e94c508b6d77c17e9d5
MD5 32fcf2cfa1c5a89f60bd3e1ec315b8d1
BLAKE2b-256 4a5f76dd3f942e1a73406cbb56efe0b7c4a49511f99e1476e7610f50feb657c0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page