0

I'm attempting to connect to an Active Directory domain controller to make some basic LDAP queries using JavaScript. I'm using the LDAPJS library and the built-in node tls module. I'm getting an error when attempting to run client.bind

The TLS connection seems to be working fine (it's coming back as authorized===true, though on the secureConnect event, I'm getting undefined.

The related code and output is below:

var tlsOptions = {
  host: "my.domain.controller.net",
  port: portNumber,
  ca: fs.readFileSync("C:\\myCA.pem"),
};

var server = tls.connect(tlsOptions, function () {
  console.log(
    "Server connected",
    server.authorized ? "and authorized" : "but UNAUTHORIZED"
  );

  if (server.authorized) {
    var client = ldap.createClient({
      url: "ldaps://domiancontroler",
      tlsOptions: tlsOptions,
    });

    console.log("Client created!")

    client.bind(userDN, userPW, function (err) {
     console.log("Client binding error:", err)
     process.exit()
    });

  }
});

server.setEncoding("utf8");
server.on("data", function (data) {
  console.log("server data callback: ", data);
});

server.on("secureConnect", function (data) {
  console.log("server secureConnect callback: ", data);
});

server.on("error", function (error) {
  console.log("server error callback", error);
});

Produces the following output:

> Server connected and authorized 
> Client created! 
> server secureConnect callback:  undefined 
> Client binding error: null
lowcrawler
  • 6,777
  • 9
  • 37
  • 79

0 Answers0