WatersWorks

Blog archive

New Open Source Java SDK Helps Devs with Active Directory Projects

Information security provider Imperva has been in the headlines recently, thanks to news that tech investment firm Thoma Bravo LLC plans to acquire it. But the Redwood Shores, Calif.-based company caught my eye again last week when it announced that it has open sourced a new Java SDK designed to simplify interaction with Microsoft's Active Directory (AD) for small, medium and large development projects using LDAP.

The company created the SDK, which it christened Domain Directory Controller (DDC), as an internal library to help its devs with hassles associated with Microsoft's AD.

"[I]n order to communicate with an AD server," Gabi Beyo, principal engineer at Imperva, wrote in a blog post, "we'd have to handle a host of issues manually: connection retries, switching between primary and secondary servers, performing queries against multiple servers, paging results, and several other known-issues which might not be directly related to the task at hand. An additional pain in the neck was the LDAP protocol we'd have to learn and understand in order to perform our queries against the AD server."

The SDK the company developed to solve these problems comes with a "friendly" API designed to allow developers to quickly compose simple, or complex queries against AD's endpoints without any previous LDAP knowledge, Beyo explained. "The goal of this library is to enable easy interaction with any LDAP Directory Server by hiding all the related communication issues and internal bits-and-bytes," he wrote.

The SDK was an immediate hit with Imperva's developers, the company told me in an e-mail, and the decision was made to open source it. Internally, DDC makes use of apache-directory-ldap API and builds on it with a host of enhancements, which Beyo listed in his blog post:

  • Assemble LDAP queries easily via an Object-Oriented syntax instead of concatenating and parsing strings
  • Although DDC currently supports Microsoft Active Directory only, it was designed to be easily extended to fit any other LDAP implementation
  • Easy Paging API
  • Change Requests: Add, Remove, Replace AD's objects
  • Secured connection
  • Perform automatically connection retries in case of failure
  • Automatically resolve host to IP
  • Support search in Multiple AD servers
  • Support Primary & Secondary AD servers

Beyo provides some examples of how Imperva has used the SDK in his blog post, and it's well worth reading.

The source files, full documentation, and a starter kit project for Imperva DDC can be found on GitHub in Imperva's official Open Source repository.

Posted by John K. Waters on November 14, 2018