Create Services/Auth authored by Nicolas Pope's avatar Nicolas Pope
The authentication and authorization service is responsible for all login and account management, as well as providing access tokens that other services can check to authorize access to resources.
# Key Requirements
* Uses a docker container(s)
* Provides a REST API using JSON which can be mounted to a HTTP endpoint with a reverse proxy in nginx.
* Generates session IDs that can be in both cookies or the Authorization header.
* The session ID or token either provides all capabilities directly (JWT) or is an ID that then provides a full token inside Redis.
* Users are associated to a set of groups, each group being identified by a unique ID. Resources in other services are then assigned to one or more groups. The group information of users must be in the access token as a list of all groups they belong to.
* This service must manage these groups allowing for CRUD operations.
* Admin users can create new user accounts (CRUD)
* Users can edit their account details and change their password
* Login using URL username and password (Basic auth) needs to be possible for websockets.
\ No newline at end of file