node-ldapjs/docs/index.md

2.8 KiB

title markdown2extras logo-color logo-font-family header-font-family
ldapjs wiki-tables green google:Aldrich, Verdana, sans-serif google:Aldrich, Verdana, sans-serif
Reimagining LDAP for Node.js

Overview

ldapjs is a pure JavaScript, from-scratch framework for implementing LDAP clients and servers in Node.js. It is intended for developers used to interacting with HTTP services in node and express.

var ldap = require('ldapjs');

var server = ldap.createServer();

server.search('o=example', function(req, res, next) {
  var obj = {
    dn: req.dn.toString(),
    attributes: {
      objectclass: ['organization', 'top'],
      o: 'example'
    }
  };

  if (req.filter.matches(obj.attributes))
    res.send(obj);

  res.end();
});

server.listen(1389, function() {
  console.log('LDAP server listening at %s', server.url);
});

Try hitting that with:

$ ldapsearch -H ldap://localhost:1389 -x -b o=example objectclass=*

Features

ldapjs implements most of the common operations in the LDAP v3 RFC(s), for both client and server. It is 100% wire-compatible with the LDAP protocol itself, and is interoperable with OpenLDAP and any other LDAPv3-compliant implementation. ldapjs gives you a powerful routing and "intercepting filter" pattern for implementing server(s). It is intended that you can build LDAP over anything you want, not just traditional databases.

Getting started

$ npm install ldapjs

If you're new to LDAP, check out the guide. Otherwise, the API documentation is:

||server||Reference for implementing LDAP servers.|| ||client||Reference for implementing LDAP clients.|| ||dn||API reference for the DN class.|| ||filters||API reference for LDAP search filters.|| ||errors||Listing of all ldapjs Error objects.|| ||examples||Collection of sample/getting started code.||

More information

||License||MIT|| ||Code||mcavage/node-ldapjs|| ||node.js version||>=0.6|| ||Twitter||@mcavage||

What's not in the box?

Since most developers and system(s) adminstrators struggle with some of the esoteric features of LDAP, not all features in LDAP are implemented here. Specifically:

  • LDIF
  • Aliases
  • Attributes by OID
  • TLS extended operation (seriously, just use SSL)
  • Extensible matching

There are a few others, but those are the "big" ones.