基于角色的访问控制(RBAC)是实施面向企业安全策略的一种有效的访问控制方式。其基本思想是,对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合。每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。这样做的好处是,不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多,这样将简化用户的权限管理,减少系统的开销。
在 Yii 的 RBAC 中,一个基本的概念是 授权项目(authorization item)。一个授权项目就是一个做某件事的许可(例如新帖发布,用户管理)。根据其粒度和目标受众,授权项目可分为 操作(operations),任务(tasks) 和 角色(roles)。一个角色由若干任务组成,一个任务由若干操作组成, 而一个操作就是一个许可,不可再分。例如,我们有一个系统,它有一个 管理员
角色,它由 帖子管理
和 用户管理
任务组成。 用户管理
任务可以包含 创建用户
,修改用户
和 删除用户
操作组成。为保持灵活性,Yii 还允许一个角色包含其他角色或操作,一个任务可以包含其他操作,一个操作可以包括其他操作。