New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ldapper

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ldapper

Node module that provides an ldapjs client

  • 1.0.9
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

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

Keywords

FAQs

Package last updated on 16 Oct 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc