项目中有涉及权限管理吗?你知道RBAC模型吗?
首先介绍一下什么是“权限管理”:
权限管理在于Who是否可以对What进行How的操作,举个例子,在学校里面,有老师、学生,学生中又有班委和普通学生,他们在班级中分别担任了不同的职位,有着不同的“权力”,这里就可以看作他们每个人有不同的权限,在我们开发过程中,权限管理也是至关重要的。
在项目开发中的权限管理便是指对项目中的资源、操作和角色进行管理,以确保只有授权的人员才能进行访问和操作相应的资源。权限管理是确保系统安全的重要手段,通过控制用户的访问和操作权限,可以防止一些未授权的访问和操作,保护系统的数据和功能不受损害。
如何实现权限管理呢?
这就涉及到RBAC模型了,如果只是简单的实现权限管理是非常简单的,仅仅在user表里面加一个role_id来区分角色就可以搞定,而如果要实现正规一点的权限管理的化,就要用到RBAC模型。
什么式RABC模型呢?怎么实现的呢?
RABC模型(Role_Based Access Control:基于角色的访问控制)模型式比较早期提出的权限实现模型,在多用户计算机时期该思想即被提出,它是一种常见的权限管理模型,在RBAC模型里面,有三个基础组成部分,分别是:用户、角色和权限。它将权限和角色相关联,通过给用户分配相应的角色来控制其访问和操作的权限。在RBAC模型中,角色是一组权限集合,用户根据其职责和需求被分配不同的角色,从而获得相应的权限。
用户、角色、权限的关系
- User(用户):每个用户都有唯一的UID识别,并被赋予不同的角色
- Role(角色):不同的角色具有不同的权限
- Permission(权限):访问权限
- 用户-角色映射:用户和角色之间的映射关系
- 角色-权限映射:角色和权限之间的映射
RBAC认为权限授权的过程可以抽象地概括为:Who是否可以对What进行How的访问操作,并对这个逻辑表达式进行判断是否为True的求解过程,也即为权限问题转换为Who、What、How的问题,Who、What、How构成了访问权限三元组,具体的理论可以参考RBAC96。
本文作者:王大麻子
本文链接:https://www.cnblogs.com/wangxie/p/18005322
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步