Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shaozi/passport-ldap-example
ldap authentication strategy for Passport
https://github.com/shaozi/passport-ldap-example
Last synced: 16 days ago
JSON representation
ldap authentication strategy for Passport
- Host: GitHub
- URL: https://github.com/shaozi/passport-ldap-example
- Owner: shaozi
- Created: 2020-01-06T22:22:46.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-05-16T18:37:09.000Z (over 1 year ago)
- Last Synced: 2024-10-11T12:48:49.668Z (about 1 month ago)
- Language: JavaScript
- Size: 152 KB
- Stars: 10
- Watchers: 3
- Forks: 9
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# An Example to use ldap-authentication as a Passport Strategy
This example uses [ldap-authtication](https://github.com/shaozi/ldap-authentication) to create a Passport LDAP authentication strategy.
## Installation
1. `npm install`
## Work flow
1. `node index.js` to start the server
1. Launch browser and goto `http://localhost:4000`
1. Login as prompted
1. Try different username and password## How does it work
This example uses [ldap-authentication](https://github.com/shaozi/ldap-authentication) and put it in [passport-custom](https://github.com/mbell8903/passport-custom/blob/master/test/strategy.test.js) to create
a complete Passport strategy.The LDAP server is hosted at [forumsys](https://www.forumsys.com/tutorials/integration-how-to/ldap/online-ldap-test-server/) and it has a few simple
users to test with.The information of the LDAP server is saved in `config.js` file.
[ldap-authtication](https://github.com/shaozi/ldap-authentication) takes
the username and password from the submitted form, with the ldap configurations from `config.js` file, it then constructs an option object:```javascript
const CONFIG = require('./config.js')
// ...
let ldapBaseDn = CONFIG.ldap.dn
let options = {
ldapOpts: {
url: CONFIG.ldap.url
},
userDn: `uid=${req.body.username},${ldapBaseDn}`,
userPassword: req.body.password,
userSearchBase: ldapBaseDn,
usernameAttribute: 'uid'
}
```then it calls `let user = await authenticate(options)` to authenticate and
retrieve user from the LDAP server.I encourage you to check the `index.js` file for details.
Clone this repo and play with it yourself!