什么是RBAC?
RBAC(Role-Based Access Control,基于角色的访问控制)是一种广泛应用于计算机系统和网络安全的访问控制机制。它的核心思想是通过定义角色,将权限与角色关联,再将角色赋予用户,从而简化权限管理。
简单一点来说就是把
权限
绑定到角色
上,在把角色
分配给用户
,来实现对系统资源的访问控制。一个用户可以拥有多个角色,一个角色又可以拥有若干权限,这样就构成了
用户-角色-权限
的授权模型
RBAC模型有以下几种核心概念:
- 用户(User): 系统中的实体,通常是人或进程,需要访问系统资源。(指的是系统的实际使用者。)
- 角色 (Role): 一组权限的集合。角色可以根据组织结构、职能或其他分类进行定义。(例如管理员、普通用户等。)
- 权限(Permission): 权限是指对系统资源进行操作的许可,如读取、写入、修改等。权限可以被分配给角色。
- 分配(Assignment): 分配是指将角色与用户关联起来,以赋予用户相应的权限。
用户、角色、权限之间的关系
用户与角色之间的关系:
-
多对多:一个用户可以拥有多个角色,而一个角色也可以被多个用户所拥有。
- 例如,一个用户可能是“管理员”和“项目经理”,而“管理员”角色可以被多个用户拥有。
角色与权限的关系:
-
多对多:一个角色可以拥有多个权限,而一个权限也可以被多个角色所拥有。
- 例如,“管理员”角色可能拥有“创建内容”、“删除内容”等多个权限,而“创建内容”权限可能被“管理员”和“编辑”角色所拥有。
示例:
假设有以下角色和权限:
- 角色:
- 管理员(Admin)
- 普通用户(User)