Permissions Model
Members of the ‘Administrators’ user group bypass the below permission model completely. They have full access to all hosts and all functions.
A non-admin user has no effective rights on rport unless via at least one user group, permissions are granted. Currently, rport is subdivided into the following functions:
- tunnels
- scripts
- commands
- vault
- scheduler
- monitoring
- uploads
- auditlog
- run scripts only
The permissions are stored on the group_details
table of
your API access database. They are managed through
the update user groups API endpoint.
In addition to one of the above function permissions client permissions are needed. In other words, the function permissions define only what a user can do, but not on which clients he/she can do it.
There is no option to revoke a permission. Once a user group has a permission, you cannot revoke it through a second user group.
A user that has at least one of the above function permission needs at least access to one client to effectively use rport.
You can grant access to a single client to one or many user groups. The allowed user groups are stored on the clients’
table inside the details
object. The so-called client ACLs are managed through
the client ACL API endpoint
You can grant access to a client group to one or many user groups. This makes managing access rights effective and flexible.
Client group access is managed through
the client groups API endpoint. The underlying data is stored on
the client_groups
database.
There is no option to revoke a permission. If permission is granted to client group A, you cannot deny access to client group B if it is a subset of A.
This feature enables Admins to narrow the permissions of a user group by restricting tunnels and commands.
As an example, one could limit a user group to only be able to create tunnels with a specific set of protocols, or even to a specific set of hosts.
"tunnels_restricted": {
"scheme": ["ssh", "rdp"],
"host_header": ":*",
}
In the same way one could limit the commands a user group can execute, defining regular expressions for allowed and / or denied commands.
"commands_restricted": {
"allow": ["^sudo reboot$","^systemctl .* restart$"],
"deny": ["^rm$","ssh"],
}
tablegroup_details
must have columnstunnels_restricted
andcommands_restricted
as described in the Database - Extended group permissions additional fields page.
When managing extended user group permissions, those permissions are combined with the general user group permissions, as follows:
If a user group has both general permissions (e.g., “tunnels”) and extended permissions (e.g., “tunnels_restricted”), the wider permissions takes precedence. To effectively enable restricted tunnels or commands, the general correspondent permissions must be granted.
If a user is part of multiple user groups, each with extended permissions, the permissions are combined. For example, if one user group has a tunnel restriction of “ssh” and another has a tunnel restriction of “rdp”, the user will be able to create tunnels with either protocol.