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

Idea: Add permissions grouping #60

Open
berney opened this issue Dec 4, 2017 · 2 comments
Open

Idea: Add permissions grouping #60

berney opened this issue Dec 4, 2017 · 2 comments

Comments

@berney
Copy link

berney commented Dec 4, 2017

I think it would be useful to have an intermediate mapping of permissions, that is a level between roles and requests. For example, in an app with many roles, with many permissions per role, where a requests is either permitted or denied based on a permission, it could be helpful to be able to group requests into permissions.

What I'm imagining is being able to add headings to the list of requests, and being able to collapse a heading. This may make navigating the list of requests easier.

It may also be handy to be able to configure the permissions assigned to roles.

@mickayz
Copy link
Collaborator

mickayz commented Jan 19, 2018

Thank you for the suggestion. Right now I think my concern with this strategy is that it would be too easy to create an incomplete configuration for the attack target.

For example, lets say there is a target with 3 users (employee, manager, admin) and 3 permissions (read, write, execute). By separating roles and permissions, it might now be harder to understand what the access matrix of this target should like like. For instance, perhaps the manager user should should have all permissions on assets owned by employees and themselves, and admin users will require write and read an every asset. It gets tricky pretty quickly.

For now, I think the best solution is to be more granular in your role definitions. In this case, Roles might be ReadEmployees, WriteEmployees, ExecuteEmployees, ReadManagers, WriteManagers, ExecuteManagers, etc. To test against cross-user, I would add Roles such as ReadEmployee1, WriteEmployee1, etc. I would then make sure I created enough users (naming them Employee1, Manager1, etc) so that all authorization cases that need to be tested are covered.

I will certainly keep thinking about this problem, but right now I think the easiest way as far as complexity for the user is to require expanding out permissions into unique roles. If at a later point I can think of a more elegant solution, I will add to AuthMatrix.

-Mick

@berney
Copy link
Author

berney commented Jan 22, 2018

Thanks for the food for thought mickayz

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants