ldapper

1.0.9 • Public • Published

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 change
  • val 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: '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 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

Package Sidebar

Install

npm i ldapper

Weekly Downloads

6

Version

1.0.9

License

MIT

Last publish

Collaborators

  • thinkingmik