ldapper v1.0.9
Ldapper 1.x
Node module that provides wrapper methods for ldapjs client.
Installation
In your project root run from command line:
$ npm install -save ldapperExample
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 configurationReturns
{Object} Get an instanceThe 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 searchOptionsReturns
{Array} Returns a list of entriesThrows
{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 searchOptionsReturns
{Object} Returns the entryThrows
{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 searchOptionsReturns
{Object} Returns the entryThrows
{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 searchOptionsReturns
{Object} Returns the entryThrows
{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 entryReturns
{bool} Returns successThrows
{LDAPAddError}change( dn, changes ) : Promise( Object )
Change an entry into ldap. The list of changes must be an object with these attributes:
opone of these values [write|append|delete]attrthe ldap attribute name to changevalthe 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: 'test.02@acme.com' },
{ op: 'append', attr: 'mail', val: 'test.03@acme.com' },
//Delete all values for the given attribute
{ op: 'delete', attr: 'loginShell' }
//Delete only the value specified
{ op: 'delete', attr: 'mail', val: 'test.02@acme.com' }
]Arguments
dn {string} Distinguished name to change
[changes] {Array|Object} A list of changes or a single changeReturns
{Object} Returns the changed entryThrows
{LDAPChangeError}rename( dn, newDn ) : Promise( bool )
Rename an entry into ldap.
Arguments
dn {string} Old distinguished name
newDn {string} New distinguished nameReturns
{bool} Returns successThrows
{LDAPRenameError}delete( dn ) : Promise( bool )
Delete an entry from ldap.
Arguments
dn {string} Distinguished name to deleteReturns
{bool} Returns successThrows
{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 pathReturns
{Object} Returns an objectThrows
{LDAPAuthenticationError}License
The MIT License
Copyright (c) 2017 Michele Andreoli http://thinkingmik.com