SNF快速开发平台2019-权限管理模型简介-权限都在这里
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
SNF快速开发平台2019-权限管理模型简介-权限都在这里的更多相关文章
- SNF快速开发平台2019-权限管理模型实践-权限都在这里
其它权限实践系列文章: 1.角色.权限.账户的概念理解-非常全的理论讲解权限控制 https://www.cnblogs.com/spring_wang/p/10954370.html 2.权限管理模 ...
- SNF快速开发平台2019-权限管理模型-记录级-字段级权限实践
1.1.1 字段级权限 字段级权限适用于对不同人的能否查看或录入不同表不同字段的权限控制. 是否启用字段级权限配置 不启用字段级权限后,[用户权限管理]程序[字段级权限]按钮会隐藏,导致无法给管理其 ...
- SNF快速开发平台2019-权限管理模型-平台服务(多平台\多组织\SAAS\多系统)
1.1 不同组织机构 通俗的讲,就是一个集团公司,划分几个区域,每个区域都有什么分公司,每个分公司都有哪些部门一样,哪些部门又有那些子部门等. 当然也可以是外贸公司的全球性客户.合作伙伴的分布情 ...
- SNF快速开发平台MVC-名片管理(实际名片样式)
名片管理实际的做的意义在于演示应用,在这里使用的技术有排序控件,查询条件.自由样式瀑布流式分页等技术. 下面是自由样式效果图: 下面表格样式效果图: 具体操作: 新增名片 在新增时可以上传图像进行裁剪 ...
- SNF快速开发平台2019-用户安全控制-权限管理模型实践-权限都在这里
1.1 是否保存密码 勾选记住密码后,再次开启程序用户密码不需要再次输入,直接显示在密码输入框内,方便快捷. 图 4.1‑1 记住密码的登录页面框 1.2 是否自动登录 勾选自动登录后,再 ...
- SNF快速开发平台2019-角色、权限、账户的概念理解-非常全的理论讲解权限控制
组织模型 资源模型 操作模型 谁能够执行哪些操作 执行资源的范围 资源概念资源就是想要的到的最终物质,我们可以给每一个资源定义一个权限,也可以给某一类资源定义一个权限 权限概念权限是对资源 ...
- SNF快速开发平台MVC-自由排序组件
1. 自由排序功能使用 在一些需要排序优先级的数据进行调整处理,如民族数据,在北方实施的时候汉族比较多,希望把汉族放在第一位.在蒙古实施项目时,蒙古族人最多把蒙古族放在第一选择位. 1.1. ...
- SNF快速开发平台MVC-集成了百度开源项目echars
百度开源项目echars图表样式非常丰富,而且开源免费.非常好.所以在我们框架当中也进行了集成echars完成图表任务. 我们进行了两次封装,利于我们开发使用.我也看到过有些架构师 按echars里的 ...
- SNF快速开发平台--多组织+多平台+多系统处理方案
多组织架构的集团要看组织的组成形式: 1.如果每个组织都是独立法人,这个相对来说简单一些,组织之间的关联交易跟集团外部客户交易没什么本质区别, 各个公司都是独立核算,正常的应收应付都需要开发票,各自出 ...
随机推荐
- ZooKeeper基础:快速部署
本文主要介绍ZooKeeper的快速部署安装,更多信息请参考ZooKeeper 概述 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是 ...
- win10系统下安装Ubuntu18.04双系统
1.http://releases.ubuntu.com/18.04/ubuntu-18.04.2-desktop-amd64.iso下载Ubuntu 18.04镜像,准备好一个空的U盘 2.下载ru ...
- nmap的使用方法
0x01 Nmap 典型用途: 1.通过对设备或者防火墙的探测来审计它的安全性. 2.探测目标主机所开放的端口. 3.网络存储,网络映射,维护和资产管理.(这个有待深入) 4.通过识别新的服务器审计网 ...
- python3 networkx
一.networkx 1.用于图论和复杂网络 2.官网:http://networkx.github.io/ 3.networkx常常结合numpy等数据处理相关的库一起使用,通过matplot来可视 ...
- Feign 报错:The bean 'service-producer.FeignClientSpecification', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled.
报错: 2019-09-17 20:34:47.635 ERROR 59509 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : ******* ...
- P5325 【模板】Min_25筛
题意:定义积性函数f(x)f(x)f(x),且f(p^k)=p^k*(p^k−1) (p是一个质数),求f(1)+f(2)+...f(n); 思路:板子题.重新打了一份装起来. /* 定义积性函数 ...
- 查看服务器被访问最大的ip
网站有时会很卡,可以先看看哪些ip访问最多,一行命令就可以列出来,如下所示 netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c ...
- OpenCV录制视频,播放视频
一.录制视频 获取摄像头操作 camObj = cv2.VideoCapture(0) :0为默认计算机默认摄像头,多个摄像头依次后面1.2.3 检查是否成功初始化: camObj.isOpen() ...
- 利用restassured实现http/https接口请求
话不多说,直接上代码: package com.nuanshui.frms.test.utils.http; import io.restassured.response.Response; impo ...
- map转list | 对象转数组 | 美菜数据格式转换
function formatData(tempObj){ let bigArr = []; for(let p in tempObj){ let tempArrForeach1 = [] for(l ...