Json2Ldap is a JSON-to-LDAP gateway software, written in Java and developed by Nimbus Directory Services. It provides a JSON-RPC 2.0 interface for web clients to access one or more LDAP v3 - compatible directories. The Json2Ldap web API supports the standard LDAP directory requests as well as several extended operations and controls.
Background
Json2Ldap was initially conceived as a lightweight JSON alternative to existing XML-based gateways for providing directory service access to web browsers. Its first official release was in May 2010.4 In May 2011 development of the software was passed to Nimbus Directory Services.5
Interface specification
Json2Ldap provides a JSON web interface for establishing LDAP client connections to one or more directory servers.
Client web interface:
- Version 2.0 of the JSON-RPC protocol.
- Requests are accepted over HTTP POST.
- Optional support for Cross-Origin Resource Sharing (CORS) requests.
Supported standard LDAP directory operations (as per RFC 4510):
- Bind (authenticate): simple, plain SASL, digest MD5 SASL, anonymous
- Search
- Compare
- Add a new entry
- Delete an entry
- Modify an entry
- Modify distinguished name (DN)
- Unbind
Supported extended LDAP operations:
- Password Modify (RFC 3062)
- StartTLS (RFC 4511)
- Who am I (RFC 4532)
Supported extended LDAP controls:
- Authorisation identity bind control (RFC 3829).
- Server-side sorting of search results (RFC 2891).
- Simple paged results (RFC 2696).
- Virtual-list-view search control (draft-ietf-ldapext-ldapv3-vlv-09)
- Sub-tree delete (draft-armijo-ldap-treedelete-02).
Non-standard extensions:
- Secure Remote Password protocol (SRP-6a) authentication.
Example messages
Example request message
Example directory search request:
{ "method" : "ldap.search", "params" : { "CID" : "096032ca-ca91-47eb-a366-143832ff4a26", "baseDN" : "ou=people,dc=my,dc=org", "scope" : "SUB", "filter" : "(givenName=Alice)" }, "id" : "0001", "jsonrpc" : "2.0" }Example response message
Example directory search response:
{ "result" : { "objectClass" : [ "top", "person", "inetOrgPerson" ], "uid" : [ "alice" ], "mail" : [ "[email protected]" ], "sn" : [ "Kingsleigh" ], "cn" : [ "Alice Kingsleigh" ], "initials" : [ "AK" ], "mobile" : [ "+44 755 123 456" ] }, "id" : "0001", "jsonrpc" : "2.0" }System requirements
Json2Ldap is distributed as a Java web application archive (WAR) for deployment in a Java servlet container.6
See also
References
"Announcement of Nimbus Directory Services taking over Json2Ldap development". Archived from the original on 2012-03-28. Retrieved 2011-08-04. https://web.archive.org/web/20120328125719/http://blog.dzhuvinov.com/?p=791 ↩
"Network World, Security Identity Management Alert, 2010-07-20". 20 July 2010. http://www.networkworld.com/newsletters/2010/071910id2.html ↩
"Json2Ldap web API". http://connect2id.com/products/json2ldap/web-api ↩
"Give your LDAP server a JSON front-end". Archived from the original on 2012-03-28. Retrieved 2011-08-04. https://web.archive.org/web/20120328125751/http://blog.dzhuvinov.com/?p=96 ↩
"Announcement of Nimbus Directory Services taking over Json2Ldap development". Archived from the original on 2012-03-28. Retrieved 2011-08-04. https://web.archive.org/web/20120328125719/http://blog.dzhuvinov.com/?p=791 ↩
"Json2Ldap system requirements". http://connect2id.com/products/json2ldap/datasheet ↩