系统设计之基于资源角色的权限管理
权限管理是所有后台系统的一个重要组成部分,其目的是控制用户(User)对资源(Resource)的操作(Action),避免因为权限控制缺失或操作不当引发风险,比如操作失误,隐私数据泄露等问题。 迄今为止最为普及的权限设计模型是基于角色的访问控制模型(Role-Based Access Control)。它主要是将用户和用户组捆绑在一起叫主体,资源和操作捆绑在一起叫权限,中间用角色做桥梁关联二者。 但近年来随着对数据管控的精细化,资源和操作的捆绑成为了其掣肘。所以资源也需要像用户那样拥有资源组的概念,这样就变成了用户/用户组对资源/资源组有操作权限,这就是基于资源角色的访问控制模型。 本文将详细描述基于角色的访问控制模型到基于资源角色的访问控制模型的进化过程,并使用强大、高效的开源访问控制框架 Casbin 来设计一个基于资源角色的访问控制系统。
[阅读全文]