RBAC基于角色的权限管理模型

Posted demrystv

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RBAC基于角色的权限管理模型相关的知识,希望对你有一定的参考价值。

一、权限管理模型的必要性:

              a. 安全性:防止误操作,防止数据泄露,保证信息的安全。

              b. 数据隔离:保持不同的角色具有不同的权限,只能看到自己权限范围内的数据

 

二、权限管理模型的发展:

              a. 传统的权限管理:随着用户数量的增大和用户权限区别的增大,传统的权限管理需要针对每个用户依次管理,成本较高。

              b. RBAC:Role-Based Access Control 用户-角色-权限,权限与角色相关联,用户与角色相关联,通过对用户赋予相应的角色,再去获取相应的权限,从而实现了用户与权限的解耦,具有很好的扩展性和通用性。

 

三、RBAC的三个原则:

              a. 最小特权原则:即通过对每个角色赋予相应的权限,通过对每个用户赋予相应的角色,从而实现给用户分配相应的权限,保证该权限不超过该用户完成其任务所需要的权限即可。

              b. 责任分离原则:指的是针对敏感任务,分配两个责任上相互制约的两个角色,比如针对财务管理员和会计。

              c. 数据抽象原则:主要是通过抽象许可权来实现。比如财务上的信用等抽象许可权。

 

四、RBAC的数据库设计

              a. 用户表

              b. 角色表

              c. 权限表

              d. 用户角色表

              e. 角色权限表

              技术图片

 

 

五、基于RBAC的实现流程

              a. 首先针对权限的校验的业务逻辑在一个父类中实现,其余子类均需要实现该父类,从而实现针对用户的权限的控制。

              b. 用户访问时,首先查询用户表判断用户的状态是否是可用。

              c. 然后根据用户 id查询 用户角色表,得到用户的角色id

              d. 根据角色 id 查询 权限角色表,得到该用户在该角色下的权限id

              e. 根据权限 id 查询 权限表,得到该用户在该角色下的权限。

 

六、主流的权限管理框架

              a. Spring Security

              b. Apache Shiro

以上是关于RBAC基于角色的权限管理模型的主要内容,如果未能解决你的问题,请参考以下文章

RBAC权限管理

RBAC权限管理

[Linux之权限管理⽤户组管理]

用户权限管理数据库设计(RBAC)

RBAC用户权限管理数据库设计

RBAC从入门到精通