1.1 权限的概念
权限是指为了保证职责的有效履行,任职者必须具备的,对某事项进行决策的范围和程度。它常常用“具有批准……事项的权限”来进行表达。例如,具有批准预算外5000元以内的礼品费支出的权限。再有划分了系统的职权,不同的用户拥有不同的职权划分,在职权划分的基础上对职能范围进行了限制。
权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,权限管理几乎出现在任何系统里面,只要有用户和密码的系统。
1.2 使用权限管理的必要性
权限管理对于商业信息化是有很大的帮助,它赋予了分配权力的能力,让您的工作分担给所有人,从而让更多的人参与到您的管理当中。这样的做法既可以提升工作效率还可以做到工作区域承担,让应该承担管理责任的人参与管理,这是商业信息化必须要有的,也是信息化发展必然的结果。
1.3 模块菜单是什么
模块资源授权也称菜单控制,由业务功能模块列表和用户菜单定制共同组成。每个用户可以拥有自己的菜单,也可以直接采用角色缺省菜单(当用户同时充当多个角色且权限重复时,重复的权限仅一次有效)。
1.4 动作按钮是什么
动作权限分配也叫对象控制,对象是指应用系统窗口中的可视对象,如菜单项、按钮、下拉列表框、操作事务等。
控制动作是通过角色与用户授权来实现的。主要是对象属性的控制(使能、禁止,可视、屏蔽)。
1.5 记录级权限(数据权限)是什么
记录级权限控制:简单说就是一种档案中有很多数据,而不同的人员能够看到不同的档案,也就是说一部分数据档案只有一部分人看到,另外一部分档案只有另外一部分人看到。举个栗子:像客户档案,在一家公司中,有很多销售助理,而不同的销售助理只管理各自的客户,别的助理的客户我不需要看到和维护,故系统中控制记录级权限—客户档案即可。
在我们的平台上有两种记录级权限控制:
1、 通过分级管理能控制管理者管理的人员,如职能、临时组织、师傅管徒弟等场景。在每个业务表内规范都有创建人、修改人可以控制能看到哪些人的数据。
2、 可以直接通过记录级权限配置,人员直接能访问的数据,如金额>1000元、部门=当前人的部门等。
1.6 字段级权限是什么
字段级权限控制:还是以客户档案为例,当一个客户档案有多个人维护或者一个客户档案我们要控制不同的人看到这个客户档案中具体的信息字段不同,我们就需要勾选字段级权限控制了。
1.7 权限主体的分类
权限系统中的权限三元组概念,即Who(主体),What(资源),How(操作),这样构成了权限三元组,不管你的权限系统多么的复杂,其实核心都是这三个。
概念:
Who:权限的拥有者或主体(Principal、User、Group、Role、Actor等等)
What:权限针对的对象或资源(Resource、Class)。
How:具体的权限(Privilege,正向授权与负向授权)。
Role:是角色,拥有一定数量的权限。
Operator:操作。表明对What的How操作。
上面介绍的是What、How,下面介绍一下Who。
1.7.1 角色权限
角色,一定数量的权限的集合,是粗粒度和细粒度(业务逻辑)的接口。一个基于粗粒度控制的权限框架软件,对外的接口应该是角色,具体业务实现可以直接继承或拓展丰富角色的内容,角色不是如同用户或组织的具体实体,它是接口概念,抽象的通称。角色的继承通过组织来体现,所以不考虑角色的继承关系。但是角色可以与相关的组织相关联,便于授权。
该权限模型基础是RBAC模型。每个用户拥有若干角色,每个角色拥有若干权限,构成“用户-角色-权限”的授权模型。本程序完成了RBAC3,最复杂也是最全面的RBAC模型,它在RBAC0的基础上,将RBAC1和RBAC2中的优化部分进行了整合。
1.7.2 用户权限
用户的权限是多方面的,有用户直接配置的权限,用户-权限。所归属角色的权限,用户-角色-权限。还有所在组织权限,用户-组织-权限。还包含岗位权限,用户-组织-岗位-权限。最终是以权限来实现对资源的访问控制。
1.7.3 组织机构权限
组织,权限分配的单位与载体,直接映射组织关系。权限不考虑分配给特定的用户。组织可以包含用户,组织内用户继承组织的权限。组织要实现继承。即在创建时必须要指定该组织的父级组织是什么组织。在粗粒度控制上,可以认为,只要某用户直接或者间接的属于某个组织那么它就具备这个组织的所有操作许可。细粒度控制上,在业务逻辑的判断中,用户仅应关注其直接属于的组织。
1.7.4 岗位权限
识别用户的主要身份。一个人可能身兼多职(多个角色),但是他的主要职能是固定的,那怎么告诉系统用户的主要职能是什么呢?答案就是:通过岗位!拿小马哥举例:小马哥身兼经理和财务两种身份,但他的本职工作是“经理”,因此,他的系统岗位应该“经理”。当他登录时,系统会识别他的身份为“经理”,只不过这个“经理”刚好兼具了其他岗位的职能而已;
通过“组织-岗位”关联,快速甄别用户岗位。公司在不断地发展的过程中,系统的用户角色也会不断增加,当角色达到一定数量以后,管理员每新增一个用户都要花相当的时间去寻找角色。引入岗位后,可将组织和岗位、岗位和角色提前进行关联,配置账号时,管理员只要选定组织,系统就给出与该组织关联的岗位,而这些岗位,又是提前关联好角色的,选择起来,既方便又高效!
1.8 分级授权
一、假设一个场景:一个业务系统,用户为国家环保部、省级环保局、地市环保局 三级;如果统一由国家环保部维护所有的部门、用户信息,工作量太大,
且环保部的系统管理员无法详细了解省级、地市的人员信息、角色信息,根本无从维护。
所以需要分级管理,即针对不同组织(部门)设置管理员,每个管理员仅维护本组织的人员、角色信息,如
1、国家环保部的管理员仅维护部里的部门、人员、角色
2、北京市的管理员仅维护北京市环保局的部门、人员、角色
3、河北省的管理员仅维护河北省的部门、人员、角色
4、石家庄市的管理员仅维护石家庄市的部门、人员、角色
当然还有化妆品、药品、零售、快递、建筑等行业也需要分级管理。
二、分级权限管理模型
当前企业管理在运行中遇到的主要问题是职责明确,分级授权管理模式能够明确各级管理者的权限和职责。
管理模式主要包括用户-角色分配管理、角色-权限分配管理和角色-角色分配管理,管理的范围依赖于角色的继承关系。在分层管理模式中引入了用户和权限的概念,构造组织结构,重新定义角色和用户,有效解决管理权限的分配问题。
三、开启和不启用分级授权分级管理
在大型组织中分级授权的管理模式能很好的把各个级别管理人员的权利和责任都明确的展现出来,而且方便了人员的管理。
但分级授权分级管理却不使用中小型公司,过于繁琐,浪费大量的管理成本。所以本系统可根据您的实际情况进行配置。
分级管理在程序中到底有什么不同呢?
用户的管理权限是不同的,不启用时用户管理权限无限制(权限范围是当前公司的所有管理权限),启用时用户管理权限有限制(权限范围是当前用户可管理的权限)。
下面是一个简单的图例,简单阐述了启用和不启用的区别:
用户A是X公司G部门担任开发角色。
其它权限实践系列文章:
1、角色、权限、账户的概念理解-非常全的理论讲解权限控制 https://www.cnblogs.com/spring_wang/p/10954370.html
2、权限管理模型简介-权限都在这里 https://www.cnblogs.com/spring_wang/p/10983935.html
3、权限管理模型实践-权限都在这里 https://www.cnblogs.com/spring_wang/p/10983969.html
4、权限管理模型-平台服务(多平台\多组织\SAAS\多系统) https://www.cnblogs.com/spring_wang/p/10983991.html
5、权限管理模型-记录级-字段级权限实践 https://www.cnblogs.com/spring_wang/p/10983999.html
6、用户安全控制-权限管理模型实践-权限都在这里 https://www.cnblogs.com/spring_wang/p/10983983.html
7、SNF快速开发平台成长史V4.5-Spring.Net.Framework-SNF软件开发机器人 https://www.cnblogs.com/spring_wang/p/6742014.html
8、Spring.Net.FrameworkV3.0 版本发布了,感谢大家的支持 https://www.cnblogs.com/spring_wang/p/4203293.html