ldapper
v1.0.9
Published
Node module that provides an ldapjs client
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 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: '[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 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 path
Returns
{Object} Returns an objectThrows
{LDAPAuthenticationError}License
The MIT License
Copyright (c) 2017 Michele Andreoli http://thinkingmik.com
