传统的 RBAC 指的是基于角色的访问控制(Role-Based Access Control
),在安全领域中是被广泛使用的一种访问控制机制。应用程序因为提供的一个或一组功能的目标用户不同而通过角色对用户进行区分,每个角色只允许操作被授权了的一组功能。
新的 RBAC (The New RBAC)指的是基于资源的访问控制(Resource-Based Access Control
),相比传统 RBAC,新 RBAC 有着诸多优点。
传统意义上的 RBAC(基于角色的访问控制)
角色是一个抽象概念,通常代表一组对资源的操作能力,角色被分配给用户,因此用户就可以 “做” 角色能够做的事情。例如一个用户登陆到应用程序,用户拥有 “帖子管理员” 的角色,那么用户就可以做帖子管理员能够做的事情,比如删除帖子,发表帖子等。
由于角色是一个抽象概念,需要一个具象的表示,我们才能在开发过程中实现相关的控制逻辑,再拿 “帖子管理员” 为例,代码中我们往往会用字符串来表示角色,如 PostManager
,那么在开发时可能就会出现如下的代码段:
if (user