RBAC授权模式

RBAC授权模式

一、基于角色的访问控制

1.1概念

RBAC基于角色的访问控制(Role-Based Access Control)是按角色进行授权,

1.2实例

比如:主体的角色为总经理可以查 询企业运营报表,查询员工工资信息等。

例如:角色1 才能进行查看

If(user.hasRole(“角色1”)){

查看操作

}

此时如果角色 2 也需要有查看权限则:

If(user.hasRole(“角色1”)||user.hasRole(“角色2”)){

查看操作

}

缺点:当需要修改角色的权限时就需要修改授权的相关代码,系统可扩展性差。

1.3 关系

用户与角色是多对多关系

二、基于资源的访问控制

2.1概念

RBAC基于资源的访问控制(Resource-Based Access Control)是按资源(或权限)进行授权。

2.2 实例

比如:用户必须 具有查询工资权限才可以查询员工工资信息等。

只需判断用户或者角色有某个权限

If(user.hasPermission(“查看权限”)){

}

优点:系统设计时定义好查询工资的权限标识,即使查询工资所需要的角色变化为总经理和部门经理也不需要修改 授权代码,系统可扩展性强

2.3 关系

角色与权限是多对多的关系

原文地址:https://www.cnblogs.com/kali5k/p/13381057.html