Skip to content

This product is currently in development and highly experimental. Its goal is to improve the performance and resilience of pas.plugins.ldap.

License

Unknown, GPL-2.0 licenses found

Licenses found

Unknown
LICENSE.md
GPL-2.0
LICENSE.GPL
Notifications You must be signed in to change notification settings

RedTurtle/redturtle.pasldap

Repository files navigation

redturtle.pasldap

This product is currently in development and highly experimental.

Its goal is to improve the performance and resilience of pas.plugins.ldap.

Some implementations may be debatable and have specific prerequisites and conditions.

We strongly recommend reviewing the code and its implemented functionalities carefully before using this product. — or not using it at all. :)

Features

  • Check the pas.plugins.ldap configuration for best practices, such as read/connection timeouts, memcached usage, handling many users, etc.
  • Log LDAP queries to investigate long processing times and unnecessary operations (ensure passwords are not logged for security).
  • Make LDAP operations resilient by persistently caching certain queries (opinionated suggestion).
  • Intercept errors such as "Problems getting group_ids!" caused by misconfigurations.
  • During testing I saw some call to enumerateUsers with criteria:{'id': 'user@example.com*'} exact_match:False, ...
  • ...

We need a profile installation here? (maybe not)

We need restapi here? (maybe not)

pas.plugins.ldap hidden gems

LDAP_ERROR_LOG_TIMEOUT = float(
    os.environ.get("PAS_PLUGINS_LDAP_ERROR_LOG_TIMEOUT", 300.0)
)
LDAP_LONG_RUNNING_LOG_THRESHOLD = float(
    os.environ.get("PAS_PLUGINS_LDAP_LONG_RUNNING_LOG_THRESHOLD", 5.0)
)

Installation

Install redturtle.pasldap with pip:

pip install redturtle.pasldap

And to create the Plone site:

make create_site

Development

Local ldap server:

cd tests/docker-test-openldap
docker compose build
docker compose up

Verify that ldap is working:

LDAPTLS_REQCERT=never ldapsearch -H ldap://localhost:10389 -ZZ -x -b "ou=people,dc=planetexpress,dc=com" -D "cn=admin,dc=planetexpress,dc=com" -w GoodNewsEveryone "(objectClass=inetOrgPerson)"
make buil-dev

PLONE_REGISTRY_YAML=tests/docker-test-openldap/regenv.yaml LDAPTLS_REQCERT=never make start

Contribute

License

The project is licensed under GPLv2.

Credits and Acknowledgements 🙏

Crafted with care by Generated using Cookieplone (0.8.2) and cookiecutter-plone (d9b5293) on 2025-01-15 23:35:38.896932. A special thanks to all contributors and supporters!

About

This product is currently in development and highly experimental. Its goal is to improve the performance and resilience of pas.plugins.ldap.

Resources

License

Unknown, GPL-2.0 licenses found

Licenses found

Unknown
LICENSE.md
GPL-2.0
LICENSE.GPL

Stars

Watchers

Forks

Packages

No packages published