1小时!RBAC权限模型从入门到精通
一、权限初探
- 使用者角度:
- 权力和限制
- 正确的行驶权限、
- 在限制范围内使用权力
- 权力和限制
- 设计者的角度
- 安全:控制不同的角色合理的访问不同的资源
二、权限模型
- 站在巨人的肩膀上,探究四种权限模型(ABAC和PBAC很少使用)
- ACL和RBAC的对比
- ACL是用户直接访问权限
- RBAC则是用户通过角色间接地获取权限
- RBAC的优点:
- 简化了用户和权限的关系
- 易扩展、易于维护
- ACL是用户直接访问权限
三、RBAC模型
- RBAC流程图
- RBAC模块功能
- 用户管理:用户的CRUD
- 角色管理:角色CRUD
- 权限管理:权限的CRU,没有删除
四、RBAC实际应用
- 数据库设计
- 表结构图
参考地址:https://github.com/apanly/rbac - 表关系图(基础核心5张表)
- 复杂的基于RBAC的权限表关系图(细粒度)
- 表结构图
- RBAC级别
- RBAC0:核心模型,其他级别都是建立在该级别的基础之上
- 会话:相当于场景,即就是用户在场景中担当什么角色
- 一个用户最终拥有的许可=这个用户拥有的角色对应的许可集合
- RBAC1:基于RBAC0对角色进行分层,角色会有上下级关系
- RBAC2:基于RBAC0,对角色进行了访问控制
- 互斥角色:同一个用户不能授予互斥关系的角色,如:不能同时授予会计和出纳的角色,不能即管账又管钱
- 互斥角色:同一个用户不能授予互斥关系的角色,如:不能同时授予会计和出纳的角色,不能即管账又管钱
- RBAC3:基于RBAC0,并且整合了RBAC1和RBAC2,最全面也最复杂
- 任何系统中都会涉及到权限管理模块,无论复杂简单,都可以通过RBAC模型为基础,进行灵活运用来解决实际问题。
- RBAC0:核心模型,其他级别都是建立在该级别的基础之上
逻辑系统,条理清晰!