https://github.com/prasanthvijayy/ldap-ad_service
A RESTful API built using Express.js and LDAP.js for managing user authentication and directory services.
https://github.com/prasanthvijayy/ldap-ad_service
active-directory bootstrap5 html-css-javascript javascript nodejs openldap-server saml2 secure-coding sso-authentication ui
Last synced: about 2 months ago
JSON representation
A RESTful API built using Express.js and LDAP.js for managing user authentication and directory services.
- Host: GitHub
- URL: https://github.com/prasanthvijayy/ldap-ad_service
- Owner: PrasanthVijayy
- Created: 2024-09-03T14:59:30.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-01-20T10:53:31.000Z (over 1 year ago)
- Last Synced: 2025-01-20T11:39:55.017Z (over 1 year ago)
- Topics: active-directory, bootstrap5, html-css-javascript, javascript, nodejs, openldap-server, saml2, secure-coding, sso-authentication, ui
- Language: JavaScript
- Homepage:
- Size: 3.08 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# LDAP Management API
## Project Description
The LDAP Management API is a comprehensive backend solution designed to handle various LDAP-related operations. This API provides endpoints for managing users, groups, domain controllers, and organizational units within an LDAP directory. Additionally, it supports SSO-based authentication using ADFS.
### Key Features
1. **User Management**
- **Reset Password**: Reset the password for a given user.
- **Delete User**: Delete a specified user.
- **List Users**: Retrieve details of users with custom attributes.
- **Add User**: Add a new user to the LDAP directory.
- **Enable User**: Re-enable a disabled user.
- **Add to Admin Group**: Add a user to the Administrator group.
- **Remove from Admin Group**: Remove a user from the Administrator group.
- **Unlock User**: Unlock a user based on group policy.
2. **Group Management**
- **List Groups**: List groups with custom attributes.
- **Add to Group**: Add a user to a specified group.
- **Remove from Group**: Remove a user from a specified group.
- **Lock members from Group**: Lock members from a group.
3. **Organizational Unit Management**
- **List Organizational Units (OUs)**: List OUs with custom attributes.
4. **Domain Controller Management**
- **List Domain Controllers**: Retrieve details of domain controllers.
5. **Error Handling**
- Custom error handling with meaningful HTTP responses for various types of errors.
### Technical Stack
- **Backend**: Node.js with Express.js
- **LDAP Library**: `ldapjs` for LDAP operations and `ActiveDirectory2` for AD.
- **Middleware**: Custom middleware for error handling, authentication, sessionHandling, apiLimiter.
- **Encryption**: SHA1 algorithm and salting technique to store userPassword in openLdap.
- **Authentication**: Both traditional method and SSO-based authentication using ADFS and SAML.
### Usage
The API provides a RESTful interface for interacting with an LDAP directory. Each endpoint corresponds to specific LDAP operations and is designed to be used in a secure and controlled environment.
### Enhancements
- **SAML (SSO) with ADFS**: Added support for SAML-based Single Sign-On (SSO) with Active Directory Federation Services (ADFS).
- **Multiple LDAP Protocols**: Improved the application by adding support for multiple LDAP protocols, allowing synchronous connections with the application.