@3kles/3kles-ldap
v2.0.1
Published
3KLES LDAP
Downloads
9
Readme
3KLES-LDAP
This package contains API and controller to manage LDAP and ActiveDirectory
API
LDAPApi implements IGenericAPI (3kles-corebe):
- buildRequest: Method to build ldap request from paramater and data body
- executeRequest: Methode to execute ldapts client method
Controller
LDAPController is a class based on GenericController (3kles-corebe)
- addGenericParameters: Add parameter to controller
- addList:Specific method to add parameter for ldap search
- addAdd:Specific method to add parameter for ldap add
- addDelete:Specific method to add parameter for ldap delete
- addModify:Specific method to add parameter for ldap modify
ADController is a class inherit LDAPController to manage ActiveDirectory
- parseResponse: Implement method from parent to parseResponse (specific ActiveDirectory)
How to use
Use .env file to fill ldap parameter (See example in root folder) The app.js is currently configurate only for ActiveDirectory to add, delete and list the entities User, Group and Computer
The routes for each entity is composed like follows:
- list{entity name}:GET (example: listUser)
- add{entity name}:POST(example: addUser)
- del{entity name}:PUT(example: delUser)
To add an entity:
{
"dn": "CN=TESTLDAP,CN=Users,OU=INTERNAL,O=3KC,DC=3KLES,DC=local",
"entry":{
"objectClass": [
"top",
"person",
"organizationalPerson",
"user"
],
"givenName": "FirstName",
"sn": "Name",
"mail":"[email protected]",
"sAMAccountName": "TESTLDAP",
"userPrincipalName":"[email protected]",
"userAccountControl":"544", //Activate user
"userPassword":"3Kles2018!"
}
}
To del an entity:
{
"dn": "CN=TESTLDAP,CN=Users,OU=INTERNAL,O=3KC,DC=3KLES,DC=local"
}
To update an entity: if ldap attribute exist you can use only replace even if attribute is empty One change:
{
"dn": "CN=TESTLDAP,CN=Users,OU=INTERNAL,O=3KC,DC=3KLES,DC=local",
"change":{
"operation":"replace",
"modification":{
"type":"co",
"values":["France"]
}
}
}
Mutli change change:
{
"dn": "CN=TESTLDAP,CN=Users,OU=INTERNAL,O=3KC,DC=3KLES,DC=local",
"change":[
{
"operation":"replace",
"modification":{
"type":"co",
"values":["France"]
}
},
{
"operation":"replace",
"modification":{
"type":"co",
"values":["France"]
}
}
]
}
Error response:
{
"code": 32,
"message":"0000208D: NameErr: DSID-03100238, problem 2001 (NO_OBJECT), data 0, best match of:'CN=Users,OU=INTERNAL,O=3KC,DC=3KLES,DC=local'"
}