RBAC0
- 基本的权限角色绑定并为用户分配角色。
- 会话节点,存储一个用户当前会话所激活的权限信息。
RBAC1
- 基于RBAC0权限管理规范
- 基本:定义角色和角色之间可以存在继承关系,并且允许多继承。
- 扩展:角色和角色间的继承关系是一个树形结构。
RBAC2
- 基于RBAC0权限管理规范
- 静态职责隔离
- 角色之间存在互斥关系,一个用户不能被同时分配互斥的角色
- 一个角色可授予的用户数有限(逻辑取反亦有效)
- 授予角色可有先决条件限制
- 动态职责分离
- 动态决定一个会话该激活哪个角色。
RBAC3
- RBAC1 + RBAC2
eCommerce-RBAC
- 地址
- 特点
- 简单实现了RBAC3特性
-
数据结构清晰,见下方ER图
- 采用HTTP API,各个模块API功能比较单一且功能比较全面
- 不够完善的地方
- 没有完善的鉴权机制以及鉴权方案
- 仅有权限管理方案,没有权限分类方案。
可借鉴的点
- API接口功能单一
- 角色继承(自下而上继承)
- 简化配置,下级拥有的权限上级默认拥有
- session模块
- 隔离user和role之间的直接关系,使得user登录期间可以动态决定他所激活的角色。
- 角色互斥
- 互斥角色,我理解可以作为角色继承在实际应用场景的补充,因为角色继承不是绝对的。
- 举例:物流经理角色 –> 仓库管理员角色 –> 守门人角色,即
物流经理角色
拥有守门人角色
的权限。但实际生产中这是不必要的,所以可以将物流经理角色
和守门人角色
设置为互斥,从而让他无法继承。
- 举例:物流经理角色 –> 仓库管理员角色 –> 守门人角色,即
- 互斥角色,我理解可以作为角色继承在实际应用场景的补充,因为角色继承不是绝对的。