本文拟在帮助使用者,快速了解平台角色的分类及权限的设计原则。
角色设计
角色设计是软件设计中的一个重要环节,它决定了用户在软件系统中的使用体验和交互方式。在本系统中包含四类角色,分别是:超级管理员、平台管理员、租户、客户。以下是对应角色的关系及相关说明。
角色关系
角色说明
角色名称 | 角色KEY | 描述 |
超级管理员 | SYS_ADMIN | 超级管理员角色为平台最高级角色,为了减少超级管理员的相关操作,其只管理整个系统中的 平台管理员 和 租户 及一些基础的功能。如需使用其他功能,则可使用快捷进入对应的角色进行管理。 |
平台管理员 | PLATFORM_USER | 平台管理员角色主要管理平台的 拓展功能 和 租户 及一些基础功能的相关操作,拓展功能例如:消息管理、平台通知、平台定制以及后续用户自定义拓展的功能。 |
租户 | TENANT_ADMIN | 租户角色为平台最重要的角色,它可以管理平台其自己创建的所有设备的相关操作。 |
客户 | CUSTOMER_USER | 客户角色为租户下所创建的角色,其只能查看租户分配给它设备 |
💡提示
由于平台管理员为thingskit衍生出的角色,在thingsboard并不存在对应的账号,所以不能通过平台管理员账号登录thingsboard页面进行相关操作。
权限设计
平台角色的访问为按钮级别,其基于(RBAC)安全模型来进行权限管理和控制。这种RBAC方法使得对用户和组的权限管理更加简单和灵活,同时也能确保系统的安全性和可靠性。
定义权限KEY
定义规范:API+公司名称+功能+操作类型
示例:api:yt:device:import
前端相关操作
后端相关操作
💡提示
后端使用了角色认证,如后端相关操作里面的“TENANT_ADMIN”代表只有租户管理员才有访问权限,即使其他角色分配了该权限KEY也无法正常访问后端API接口。