A prototype authentication and authorization service
This is a prototype service for building a desired "to be" single interface for other applications and services to authorize and authenticate users. The future state of this service will allow a variety of different authentication and identity services behind the scenes while all new application development will authenticate with this REST URL pattern. This will help obfuscate the risk associated with leveraging multiple, platform specific authentication and identity providers.
LemonLDAP NG is an open source identity access and management platform which leverages open standards to create single sign on experience.
- For local development, install Docker Desktop
- See the
lemonldap-ng/README.mdto run the server locally.
This project relies on Node.js and is currently using v8.12.0 LTS. Follow the instructions on how to install Node.js for your operating system.
$> git clone https://github.com/VermontAHS/Authorization && cd Authorization/
$> npm installTo keep the prototype light and portable, Sqlite is used as the database
## Create database migrations
$> npm run up
## Rollback database migrations
$> npm run down$> npm run test$> npm run start## Run database migrations... These must be run one time before server can work properly
$> npm run up
## Start server
$> npm run start
## Once started, requests can be made to http://localhost:3000-
Description: Creates a new user
-
URL:
/create -
Method:
POST -
Request Body:
username: Requiredfirst_name: Requiredlast_name: Requiredmi: Optionalsuffix: Optionalemail: Requiredpassword: Required
-
Response:
id: An id generated once user is created
-
Description: Deletes a user by id
-
URL:
/delete/:id -
Method:
DELETE -
URL Params:
id: Required
-
Response:
id: The deleted user id
-
Description: Updates a user by id
-
URL:
/update/:id -
Method:
UPDATE -
URL Params:
id: Required
-
Request Body
username: Optionalfirst_name: Optionallast_name: Optionalmi: Optionalsuffix: Optionalemail: Optionalpassword: Optional
-
Response:
id: The updated user id
-
Description: Reads a user by id
-
URL:
/user/:id -
Method:
GET -
URL Params:
id: Required
-
Response:
idusernamefirst_namelast_namemisuffixemailpassword
-
Description: Lists all users
-
URL:
/users -
Method:
GET -
Response:
list:idusernamefirst_namelast_namemisuffixemailpassword
-
Description: Sign in a user
-
URL:
/signin -
Method:
POST -
Request Body
username: Requiredemail: Requiredpassword: Required
-
Response:
idusernamefirst_namelast_namemisuffixemailpassword