基于角色的权限设计
问题提出
- 做互联网相关产品时,比较常见的就会遇到数据请求身份校验问题,需要判断当前用户有没有身份,该身份是否可以进行进一步的操作
- 虽说开始可以规定“特定的身份”表示加以判断,但是当随着业务的拓展,客户端的身份也会越来越多和复杂的交互关系
- 还有涉及到业务表的CRUD时,也就是操作权限,单独设计可以,但是权限系统貌似分隔开,没有有机的将这些校验类型的进行统一进行管理
尝试着进行设计
- 初探设计
- 改进设计
自行设计的缺陷
- 权限集合在一起,没有层次,比较混乱
- 角色和权限关联随意,没有严谨的关联关系
RABC(基于角色权限控制)的设计
- 基于角色的权限控制的核心是在用户和权限之间引入了角色,意味着用户和权限直接关联被分开,通过用户关联角色、角色关联权限的方式间接的来给用户赋予权限。
- 加入角色的好处
- 用户的身份更加明了,用户归属感更强
- 角色和角色对应的权限更加清晰,便于调整用户和权限之间的关系,只需要将用户的角色进行调整即可,灵活度比较高
权限设计拓展
- 用户-角色-权限
- 用户-组织-角色-权限
- 用户-组织-岗位-角色-权限