权限体系
约 1625 字大约 5 分钟
权限体系RBAC多租户数据权限
2025-03-03
联犀物联网平台提供完整的权限管理体系,支持多租户、多项目、多应用的企业级权限控制。
📋 权限体系概览
联犀权限体系包含四个核心维度:
- 数据权限:多层级数据隔离和访问控制
- 角色权限:基于RBAC的角色管理
- 功能权限:细粒度的功能访问控制
- 应用权限:多应用统一权限管理
🔐 数据权限
权限隔离层级
联犀内置多种数据隔离级别,支持灵活的数据权限控制:
🏢 租户级隔离
定义:多租户(Multi-Tenancy)是一种软件架构设计,允许多个客户(租户)共享同一个应用程序实例,同时保持数据隔离和个性化配置。
特点:
- 不同租户数据完全隔离
- 支持租户个性化配置
- 适合SaaS模式部署
📁 项目级隔离
定义:在一个租户下可以有一个或多个项目,如使用者有两个园区,两个园区互相隔离,但用户存在交叉,使用项目隔离就很方便。
应用场景:
- 智能家居:一个家庭就是一个项目
- 园区管理:不同园区作为不同项目
- 业务隔离:不同业务线独立管理
🌳 区域级隔离
定义:区域归属于某个项目,区域是树状结构,可以嵌套无限层,支持灵活的权限授权。
权限控制:
- 可以授权某个节点的权限
- 可以授权某个节点及其子节点的权限
- 支持树状权限继承

权限定义
项目和区域可以以角色和用户的维度进行授权,有以下三种授权方式,差异如下:
- 管理权限: 可以给别人授权,并拥有修改该资源的权限及自动获取该资源下所有资源的权限,如授予项目管理权限,则自动拥有项目下所有区域和设备的权限
- 写权限: 拥有修改该资源的权限及自动获取该资源下所有资源的权限,如授予项目管理权限,则自动拥有项目下所有区域和设备的权限
- 读权限: 只有该节点的权限,子节点没有权限,如授予区域a的权限,则他拥有绑定在区域a的设备的权限,但是没有下面区域的权限
在项目和区域权限之外还有一个设备分享权限,设备分享是设备和人一对一的授权,同时支持物模型级别的授权,过期时间,是便于临时性的或设备级的权限控制

角色权限
在联犀中内置了两种角色,在程序里通过角色编码来区分:

- 超级管理员(supper): 租户创建时指定的管理员默认为超级管理员,并且无法取消,该角色不受功能授权的约束和应用权限的约束,只要这个租户被授予的他默认都有,同时可以看租户下的所有设备
- 管理员(admin): 受功能授权和应用授权的约束,不指定项目的时候可以看租户内的所有设备.
- 普通用户: 受功能授权和应用授权的约束,只能看到授权的项目及区域下的设备
当我们需要定义自己的角色的时候,可以借助内置角色的编码来实现对应的能力,如我们需要一个全局的运维人员,这时候就可以给他的角色编码赋值为admin,这样他就有全局的设备权限,然后给他授予他能看到的功能和应用权限即可.

权限授权

使用流程
授权定义: 首先我们需要在平台管理这里定义好我们的授权,可以使用代码生成的方式进行导入,这个是全局的定义.
租户授权: 在定义好授权之后我们可以将授权授权给对应的租户,只有授权了的功能租户下的人才可以使用
角色授权: 在授予给租户下后,我们把对应的功能分配给对应的角色,角色就可以使用这些授权
应用授权

应用定义: 我们需要在应用管理这里定义我们的应用,填写对应的应用参数,应用编码需要在http头中传递,整个操作流程会记录在操作日志中,同时也避免用相同的token去登录不同的应用.
模块配置(web应用才需要): 模块是一个大的功能分组,如现在后台的系统管理,物联网,我的物联. 这里需要定义好模块信息和对应的菜单信息,然后在应用管理中绑定对应的模块,便于模块复用.
租户应用配置: 在租户管理这里将应用授权给租户,同时配置登录选项,配置好了之后租户下的用户才能使用这个应用

角色授权: 租户下有了这个应用后,可以绑定对应的角色, 对应角色的用户就可以使用该应用了