myldapsync - fork of pgldapsync by EnterpriseDB Corporation adopted for MySQL and MariaDB
This Python module allows you to synchronize MySQL or MariaDB users with users in an LDAP directory.
Require MySQL 8 with installed and configured simple or sasl LDAP Authentication Plugin or PAM plugin (pam also supported in MySQL 5.7 and MariaDB).
Percona Server for MySQL:
https://docs.percona.com/percona-server/8.0/ldap-authentication
https://docs.percona.com/percona-server/8.0/pam-plugin.html
MySQL:
https://dev.mysql.com/doc/refman/8.0/en/ldap-pluggable-authentication.html
https://dev.mysql.com/doc/refman/8.0/en/pam-pluggable-authentication.html
MariaDB:
https://mariadb.com/kb/en/authentication-plugin-pam/
myldapsync is supported on Python 3.8 or later.
In order to use it, you will need to create a config.ini file containing the site-specific configuration you require. See config.ini.example for a complete list of all the available configuration options. This file should be copied to create your own configuration.
Once configured, simply run myldapsync like so:
python3 myldapsync.py /path/to/config.ini
In order to test the configuration (and dump the SQL that would be executed to stdout), run it like this:
python3 myldapsync.py --dry-run /path/to/config.ini
python3 -m venv /path/to/myldapsync
source /path/to/myldapsync/bin/activate
pip install -r requirements.txt
Adapt the first command as required for your environment/Python version.
To create a package (wheel), run the following in your virtual environment:
python3 setup.py sdist bdist_wheel
Installation from PyPI
Via pip:
pip install myldapsync
Via pipx:
pipx install myldapsync
Example with some annotations - https://github.com/6eh01der/myldapsync/blob/main/myldapsync/config.ini.example