Skip to main content

ldaptools

Helper modules to work with LDAP directories and test LDAP tools against OpenLDAP.

  • ldaptools.ldif_utils: simple parser for LDIF files

  • ldaptools.ldap_source: generate a stream of LDAP entries from an LDAP URL

  • ldaptools.synchronize: synchronization class to synchronize a source of LDAP records with a target

  • ldaptools.paged: an LDAPObject implementating paged search requests

  • ldaptools.ldapsync: a command line client to the Synchronize class

  • ldaptools.slapd: launch a standalone slapd server, manipulate its configuration, it helps in writing tests against OpenLDAP.

ldapsync

usage: ldapsync [-h] –object-class-pivot OBJECT_CLASS_PIVOT

[–attributes-file ATTRIBUTES_FILE] [–attributes ATTRIBUTES] –source-uri SOURCE_URI –source-base-dn SOURCE_BASE_DN [–source-bind-dn SOURCE_BIND_DN] [–source-bind-password SOURCE_BIND_PASSWORD] –target-uri TARGET_URI –target-base-dn TARGET_BASE_DN [–target-bind-dn TARGET_BIND_DN] [–target-bind-password TARGET_BIND_PASSWORD] [–fake] [–verbose]

Synchronize an LDIF file or a source LDAP directory to another directory Base DN of the source is remapped to another DN in the target directory

optional arguments:
-h, --help

show this help message and exit

--object-class-pivot OBJECT_CLASS_PIVOT

an objectClass and an attribute name which is the unique identifier for this class

--attributes-file ATTRIBUTES_FILE

a file containing the list of attributes to synchronize

--attributes ATTRIBUTES

a list of attribute names separated by spaces

--source-uri SOURCE_URI

URL of an LDAP directory (ldapi://, ldap:// or ldaps://) or path of and LDIF file

--source-base-dn SOURCE_BASE_DN

base DN of the source

--source-bind-dn SOURCE_BIND_DN

bind DN for a source LDAP directory

--source-bind-password SOURCE_BIND_PASSWORD

bind password for a source LDAP directory

--target-uri TARGET_URI

URL of the target LDAP directory

--target-base-dn TARGET_BASE_DN

base DN of the target LDAP directory

--target-bind-dn TARGET_BIND_DN

bind DN for a target LDAP directory

--target-bind-password TARGET_BIND_PASSWORD

bind password for a target LDAP directory

--fake

compute synchronization actions but do not apply

--verbose

print all actions to stdout

Exemple

Synchronize tree of organizational units and people between an LDIF file and a local OpenLDAP directory:

ldapsync --attributes 'uid cn givenName sn dc ou o description mail member' \
         --object-class-pivot 'inetOrgPerson uid' \
         --object-class-pivot 'organizationalUnit ou' \
         --object-class-pivot 'dcobject dc' \
         --source-uri dump.ldif \
         --source-base-dn dc=myorganization,dc=fr \
         --target-uri ldapi:// \
         --target-base-dn o=myorganization,dc=otherorganization,dc=fr \
         --verbose

Synchronize tree of organizational units and people between two LDAP directories:

ldapsync --attributes 'uid cn givenName sn dc ou o description mail member' \
         --object-class-pivot 'inetOrgPerson uid' \
         --object-class-pivot 'organizationalUnit ou' \
         --object-class-pivot 'dcobject dc' \
         --source-uri ldap://ldap.myorganization.fr \
         --source-bind-dn uid=admin,ou=people,dc=myorganization,dc=fr
         --source-bind-password password
         --source-base-dn dc=myorganization,dc=fr \
         --target-uri ldap://ldap.otherorganization.fr
         --target-bind-dn uid=admin,o=myorganization,dc=otherorganization,dc=fr
         --target-bind-password password
         --target-base-dn o=myorganization,dc=otherorganization,dc=fr \
         --verbose

Changelog

0.21

  • fix warnings about file descriptor leaks and python-ldap3 bytes-mode

0.18

  • fix conversion of text to bytes in LDIF parser

0.17

  • Python3 compatibility

  • fix test certificates

0.16

  • add test certificates

0.15

  • add support testing with TLS

  • filter objectclass from sources, keep only known ones

0.14

  • fix default ACL when creating slapd server

  • fix grammar of LDIF configurations

0.13

  • in ldapsync, do not delete records not pertaining to one of the objectclass listed in –object-class-pivot

0.12

  • wait for complete stop of the daemon when stopping

0.11

  • remove debugging statements

0.10

  • fix leak of standard file descriptors from slapd

0.9

  • paged: fix paged search when the response contains no paged result extended control

  • improvements to tox script

0.8

  • improve display of actions and errors

  • lowercase attributes in dn of LDIF sources

  • fix bug when removing attributes from source outside the permitted attributes

  • allow specifying case insensitive attributes for compare

0.7

  • ldapsync: add a –source-filter parameter

0.6

  • add empty attribute to new entry if attribute is present in target entry

  • remove attributes outside of the specified attributes from source entries

  • return an empty list of target base DN does no exist

  • convert attribute names to istr

  • fix typo

0.5

  • setup.py: add long description

0.4

  • remove debugging print

0.3

  • setup.py: add dependency on setuptools

0.2

  • improvements to tox script

0.1

  • initial release

Release files for ldaptools 0.24

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ldaptools 0.24
File Size Uploaded
ldaptools-0.24.tar.gz 31.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ldaptools 0.24
File Interpreter ABI Platform
ldaptools-0.24-py3-none-any.whl Python 3 none any Details

Total release size: 62.9 kB

Release files / ldaptools-0.24.tar.gz

Download URL ldaptools-0.24.tar.gz
Size 31.4 kB
Tags Source
SHA-256 checksum
How to use checksums
2bb2f0cd1b7c1b51fe6f88e0ee12e533094d66f5f044324de82aa9af79437303
BLAKE2b-256 checksum
How to use checksums
2328eb7aebc12ee7d72478d34fcb1fc21a3b8eb08b0377d68f001a936e46eb57
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / ldaptools-0.24-py3-none-any.whl

Download URL ldaptools-0.24-py3-none-any.whl
Size 31.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bd673fbc7e8c54151ee686b8fda0d92647c94b751f96c63aa190772d5414a373
BLAKE2b-256 checksum
How to use checksums
d0bebf56896c81d9736c7c0703a31b8d4ae116b7c0bbd32454784bb84217fe94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release history Release notifications | RSS feed

This release

0.24 This release

2 release files

0.21

2 release files

0.18

1 release file

0.17

1 release file

0.15

1 release file

0.14

1 release file

0.13

1 release file

0.12

1 release file

0.10

1 release file

0.9

1 release file

0.8

1 release file

0.6

1 release file

0.5

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page