Fork of node-ldapauth - A simple node.js lib to authenticate against an LDAP server.
This fork was created and published because of an urgent need to get newer
version of ldapjs in use to
passport-ldapauth since the newer
version supports passing tlsOptions
to the TLS module. Once the original
module is updated I will likely deprecate the fork.
Changes in this fork include:
- ldapjs upgraded from 0.5.6 to 0.6.3 (#11, #12)
- use global search/replace of
{{username}}
(#10) - enable defining timeouts (#12)
- enable defining attributes to return from LDAP server (#8)
- enable anonymous binding (#2)
- enable defining seach scope
- clients are unbound in
close()
(#3) bcrypt
is an optional dependency (#13, also affects #9)
Multiple ldapjs client options have been made available. From the original options adminDn
and adminPassword
are optional.
var LdapAuth = require('ldapauth-fork');
var options = {
url: 'ldaps://ldap.example.com:663',
...
};
var auth = new LdapAuth(options);
...
auth.authenticate(username, password, function(err, user) { ... });
...
auth.close(function(err) { ... })
npm install ldapauth-fork
MIT. See "LICENSE" file.
var connect = require('connect');
var LdapAuth = require('ldapauth-fork');
// Config from a .json or .ini file or whatever.
var config = {
ldap: {
url: "ldaps://ldap.example.com:636",
bindDn: "uid=myadminusername,ou=users,o=example.com",
bindCredentials: "mypassword",
searchBase: "ou=users,o=example.com",
searchFilter: "(uid={{username}})"
}
};
var ldap = new LdapAuth({
url: config.ldap.url,
bindDn: config.ldap.bindDn,
bindCredentials: config.ldap.bindCredentials,
searchBase: config.ldap.searchBase,
searchFilter: config.ldap.searchFilter,
//log4js: require('log4js'),
cache: true
});
var basicAuthMiddleware = connect.basicAuth(function (username, password, callback) {
ldap.authenticate(username, password, function (err, user) {
if (err) {
console.log("LDAP auth error: %s", err);
}
callback(err, user)
});
});