ldapper
v1.0.9
Published
Node module that provides an ldapjs client
Downloads
4
Maintainers
Readme
Ldapper 1.x
Node module that provides wrapper methods for ldapjs
client.
Installation
In your project root run from command line:
$ npm install -save ldapper
Example
Let's start! Include in your node application ldapper
module:
//require object
var Ldapper = require('ldapper').Ldapper;
//or require factory
var factory = require('ldapper');
//create options
var options = {
domainControllers: ['192.168.99.100'],
searchScope: 'ou=users,dc=acme,dc=com',
root: {
dn: 'cn=admin,dc=acme,dc=com',
password: {
crypton: false,
value: 'admin'
}
}
};
//create an instance
var ldappermanager1 = new Ldapper(options);
//or use factory
var ldappermanager2 = factory.create(options);
ldappermanager1.find('|(cn=test*)(sn=test*)')
.then(function(res) {
console.log(res);
});
Documentation
Construction
A Ldapper
instance can be created using factory or using the new
keyword.
var factory = require('ldapper');
var ldappermanager1 = factory.create();
//or
var Ldapper = require('ldapper').Ldapper;
var ldappermanager2 = new Ldapper();
new Ldapper( [options] ) : Object
The ldapper
module can be initialized with a configuration object.
Arguments
[options] {Object} Optional configuration
Returns
{Object} Get an instance
The configuration object allows you to overrides default values. If you don't specify any configuration, it uses a default object:
{
domainControllers: [],
searchScope: null,
searchOptions: {
scope: 'sub',
filter: '(objectclass=*)',
attributes: [],
sizeLimit: 0,
paged: false
},
root: {
dn: null,
password: {
crypton: false,
value: null
}
},
crypton: null,
ssl: false,
timeout: null,
connectTimeout: null,
strictdn: false
}
Methods
find( [filter], [attributes], [searchDn], [options] ) : Promise( Array )
Search entries from ldap.
Arguments
[filter] {string} An ldap filter
[attributes] {Array} Specify returned attributes
[searchDn] {string} Search path
[options] {object} Overrides configuration for searchOptions
Returns
{Array} Returns a list of entries
Throws
{LDAPSearchError}
findOne( dn, [attributes], [options] ) : Promise( Object )
Get an entry from ldap.
Arguments
dn {string} Distinguished name
[attributes] {Array} Specify returned attributes
[options] {object} Overrides configuration for searchOptions
Returns
{Object} Returns the entry
Throws
{LDAPSearchError}
findGuid( guid, [attributes], [options] ) : Promise( Object )
Get an entry from Active Directory by objectGuid.
Arguments
guid {string|Buffer} Object guid
[attributes] {Array} Specify returned attributes
[options] {object} Overrides configuration for searchOptions
Returns
{Object} Returns the entry
Throws
{LDAPSearchError}
findSid( sid, [attributes], [options] ) : Promise( Object )
Get an entry from Active Directory by objectSid.
Arguments
sid {string|Buffer} Object sid
[attributes] {Array} Specify returned attributes
[options] {object} Overrides configuration for searchOptions
Returns
{Object} Returns the entry
Throws
{LDAPSearchError}
add( dn, [entry] ) : Promise( bool )
Create a new entry into ldap.
Arguments
dn {string} Distinguished name to create
[entry] {Object} Attributes to set on ldap for entry
Returns
{bool} Returns success
Throws
{LDAPAddError}
change( dn, changes ) : Promise( Object )
Change an entry into ldap. The list of changes must be an object with these attributes:
op
one of these values [write
|append
|delete
]attr
the ldap attribute name to changeval
the ldap value to add/replace
//Example:
var changes = [
//Add a new value or replace the old value if exists
{ op: 'write', attr: 'cn', val: 'test' },
//Append values to the attribute
{ op: 'append', attr: 'mail', val: '[email protected]' },
{ op: 'append', attr: 'mail', val: '[email protected]' },
//Delete all values for the given attribute
{ op: 'delete', attr: 'loginShell' }
//Delete only the value specified
{ op: 'delete', attr: 'mail', val: '[email protected]' }
]
Arguments
dn {string} Distinguished name to change
[changes] {Array|Object} A list of changes or a single change
Returns
{Object} Returns the changed entry
Throws
{LDAPChangeError}
rename( dn, newDn ) : Promise( bool )
Rename an entry into ldap.
Arguments
dn {string} Old distinguished name
newDn {string} New distinguished name
Returns
{bool} Returns success
Throws
{LDAPRenameError}
delete( dn ) : Promise( bool )
Delete an entry from ldap.
Arguments
dn {string} Distinguished name to delete
Returns
{bool} Returns success
Throws
{LDAPDeleteError}
authenticate( username, password, [authAttributes], [retAttribute], [searchDn] ) : Promise( Object )
Check if given credentials are valid on ldap.
Arguments
username {string} The username
password {string} The password
[authAttributes] {Array|string} Specify which attributes using for authentication
[retAttribute] {Array|string} Specify returned attributes
[searchDn] {string} Search path
Returns
{Object} Returns an object
Throws
{LDAPAuthenticationError}
License
The MIT License
Copyright (c) 2017 Michele Andreoli http://thinkingmik.com