Registry / auth-security / ep_ldapauth

ep_ldapauth

JSON →
library0.4.0jsnpmunverified

Etherpad Lite plugin that provides LDAP-based authentication and authorization. Version 0.4.0 integrates with Etherpad's authentication hooks to allow users to log in using LDAP credentials. It supports both plain LDAP and LDAPS, configurable search filters, group-based access control (admin or read-only), and specific examples for FreeIPA. The plugin is released under GPL-2.0 and is maintained primarily for Etherpad Lite environments. It requires a properly configured settings.json with LDAP server details, search credentials, and group mapping. Notable differentiators: direct integration with Etherpad's auth system, no external dependencies beyond ldapjs, and support for anonymous read-only mode.

npm install ep_ldapauth
INSTALL
IMPORT
SIG · EP_LDAPAUTH
E
ep_ldapauth
auth-securityjavascriptv0.4.0
Install
—
Import
—
Disk
—
Pass rate
0/ 6
Env Coverage0 / 6
glibc
18–22
musl
18–22
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18–226 runs
build_error
glibc
node 18–226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default
✓ require('ep_ldapauth')
✗ import ep_ldapauth from 'ep_ldapauth'
This is an Etherpad plugin loaded via hooks, not a standard import. It is not meant to be imported directly; it is activated by placing in Etherpad's node_modules and configuring settings.json.

Configuration for ep_ldapauth in Etherpad's settings.json, enabling LDAP authentication with admin group mapping.

{ "users": { "ldapauth": { "url": "ldaps://ldap.example.com", "accountBase": "ou=Users,dc=example,dc=com", "accountPattern": "(&(objectClass=*)(uid={{username}}))", "displayNameAttribute": "cn", "searchDN": "uid=searchuser,dc=example,dc=com", "searchPWD": "supersecretpassword", "groupSearchBase": "ou=Groups,dc=example,dc=com", "groupAttribute": "member", "groupAttributeIsDN": true, "searchScope": "sub", "groupSearch": "(&(cn=admin)(objectClass=groupOfNames))", "anonymousReadonly": false } } }
Debug
Known issues
breakingConfiguration format changed: 'groupAttributeIsDN' must be boolean, not string 'true'/'false'.
fix
Set 'groupAttributeIsDN' to true or false without quotes.
affects: >=0.3.0
deprecated'anonymousReadonly' option may be deprecated; not in all examples.
fix
Omit or set to false if not needed.
affects: >=0.4.0
gotchaDo not use 'require' or 'import' for this plugin; it is automatically loaded when in node_modules.
fix
Simply place in node_modules and configure settings.json.
affects: all
gotchaLDAP server must be reachable; firewall or DNS issues cause silent failures.
fix
Test connectivity with ldapsearch or similar tool.
affects: all
gotchasearchDN and searchPWD are required for binding; omit only if anonymous bind is allowed (rare).
fix
Provide valid credentials or ensure LDAP allows anonymous search.
affects: all
Errors
Common errors & fixes
Error: connect ECONNREFUSED <ldap-host>:389
LDAP server not running or port blocked.
fix
Verify server host/port, firewall, and that LDAP service is up.
Error: 49 - LDAP_INVALID_CREDENTIALS
searchDN or searchPWD incorrect, or pattern not matching.
fix
Check searchDN and searchPWD values; verify accountPattern matches.
Error: NoSuchObjectError: No such object
accountBase or groupSearchBase DN incorrect.
fix
Verify base DNs using ldapsearch or similar tool.
Error: operationsError
Insufficient access rights for searchDN.
fix
Grant read permissions to the search user on the LDAP tree.
Upgrade
Version history
0.4.0latest on npm
Audit
Dependencies
ldapjsrequiredLDAP client library used for making LDAP connections and queries
etherpad-literequiredRuntime environment; plugin hooks into Etherpad's auth system
Agent activity
17 hits · last 30 days
node
14
Amazon
1
OpenAI (training)
1
Resources
ep_ldapauth — npm install ep_ldapauth · libregistry