Json2Ldap
| Json2Ldap | |
|---|---|
![]()  | |
| Developer | NimbusDS | 
| Stable release | 3.0.2
   / April 8, 2014  | 
| Operating system | Cross-platform | 
| Platform | Java | 
| Type | Middleware | 
| License | Proprietary | 
| Website | http://connect2id.com | 
Json2Ldap is a JSON-to-LDAP gateway software, written in Java and developed by Nimbus Directory Services.[1] It provides a JSON-RPC 2.0 interface for web clients to access one or more LDAP v3 - compatible directories.[2] The Json2Ldap web API supports the standard LDAP directory requests as well as several extended operations and controls.[3]
Background
[edit]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
[edit]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
[edit]Example request message
[edit]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
[edit]Example directory search response:
{ 
  "result"  : { "objectClass" : [ "top", "person", "inetOrgPerson" ],
                "uid"         : [ "alice" ],
		"mail"        : [ "alice@wonderland.net" ],
		"sn"          : [ "Kingsleigh" ],
		"cn"          : [ "Alice Kingsleigh" ],
		"initials"    : [ "AK" ],
		"mobile"      : [ "+44 755 123 456" ] },
  "id"      : "0001",
  "jsonrpc" : "2.0"
}
System requirements
[edit]Json2Ldap is distributed as a Java web application archive (WAR) for deployment in a Java servlet container.[6]
See also
[edit]References
[edit]- ^ "Announcement of Nimbus Directory Services taking over Json2Ldap development". Archived from the original on 2012-03-28. Retrieved 2011-08-04.
 - ^ "Network World, Security Identity Management Alert, 2010-07-20". 20 July 2010.
 - ^ "Json2Ldap web API".
 - ^ "Give your LDAP server a JSON front-end". Archived from the original on 2012-03-28. Retrieved 2011-08-04.
 - ^ "Announcement of Nimbus Directory Services taking over Json2Ldap development". Archived from the original on 2012-03-28. Retrieved 2011-08-04.
 - ^ "Json2Ldap system requirements".
 
