权限管理
一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源。
授权(Authorization)是为了保证用户有对请求资源特定操作的权限。比如用户的私人信息只能自己能访问,其他人无法看到;有些特殊的操作只能管理员可以操作,其他用户有只读的权限等。权限是什么?
- 员工进门需要刷卡。
- 电脑某个文件夹提示无权访问。
- 看女神的QQ空间提示无权访问。
我们在做任何一款产品的时候,或多或少都会涉及到用户和权限的问题。 比如:
- 做企业类软件,不同部门、不同职位的人的权限是不同的;
- 做论坛类产品的时候,版主和访客权限也是不一样的;
- 一款产品的收费用户和免费用户权限也是截然不同的。
很多情况下开发设计用户和权限关系的时候,都是按照感觉来进行自我推理搭建产品的用户与权限模型。这种基于感觉推理搭建的模型肯定存在诸多的问题,比如写死了关系导致权限不灵活、考虑不周导致权限覆盖能力弱等等。
常见权限管理模型:RBAC
RBAC是一套成熟的权限模型。在传统权限模型中,我们直接把权限赋予用户。而在RBAC中,增加了“角色”的概念,我们首先把权限赋予角色,再把角色赋予用户。这样,由于增加了角色,授权会更加灵活方便。
权限系统:谁?是什么身份?可以允许看到什么内容,执行哪些操作?
- 谁?当前访问管理系统的是什么人? 用户
- 是什么身份? 角色,如:经理、主管、销售专员、客服、财务等等。
- 可以看到什么,执行哪些操作?数据管理:允许看到哪些菜单、字段等,功能权限:增删改