Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Admin user table, admin logging, multi user admin #207

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

jderner-telware
Copy link

Create multiple admin user login
Create logging system for admin actions
Add install script for admin_users table
Manipulate entered password to use md5 for base level encryption storage

@devopsec
Copy link
Member

@jderner-telware we have looked at this before and you are certainly on the right track here.
My issue with this pull is that it is not cryptographically secure, and this is why we have not tackled this feature yet.

A couple tips and resources that may get you on the right track:

@devopsec devopsec added this to In Design in v0.64 via automation Oct 19, 2020
@devopsec
Copy link
Member

devopsec commented Oct 19, 2020

Implementation will be as follows:

API Doc’s built-into UI

Sphinx documentation generator

see the issue comments for more info on doc generation:
#190

Switch to production ready web server

nginx and apache support

see the following projects for example implementations:
https://git.flyball.co/detroitpbx/gui
https://github.com/devopsec/shomesec

Multi-User Support

group access control

the permissions won't be modifiable this release

  • dsip_admin
    • read/write on all
  • dsip_engineer
    • read on Dashboard,CGs,EGs,Domains,Inbound,Outbound
    • write on CGs,EGs,Domains,Inbound,Outbound
  • dsip_guest
    • read on Dashboard,CGs,EGs,Domains,Inbound,Outbound
    • NO reading passwords for CGs,EGs,Domains,Inbound,Outbound

users api

groups_acl=('dsip_admin')

GET /api/v1/users

GET /api/v1/users?username=xxxx

GET /api/v1/users?group=xxxx

POST /api/v1/users

{
    'username': 'xxxx',
    'password': 'xxxx',
    'groups': 'xxxx'
}

PUT /api/v1/users

PUT /api/v1/users?username=xxxx

PUT /api/v1/users?group=xxxx

{
    'username': 'xxxx',
    'password': 'xxxx',
    'groups': 'xxxx'
}

DELETE /api/v1/users

DELETE /api/v1/users?username=xxxx

DELETE /api/v1/users?group=xxxx

DB schema

CREATE TABLE dsip_users (
  username varchar(255) NOT NULL,
  password varbinary(256) COLLATE 'binary' NOT NULL,
  groups varchar(255) NOT NULL,
  PRIMARY KEY (username)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

@mackhendricks mackhendricks removed this from In Design in v0.64 Nov 16, 2020
@devopsec
Copy link
Member

Just an update here, this is pushed back to v0.70, planned for March 2021.
@jderner-telware this was a good start but needs some work to make it into production.
I wrapped a lot of the security functions into a module that might make it easier in developing this piece:
https://github.com/dOpensource/dsiprouter/blob/master/gui/util/security.py

@devopsec devopsec added this to To do in v0.641 Nov 29, 2020
@devopsec devopsec removed this from To do in v0.641 Nov 30, 2020
@devopsec devopsec added the 0.72 Release Intended for v0.72 Release label Feb 14, 2023
@devopsec
Copy link
Member

This was pushed back again... Aiming for release v0.72 now

@devopsec devopsec self-assigned this Feb 14, 2023
@devopsec devopsec added 0.73 Release and removed 0.72 Release Intended for v0.72 Release labels Feb 24, 2023
@devopsec
Copy link
Member

Bump to v0.73

@devopsec devopsec added 0.80 Release Intended for Release v0.80 and removed 0.73 Release labels Feb 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0.80 Release Intended for Release v0.80
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants