mod_auth_ldap
An authentication provider which uses LDAP as the backend.
Dependencies
This module depends on LuaLDAP for connecting to an LDAP server.
Configuration
authentication = "ldap"
ldap_base = "ou=people,dc=example,dc=com"Further LDAP options are:
| Name | Description | Default value |
|---|---|---|
ldap_base |
LDAP base directory which stores user accounts | Required field |
ldap_server |
Space-separated list of hostnames or IPs, optionally with port numbers (e.g. “localhost:8389”) | "localhost" |
ldap_rootdn |
The distinguished name to auth against | "" (anonymous) |
ldap_password |
Password for rootdn | "" |
ldap_filter |
Search filter, with $user and
$host substituted for user- and hostname |
"(uid=$user)" |
ldap_scope |
Search scope. other values: “base” and “onelevel” | "subtree" |
ldap_tls |
Enable TLS (StartTLS) to connect to LDAP.
For the non-standard ‘LDAPS’ prefix ldap_server with
ldaps:// instead |
false |
ldap_mode |
How passwords are validated. | "bind" |
Note: lua-ldap reads from
/etc/ldap/ldap.conf and other files like
~prosody/.ldaprc if they exist. Users wanting to use a
particular TLS root certificate can specify it in the normal way using
TLS_CACERT in the OpenLDAP config file.
Modes and SASL profiles
The ldap_mode determines which SASL profile the module
supports:
"getpasswd"requires plain text access to passwords in LDAP and supplies theplainprofile to Prosody’s authentication system. This allows more secure authentication mechanisms, but does not work for all LDAP deployments."bind"performs an LDAP bind, does not require plain text access to passwords, and supplies theplain_testprofile which essentially limits clients to the PLAIN authentication mechanism.