Java笔记--权限管理(RBAC)

(一)RBAC( Role-Based Access Control):基于角色的访问控制

    RBAC支持三个著名的安全原则:最小权限原则,责任分离原则和数据抽象原则。

    RBAC的基本思想是:授权给用户的访问权限,通常由用户在一个组织中担当的角色来确定。RBAC中许可被授权给角色,角色被授权给用户,用户不直接与许可关联。RBAC对访问权限的授权由管理员统一管理,RBAC根据用户在组织内所处的角色作出访问授权与控制,授权规定是强加给用户的,用户不能自主地将访问权限传给他人,这是一种非自主型集中式访问控制方式。例如,在医院里,医生这个角色可以开处方,但他无权将开处方的权力传给护士。在RBAC中,用户标识对于身份认证以及审计记录是十分有用的;但真正决定访问权限的是用户对应的角色标识。用户能够对一客体执行访问操作的必要条件是,该用户被授权了一定的角色,其中有一个在当前时刻处于活跃状态,而且这个角色对客体拥有相应的访问权限。即RBAC以角色作为访问控制的主体,用户以什么样的角色对资源进行访问,决定了用户可执行何种操作。

(二) RBAC认为权限授权实际上是Who、What、How的问题。在RBAC模型中,who、what、how构成了访问权限三元组,也就是“Who对What(Which)进行How的操作”。

 Who:权限的拥用者或主体(如Principal、User、Group、Role、Actor等等)
 What:权限针对的对象或资源(Resource、Class)。
 How:具体的权限(Privilege,正向授权与负向授权)。
 Operator:操作。表明对What的How操作。也就是Privilege+Resource
Role:角色,一定数量的权限的集合。权限分配的单位与载体,目的是隔离User与Privilege的逻辑关系.
Group:用户组,权限分配的单位与载体。权限不考虑分配给特定的用户而给组。组可以包括组(以实现权限的继承),也可以包含用户,组内用户继承组的权限。User与Group是多对多的关系。Group可以层次化,以满足不同层级权限控制的要求。
RBAC的关注点在于Role和User, Permission的关系。称为User assignment(UA)和Permission assignment(PA).关系的左右两边都是Many-to-Many关系。就是user可以有多个role,role可以包括多个user。
凡是用过RDBMS都知道,n:m 的关系需要一个中间表来保存两个表的关系。这UA和PA就相当于中间表。事实上,整个RBAC都是基于关系模型。
Session在RBAC中是比较隐晦的一个元素。标准上说:每个Session是一个映射,一个用户到多个role的映射。当一个用户激活他所有角色的一个子集的时候,建立一个session。每个Session和单个的user关联,并且每个User可以关联到一或多个Session.
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java开发中,RBAC(Role-Based Access Control)权限管理系统设计通常包括以下几个部分: . 数据库:RBAC管理系统需要一个数据库来存储用户、角色和权限等相关信息。数据库可以使用SQL文件进行初始化和配置。 2. RBAC模型:RBAC权限管理系统使用RBAC模型来实现权限控制。该模型主要包括角色、权限和用户等几个核心概念。角色代表一组权限的集合,用户被分配给角色,而权限则定义了系统中的操作和访问控制规则。 3. 监听器、过滤器和拦截器:RBAC管理系统常常使用监听器、过滤器和拦截器来实现权限的验证和访问控制。监听器可以监听用户的登录和注销事件,过滤器可以拦截请求并进行权限验证,拦截器可以在方法执行前后进行权限检查。 4. 权限控制效果展示:RBAC管理系统通常会提供一个用户界面,用于展示权限控制效果。用户登录系统后,根据其所关联的角色,系统会查询角色拥有的权限,包括菜单权限和按钮权限。不同角色的用户可能会看到不同的菜单项。 5. 系统管理模块:RBAC管理系统通常包含系统管理模块,其中包括用户管理、角色管理和权限管理等子模块。管理员可以在该模块中进行基本信息的管理,同时也可以对用户分配角色和设置角色的权限,以实现对用户权限信息的动态修改。 6. RBAC模型扩展:除了基本的RBAC模型,也可以对RBAC进行扩展。例如,在RBAC1模型中,引入了继承的概念,子角色可以继承父角色的权限,并且进行分层。这样可以实现更灵活的权限管理,例如在一个企业中,数据管理员可以对清单数据和定额数据进行管理,而子角色只能管理其中的一部分数据。 综上所述,Java中的RBAC权限管理设计包括数据库的使用、RBAC模型的实现、监听器、过滤器和拦截器的应用、权限控制效果展示、系统管理模块和RBAC模型的扩展等方面。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [java 实现rbac权限管理](https://download.csdn.net/download/dreamtheworld1/10347670)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [基于RBAC权限控制模型的管理系统的设计与实现](https://blog.csdn.net/weixin_43819566/article/details/128728841)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值