Label-based RBAC (and more)
Following on to the the release of Role Based Access Control (RBAC) in Kentik Portal we initiated a long journey which will eventually lead to legacy User Levels ("Member", "Admin", "SuperAdmin") to disappear from the product. Throughout the quarters, we are migrating existing portal features under the RBAC umbrella, so that an increasing number of functionality becomes subject to granular permissions.
With this iteration, we are adding two changes:
- we have redesigned the RBAC Admin UI both in the RBAC section, and in the User Management Section
- we are adding label-based RBAC support for Dashboards and Saved Views
Read on !
Admin interface changes for RBAC Management
We have decided to move away from a Modal based format to a full screen based format, as we felt the information presented for RBAC configuration was too dense to comfortably fit in a small modal. See for yourself in the screenshots below:
On the "Manage Users" screen, beyond the design change of the User Edit modal into a full page, we have added new capabilities such as the ability to identify which role a specific permission on a user comes from:
As well as a way to clone another user's assigned roles into the current user - this allows you to make user permissioning more straightforward when you already know that you a given users needs the same roles assigned as an already existing one (because of the team they are in, for instance):Label-based RBAC
We also added a novel functionality allowing our users to manage RBAC at scale: Label-based RBAC. As you may have noticed, labels have been extended to a lot of additional areas within Kentik Portal, amongst others to the "Library".
With Label-based RBAC, you can assign permissions to a role that apply to an exclusive set of labels, instead as to all elements of the same kind. This functionality is at current available to Dashboards and Saved Views permissions and allows to restrict the permission to content marked with specific labels - this is displayed in the screenshot below from the edit screen of a role.
Here are a few important gotchas about Dashboards and Saved Views RBAC permissions:
- To be able to change labels (add, remove) on a Dashboard (resp. Saved View), the user needs to have the Dashboard (resp. Saved View) Update permissions (this avoids privilege escalations via RBAC).
- Labels configured in 'Label Access" type permissions are all OR'ed together, meaning said permission is valid for any view with any of the configured labels on it.
- Assigning label-based Dashboards (resp. Saved Views) permissions supersedes the "Sharing" settings of these: if a view is shared but a given user's RBAC permissions for accessing or editing dashboards are restricted to certain labels, they won't be able to view or edit them: i.e. "Label Access" is more restrictive than "Full Access" as the name indicates.
- if a user has both a "Full Access" permission to views in one role, and a "Label Access" permission to the same view type, the resulting user permission for that view time is the union of both, i.e. "Full Access"
What's next ?
As we progress on this RBAC journey, your user input as what your most wanted areas of Kentik Portal to be RBAC'ed matters. We are all ears on what you'd like us to offer next on that front !