Skip to content

thinkingmik/ldapper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ldapper 2.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:

//import ldapper
import { Ldapper } from 'ldapper';

//create options
const options = {
  domainControllers: ['192.168.99.100'],
  searchScope: 'ou=users,dc=acme,dc=com',
  root: {
    dn: 'cn=admin,dc=acme,dc=com',
    password: 'admin'
  }     
};

//create an instance
let ldapper = new Ldapper(options);

ldapper.find('|(cn=test*)(sn=test*)')
.then(res => {
  console.log(res);
});

Documentation

Construction

A Ldapper instance can be created by using the new keyword.

import { Ldapper } from 'ldapper';
let ldapper = new Ldapper();

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: null
  }
  ssl: false,
  timeout: null,
  connectTimeout: null,
  strictdn: false
}

Methods

Search entries from ldap.

Arguments

[filter]      {string} An ldap filter
[attributes]  {Array} Specify returned attributes
[searchScope] {string} Overrides default search scope
[options]     {object} Overrides searchOptions configuration

Returns

{Array} Returns a list of entries

Throws

{LDAPSearchError}

Get an entry from ldap.

Arguments

dn            {string} Distinguished name
[attributes]  {Array} Specify returned attributes
[options]     {object} Overrides searchOptions configuration

Returns

{Object} Returns the entry

Throws

{LDAPSearchError}

Get an entry from Active Directory by objectGuid.

Arguments

guid          {string|Buffer} Object guid
[attributes]  {Array} Specify returned attributes
[searchScope] {string} Overrides default search scope
[options]     {object} Overrides searchOptions configuration

Returns

{Object} Returns the entry

Throws

{LDAPSearchError}

Get an entry from Active Directory by objectSid.

Arguments

sid           {string|Buffer} Object sid
[attributes]  {Array} Specify returned attributes
[searchScope] {string} Overrides default search scope
[options]     {object} Overrides searchOptions configuration

Returns

{Object} Returns the entry

Throws

{LDAPSearchError}

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 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 an entry into ldap.

Arguments

dn      {string} Old distinguished name
newDn   {string} New distinguished name

Returns

{bool} Returns success

Throws

{LDAPRenameError}

Delete an entry from ldap.

Arguments

dn  {string} Distinguished name to delete

Returns

{bool} Returns success

Throws

{LDAPDeleteError}

Check if given credentials are valid on ldap.

Arguments

username          {string} The username
password          {string} The password
[authAttributes]  {Array|string} Specify which attributes has been used 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) 2018 Michele Andreoli http://thinkingmik.com

About

Creating an ldapjs client

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published