IAM中的ACL、RBAC、ABAC三大权限管理模型,到底怎么选?

本文详细探讨了权限管理在小李面临的问题中所起的作用,介绍了访问控制列表(AccessControlList,ACL)、基于角色的访问控制(RBAC)和基于属性的访问控制(ABAC)三种模型。对比了它们在图书馆借阅场景中的应用,以及在大型组织中如何提高权限管理效率和精细化程度。
摘要由CSDN通过智能技术生成

昨天说到了小李发愁怎样才能让权限管理又精细又准确,今天说说IAM中的三大权限管理模型。

想弄清小李遇到的难题,先要厘清权限管理的目的。权限管理,是为了让用户可以访问而且只能访问自己被授权的资源,不能多也不能少。这个目的需要借助各种权限管理模型来实现。

ACL(访问控制列表)是率先登场的权限管理模型。它的概念很简单,每一个需要被访问控制机制保护的资源对象(称为客体)都维持一个独立的关联映射表,其中记录了对该客体进行访问的实体(称为主体)被授予访问客体的权限,以及允许对客体执行哪些操作。当主体试图访问客体时,系统会检查映射表,确定是否允许访问。

图片

以图书馆为例,ACL相当于在每本书上都附了一张借阅许可清单,列出了每一个有权限借书的人,以及他们可以借阅的时间。这种方式简单实用,却存在两大问题,一是每次访问时都必须检查客体的ACL,会耗费一定资源;二来大用户量、多业务应用的环境下,ACL的添加、删除和更改比较复杂,容易出现错误。

RBAC(基于角色的访问控制)是比ACL更新的权限管理模型。它采用了可分配给主体具有特定权限集的预定义角色,访问权限由为个体分配角色的人提前定义,最终由客体属主在确定角色权限时明确。在处理访问请求时,系统会评估主体的角色以及角色对应的权限,生成访问控制策略。

图片

还是以图书馆为例,RBAC相当于给每一个借书人分配了“学生”、“老师”、“某课题组成员”等不同的角色,“学生”可以借10本书,“老师”可以借20本书,“某课题组成员”可以借阅与课题有关的所有书籍。在企业内部,角色可以以级别、部门、项目等维度定义,一个员工可以有多个角色。相比ACL,RBAC能够借助中间件实现对多个系统和资源访问权限的集中管理,简化了权限管理流程,使得权限管理更规范、更便捷。

RBAC相比ACL更适应多用户、多应用、多资源的大型组织,但它的授权粒度只到角色组,难以对具体的个体实施细粒度的访问控制。为了弥补这个缺陷,ABAC模型(基于属性的访问控制)应运而生。与RBAC不同,其访问控制决策不再以单一的角色为依据,而是基于一组与请求者、环境和/或资源本身相关的特征或属性。在ABAC模型中,系统将权限直接分配给访问主体。当主体请求访问后,ABAC引擎通过检查与访问请求相关的各种属性值,基于预设的访问控制策略,确定允许或拒绝访问。

图片

如果应用了ABAC,图书馆的借阅管理将更加精细、灵活,比如“老师”平时可以同时借20本书,寒暑假只能借10本,“学生”在假期不能借书,“某课题组成员”如果假期留校仍可无限量借书,离校则不能借书。在ABAC模型中,企业可以基于时间、地点、IP、设备、网络、操作系统、风险级别等属性制定不同的访问控制策略,实现细粒度的权限管理和动态访问控制,几乎能满足所有类型的需求,是真正的“高级货”。

  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值