RBAC权限控制

Posted strandtrack

tags:

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

为什么要进行权限控制?

因为一个系统需要的不同级别,当没有权限控制,你的所有功能完全不设防,这是不符合要求的,也是不合理的?

怎么进行权限控制?

1.先定义资源

定义受保护的资源,比如你的handler方法,service方法,一些静态资源等

2.创建权限

一个一个控制太复杂了,也太麻烦了。所以可以直接创建权限,给这个权限操作某些资源的权力,然后可以把这个权限授予给某个人

3.创建角色

比如创建管理员角色,赋予它增删改查的权力,让他能够管理普通用户。在比如创建普通用户角色,赋予它查的权力,让他能够查看资源。

4.管理用户

5.建立关联关系

权限→资源:单向多对多

Java 类之间单向:从权限实体类可以获取到资源对象的集合,但是通过资 源获取不到权限

数据库表之间多对多: 一个权限可以包含多个资源 一个资源可以被分配给多个不同权限

角色→权限:单向多对多

Java 类之间单向:从角色实体类可以获取到权限对象的集合,但是通过权 限获取不到角色

数据库表之间多对多: 一个角色可以包含多个权限 一个权限可以被分配给多个不同角色

用户→角色:双向多对多

Java 类之间双向:可以通过用户获取它具备的角色,也可以看一个角色下 包含哪些用户

数据库表之间: 一个角色可以包含多个用户 一个用户可以身兼数职。

 

RBAC权限模型

1.概念:

鉴于权限控制的核心是用户通过角色与权限进行关联,所以前面描述的权限控制系 统可以提炼为一个模型:RBAC(Role-Based Access Control,基于角色的访问控制)。 在 RBAC 模型中,一个用户可以对应多个角色,一个角色拥有多个权限,权限具体 定义用户可以做哪些事情

2.RBAC分级:

RBAC0-RBAC3

3.RBAC框架

主要是SpringSecurity和shiro

shiro是轻量级的,SpringSecurity是重量级的,功能更多。

 

 

以上是关于RBAC权限控制的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP中RBAC权限控制求助

RBAC权限控制项目

rbac 权限控制

Spring Security----RBAC权限控制模型,和权限相关知识点整理

图文详解基于角色的权限控制模型RBAC

转:RBAC权限控制