Introduction
Role-based permissions for users
- SysAdmin - Members of the system admin can perform CRUD activities for each of the objects (except create and remove enterprises). Only users with this role can create, operate, or remove other users. The scope of these permissions is across all projects in the enterprises.
- SysManager - Members of the system manager role can perform CRUD activities, but only for edge nodes and edge app objects for a specific project. A user with system manager role can only monitor user permissions.
- SysMonitor - Members of the system monitor role can only monitor the projects in scope across the edge node, edge app, and users objects.
- SysOperator - System operator members can monitor and operate the projects in scope across the edge node and edge app objects. This role user can monitor user objects.
- CSadmin - Members of the CSadmin role can perform CRUD activities for all objects (including enterprises and users) across all projects. However, members of this role cannot create or delete edge nodes. This role is exclusively for CS personnel and is hidden from general users.
- SysRoot - Members of the SysRoot role have unrestricted access and can perform all CRUD activities on all objects within the system, across all enterprises and projects. This includes the ability to create, operate, and remove users, manage enterprises, and control all aspects of edge nodes and edge apps. This role has the highest level of administrative privileges and is hidden from general users.
Project scope
User permissions and roles that define access levels are tied to individual projects, rather than applying across an entire organization. These roles can be customized for each project. For example, the system admin can only give access to a particular project for a particular user. Then, in that case, the user cannot access other projects under the Enterprise.
The following diagram shows the details of Project-based access with three separate projects. There are three sets of projects (Project A, Project B, and Project N). Each project has a set of roles that are customized from the system default roles. The new roles are each bound to their respective projects. For example, SysAdmin A, SysAdmin B, and SysAdmin N.
List View
- Log into ZEDEDA GUI.
- From the left panel, go to Administration > Roles.
- Observe the roles in the table:
- Name - this column displays the name of the default roles. For example, SysAdmin, SysManager, SysMonitor, and any custom roles you have created.
- Projects - this column displays the scope of the role in terms of projects. It specifies whether the role applies to All Projects or only two a specific number of projects.
- Permission Type - this column describes the nature of the permissions associated with the role. This can be one of the default values or a custom (user-created) value.
- Tags - this column displays any configured tags for the roles. These are commonly used to assist in the categorization of roles.
Detail View
- Click on any of the roles in the list view.
- The detailed view of this role appears.
- You can click the edit icon at upper right. See update (edit) below for more.
Operations Using the ZEDEDA GUI
Create (Add)
- Log into ZEDEDA GUI.
- From the left panel, go to Administration > Roles.
- Click the Add icon at the top right of the page.
- Enter the Name and Title of your choice.
- Enter Project Tags key-value pair (optional). This is a label or category that’s assigned to the project and it controls what a user with this role can manage.
- In the Permissions section, select the Project to which this role will have access.
By default, all projects are selected, but you can select a specific project from the drop-down menu to add permissions in a more granular way.
- If using the granular approach, select the desired Project from the drop-down, and select the ‘CRUD’ permissions you want for your customized role. For example, for Enterprise objects, you could click the Add and Monitor buttons to allow this role to add and monitor new enterprises, but don’t select the Remove button if you don’t want to allow users with this role to be able to delete an enterprise.
- Select the ‘CRUD’ permissions for each of the objects, such as Enterprise, Users, Edge Nodes, Edge Apps, Edge App Instances, and 3rd-Party Integrations.
- You can repeat this process of assigning ‘CRUD’ permissions for a different project by clicking the plus icon.
- Click Add.
Read (Monitor)
- Log into ZEDEDA GUI.
- From the left panel, go to Administration > Roles.
-
Click on the desired role from the list view to display a detailed view of the role.
The read view displays a 'Basic Info' section.
Basic Info
Update (Edit)
- Click the Edit icon.
- Update the editable fields, such as title, tags or permissions.
- Click Save.
- The custom role is updated successfully.
Delete (Remove)
- Click on the custom role list.
- Check boxes on which the required operation needs to be performed.
- Click on More actions at upper right.
- From the dropdown, select Delete.
- Click Delete from the modal dialog to confirm.
-
A toast message confirms the role has been deleted.
Operations Using ZEDEDA CLI
Create
zcli> zcli role create <name> --access-right=<object-access>... [--title=<title>] [--description=<description>]Example:
The following example shows how to use the --access-right=<object-access> parameter to create a role called MY_ROLE with read access to users, full access to edge nodes, full access to edge apps, full access to enterprise integration items (third party integration), access to own enterprise only, access to MY_PROJECT.
zcli role create MY_ROLE --access-right="user:r,edge-node:crud,edge-app:crud,enterprise-integration-items:crud,enterprise-scope:local,project-scope:MY_PROJECT"
Excerpt from the ZCLI man page:
--access-right=<object-access>
Scope and Right to access objects. Define access permissions using
object:action format.
Object types:
- user: User management
- edge-node: Edge node/device management
- edge-app: Edge application management
- app-instance: Application instance management
- enterprise: Enterprise management
- enterprise-integration-items: Enterprise integration items
management
Action types (combine letters for multiple permissions):
- c: Create permission
- r: Read permission
- u: Update permission
- d: Delete permission
- crud: Full permissions (Create, Read, Update, Delete)
Scope filters:
- enterprise-scope: Define enterprise access scope
* local: Access to own enterprise only
* global: Access to all enterprises
- project-scope: Define project access scope (space-separated
project names)
* Use project names to limit access to specific projects
* If not specified, defaults to all projects (srAll)
Example: '--access-right="user:r,edge-node:crud,edge-
app:crud,enterprise-integration-items:crud,enterprise-
scope:local,project-scope:project-a project-b"'
Multiple scopes can be specified by repeating this option
Read (Show)
zcli> zcli role show [[[<name> |--self | --uuid=<uuid>] [--detail]] | [[--project=<project>] [--name-pattern=<name-pattern>]]]
zcli> zcli role show
Role E-Scope P-Scope EdgeNodeAccess Apps Access User Access EntrpriseAccess
------------ -------- -------- -------------- ------------ ------------ ----------
SysMonitor local All R R R
SysOperator local All RU RU R
SysAdmin local All CRUD CRUD CRUD RU
SysManager local All CRUD CRUD R
Total 4
zcli>
Update (Edit)
zcli> zcli role update <name> [--access-right=<object-access>...] [--title=<title>] [--description=<description>]
Example:
zcli role update MY_ROLE --access-right="user:r,edge-node:r,edge-app:r,enterprise-integration-items:r,enterprise-scope:local,project-scope:MY_PROJECT"
Delete
zcli> zcli role delete <name> [-f]