Kalpana Kalpana (Editor)

Json2Ldap

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Developer(s)
  
NimbusDS

Platform
  
Java

License
  
Proprietary

Operating system
  
Cross-platform

Type
  
Middleware

Stable release
  
3.0.2 / April 8, 2014 (2014-04-08)

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.

Contents

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. In May 2011 development of the software was passed to Nimbus Directory Services.

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 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.

    References

    Json2Ldap Wikipedia