权限系统
3种权限
功能权限:新建、删除、查询、修改、停用、分享、分配、提交、审批
组织权限:个人、部门、本下级(指本级以及下级部门的权限)、组织(指当前组织下所有业务部门的权限)
数据权限:指某角色或某用户能否查看或编辑某个实例中的某个字段。
4个基本要素
主体:指行为的行使者,是操作的发起者。
- 用户及用户组:“系统使用者”,与系统的账号体系相对应,一个用户对应一个唯一账号;多个用户组成一个用户组;
- 角色及角色组:角色是权限分配的单位与载体,通常与组织架构体系相对应;
- 用户标签及用户标签组;
- 设备及设备组;
- IP地址:限制对IP地址的访问;
- 地理位置’;
- 局域网。
客体:指行为的承受者,是操作所针对的对象。
- 资源:基本属性的数据;行数据;个别的列数据(俗称“某些字段”)
- 资源的容器:页面;目录或菜单;Tab;按钮
- 操作资源所必须的条件:
任务流,也称工作流。某一资源在任务流中的状态不同,不同状态的资源可以分配给不同角色操作;
所属权。所属权包括个人、个人及下属、部门、部门及下属、全部,通常与组织架构体系的组织范围相对应。
行为:指主体对客体的活动,包括主体在产品中对客体的一些操作。
- 登入、登出
- 增
- 删
- 改,包括读写
- 查,包括不可见、只读
- 上传、下载
- 共享
机制:包括对主体、客体和主客体关系的认证,对主体行为及行为运行方式的授权。
- 继承:父级可以拥有子级的权限,依托于组织架构或角色层级结构;
- 互斥:是对主体之间责任的强制性规定,防止同一主体拥有足够权限进行欺骗行为,防止即当运动员又当裁判的行为。责任分离有静态和动态之分:
a. 静态互斥。一个用户不能同时拥有两个互斥的角色。
b. 动态互斥。一个用户可以拥有两个角色,但在运行时只能激活一个角色,也成为运行互斥机制。 - 先决条件:A想成为C,就必须先成为B,C只能从B中产生;
- 基数限制:是主体与主体、主体与客体、主体与行为间数量关系的限制。
- 授予机制:是主体将自己的权限授予给其他主体的权限;
- 双向验证:系统即验证主体,也验证客体,双方都通过验证时才能允许主体对客体的行为;
- 共享机制。
- 访问范围限定机制:组织架构;角色层级结构;组织范围/抽象关系。
- 环境限制:空间限制;时间限制;频度限制。
5种常见权限模型
ACL模型(Access Control List):访问控制列表,是最早的、最基本的一种访问控制机制,是基于客体进行控制的模型。
原理:每一个客体都有一个列表,列表中记录的是哪些主体可以对这个客体做哪些行为,非常简单,但当主体的数量较多时,配置和维护工作就会成本大、易出错。
DAC模型(Discretionary Access Control):自主访问控制,是ACL的一种拓展。
原理:在ACL模型的基础上,允许主体可以将自己拥有的权限自主地授予其他主体,所以权限可以任意传递,但对权限控制比较分散,主体的权限太大,容易泄露信息。
MAC模型(Mandatory Access Control):强制访问控制
MAC模型中主要的是双向验证机制。常见于机密机构或者其他等级观念强烈的行业,如军用和市政安全领域的软件。
原理:主体有一个权限标识,客体也有一个权限标识,而主体能否对该客体进行操作取决于双方的权限标识的关系。
缺点:控制太严格,实现工作量大,缺乏灵活性。
RBAC模型(Role-Based Access Control):基于角色的访问控制
原理:在主体和权限之间引入了“角色(Role)”的概念,解耦了主体和权限之间的关系。
有四个不同的层次:
- RBAC0:基本模型,相当于ACL+角色。权限被赋予角色,而不是用户,当一个角色被制定给一个用户时,该用户就拥有了该角色所包含的权限。所有的角色都是平级的,没有制定角色层级关系;所有对象都没有附加约束,没有制定限制;
- RBAC1:角色分级模型,相当于RBAC0+继承机制;
- RBAC2:角色限制模型,相当于RBAC0+互斥机制+先决条件机制+基数限制机制;
- RBAC3:统一模型,相当于RBAC1+RBAC2。
缺点:需要将某个权限单独设置给用户时,如果用户已有的角色中不包含该权限,就需要重新设置角色的权限或者重新创建一个新的角色,在业务和需求变更时需要维护大量的角色。
ABAC模型(Attribute-Based Access Control):基于属性的访问控制
原理:通过动态计算一个或一组属性是否满足某种机制来授权,是一种很灵活的权限模型,可以按需实现不同颗粒度的权限控制。
属性通常有四类:
- 主体属性,如用户年龄、性别等;
- 客体属性,如一篇文章等;
- 环境属性,即空间限制、时间限制、频度限制;
- 操作属性,即行为类型,如读写、只读等。
缺点:规则复杂,不易看出主体与客体之间的关系,实现非常难。
本文详细介绍了权限系统的三种权限类型:功能权限、组织权限和数据权限,以及权限系统的四个基本要素:主体、客体、行为和机制。讨论了五种常见的权限模型:ACL、DAC、MAC、RBAC和ABAC,分析了各自的特点和适用场景。

52

被折叠的 条评论
为什么被折叠?



