【权限管理系统】两大设计思路
一、整体描述
-
RBAC(基于角色的访问控制_Role-Based-Access-Control):引入角色和用户集合进行关联
-
ABAC(基于属性的访问控制_Attribute-Based-Access-Control)
二、RBAC(基于角色的访问控制_Role-Based-Access-Control)
RBAC是Role Based Access Control的英文缩写,意思是 基于角色的访问控制。
RBAC实际上就是针对产品去挖掘需求时所用到的Who(角色)、What(拥有什么资源)、How(有哪些操作)的方式。
在RBAC模型中,who、what、how构成了访问权限三元组,也就是“Who对What进行How的操作。
RBAC的优缺点
(1)优点:
-
简化了用户和权限的关系
-
易扩展、易维护
(2)缺点:
- RBAC模型没有提供操作顺序的控制机制,这一缺陷使得RBAC模型很难适应那些对操作次序有严格要求的系统
三、Attribute-Based-Access-Control
基于属性的访问控制 (ABAC) 是一种授权模型,它评估属性(或特征)而不是角色来确定访问权限。
ABAC 的目的是保护数据、网络设备和 IT 资源等对象免遭未经授权的用户和操作(这些用户和操作不具有组织安全策略定义的“批准”特征)的影响。
通过ABAC,组织的访问策略可以根据访问事件中涉及的主体(用户)、资源、操作和环境的属性强制执行访问决策。
主体:主体是请求访问资源以执行操作的用户。用户配置文件中的主题属性包括 ID、工作角色、组成员身份、部门和组织成员身份、管理级别、安全许可和其他识别标准。ABAC 系统通常从 HR 系统或目录获取此数据,或者以其他方式从登录期间使用的身份验证令牌收集此信息。
资源:资源是主体想要访问的资产或对象(例如文件、应用程序、服务器甚至API )。资源属性都是识别特征,例如文件的创建日期、所有者、文件名和类型以及数据敏感性。例如,当尝试访问您的网上银行帐户时,涉及的资源将是“银行帐户 = <正确的帐号>”。
操作:操作是用户尝试使用资源执行的操作。常见的操作属性包括“读取”、“写入”、“编辑”、“复制”和“删除”。在某些情况下,多个属性可以描述一个操作。继续以网上银行为例,请求转账可能具有“操作类型 = 转账”和“金额 = 200 美元”的特征。
环境:环境是每个访问请求的更广泛的上下文。所有环境属性都涉及上下文因素,例如访问尝试的时间和位置、主体的设备、通信协议和加密强度。上下文信息还可以包括组织已建立的风险信号,例如身份验证强度和主体的正常行为模式。
ABAC如何使用属性来表达访问控制策略?
属性是访问事件中涉及的组件的特征或值。基于属性的访问控制根据规则分析这些组件的属性。这些规则定义了授权哪些属性组合,以便主体能够成功地对对象执行操作。
根据属性在环境中的交互方式,每个ABAC解决方案都可以在环境中评估它们,并执行规则和关系。策略考虑属性来定义允许或不允许哪些访问条件。
例如,假设有以下策略:
如果面试对象从事的是沟通工作,他们应该阅读并编辑他们所代表的业务部门的媒体策略。
当有访问请求发生时,ABAC系统会分析属性值是否与已建立的策略匹配。只要上述策略存在,具有以下属性的访问请求应授予访问权限:
-
受试者的“工作角色”=“沟通”
-
主题的“业务单位”=“营销”
-
动作= "编辑"
-
资源" type " = "媒体策略文件"
-
资源“业务单位”=“市场”
实际上,ABAC允许管理员实现粒度的、基于策略的访问控制,使用不同的属性组合来创建根据情况需要的特定或广泛的访问条件。
ABAC的优点:
-
细致而灵活的政策制定
-
与新用户的兼容性
-
严格的安全性和隐私性
ABAC的缺点:
-
说到ABAC,它的好处远远大于成本。但是,在实现基于属性的访问控制之前,企业应该记住一个缺点:实现的复杂性。
-
ABAC可能很难落地。管理员需要手动定义属性,将其分配给每个组件,并创建一个中央策略引擎,该引擎根据各种条件(“如果X,则Y”)确定允许执行哪些属性。该模型对属性的关注也使得在所有属性和规则到位之前很难评估特定用户可用的权限。
2.5.3、授权策略
策略授权类型分为三种。
-
基于用户的授权:
-
基于资源的策略:
-
基于服务的授权: