一、权限管理
1.定义:权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。
2.作用:权利不同可以了解的数据内容不同,保证数据隐私,避免数据泄密;职责不同所需要页面不同,保证操作效率,避免页面干扰;技术水平不同可以操作的功能不同,保证系统安全,避免操作风险
3.权限可以分为三种:页面权限,操作权限,数据权限。
二、原则
1.权责明晰
1)权:专人做专事,既可以防止误操作,又避免干扰
2)责:能将错误行为定位到人,落实责任。
2.界限分明
1)功能:将功能按不同层级或者属性进行划分
2)数据:将数据按业务类型或者组织架构特性进行划分
3.流程规范
1)依赖:允许用户依赖别人作业和查看作业信息,保证组织的流畅性;
2)继承:根据实际情况要考虑流程的容错性,比如是否可以跨节点确认。
三、原理
1.RBAC(Role-Based Access Control)基于角色的访问控制,不同于传统的权限模型直接赋予使用者权限,而是将权限赋予角色。
1)角色是这个模型核心,角色往前可以和用户关联,让用户拥有角色属性。角色与用户多对多的关系。
2)角色往后可以和权限关联,让权限有个归类代表。角色和权限多对多的关系。
用户-角色-权限关系表 用户-角色-权限关系表3)通过上图有人会问为什么不直接给用户分配权限呢,为什么要有角色这一环节。其实图中角色表达的是传递的意思,也就是说可以通过角色来关联用户和权限,同时也可以,直接给用户配权限。只是直接给用户配权限,少了一层关系,扩展性就弱了一些,比较适合那些角色类型少的平台。
2.用户组
1)当用户基数很少时,我们可以直接给相应用户指定相应角色;当平台角色类型很少时,我们也可以直接在角色上挂靠用户。但是当平台用户基数增大,角色类型增多时,如果直接给用户配角色,管理员的工作量就会很大。这时候我们可以引入一个概念“用户组”,就是将相同属性的用户归类到一起。
用户组-用户关系表1.用户组是用来隔离数据和用户的,用户加入当前项目才可以享受该项目下的资源。可以把用户当做部门,A部门的用户不可以查看B部门的数据。同一部门、同一项目组、同一岗位等这些信息。有了用户组,我们就可以直接给用户组配置权限,这样整个用户组的用户就拥有了相应的权限。
3.删除项目,需要提示是否删除项目下的数据,如果删除有很多风险,那就禁用删除吧。还有一种折中的方法,就是删除时允许将项目下的资源迁移到其他项目。
五、用户管理
1.管理用户信息,以及对用户进行增删改查,包括用户名称、所属部门、联系电话等信息,至于密码,一般只能重置密码,而不是显示密码允许修改。
1)源:一般我们可以和OA关联拿取账号,而不需要在产品里添加,保证内部系统信息一致性。
2)目标:在产品中一些页面需要读取用户管理的用户信息。
3)交接:如果用户的信息被产品某些功能所引用,必须考虑用户离职后,其创建的资源管理的问题,这时候被赋予所有权限的管理员是个很好的接盘侠。
六、用户组管理
1.用户组其实就是批量给用户赋予角色,将多个用户绑定为一个小组,再给这个小组赋予一个角色。
2.如果内部组织架构不复杂的话,最好不要加入用户组,不然增加了权限体系的复杂性,毕竟杀鸡焉用牛刀。
七、角色管理
1.角色管理是确定角色具备哪些权限的一个过程,他是一个集合的概念,是众多最小权限颗粒的组成。我们通过把权限给这个角色,再把角色给账号,从而实现账号的权限,因此它承担了一个桥梁的作用。
2.管理角色信息,对角色进行增删改查,包括角色名称、角色描述和角色状态等。
32.可以将角色理解为将权限打包成一个小组,那个小组就是一个角色。
八、权限
1.页面权限:页面权限指用户可以看到的页面。如果你的产品比较复杂,可能你需要从模块权限到菜单权限最后到页面权限。
2.操作权限:操作权限指用户可以操作的内容,即按钮权限,是否有增删改查的权限。
网友评论