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-权限管理模型简介-权限都在这里的更多相关文章

  1. SNF快速开发平台2019-权限管理模型实践-权限都在这里

    其它权限实践系列文章: 1.角色.权限.账户的概念理解-非常全的理论讲解权限控制 https://www.cnblogs.com/spring_wang/p/10954370.html 2.权限管理模 ...

  2. SNF快速开发平台2019-权限管理模型-记录级-字段级权限实践

    1.1.1  字段级权限 字段级权限适用于对不同人的能否查看或录入不同表不同字段的权限控制. 是否启用字段级权限配置 不启用字段级权限后,[用户权限管理]程序[字段级权限]按钮会隐藏,导致无法给管理其 ...

  3. SNF快速开发平台2019-权限管理模型-平台服务(多平台\多组织\SAAS\多系统)

    1.1    不同组织机构 通俗的讲,就是一个集团公司,划分几个区域,每个区域都有什么分公司,每个分公司都有哪些部门一样,哪些部门又有那些子部门等. 当然也可以是外贸公司的全球性客户.合作伙伴的分布情 ...

  4. SNF快速开发平台MVC-名片管理(实际名片样式)

    名片管理实际的做的意义在于演示应用,在这里使用的技术有排序控件,查询条件.自由样式瀑布流式分页等技术. 下面是自由样式效果图: 下面表格样式效果图: 具体操作: 新增名片 在新增时可以上传图像进行裁剪 ...

  5. SNF快速开发平台2019-用户安全控制-权限管理模型实践-权限都在这里

    1.1    是否保存密码 勾选记住密码后,再次开启程序用户密码不需要再次输入,直接显示在密码输入框内,方便快捷. 图 4.1‑1 记住密码的登录页面框 1.2    是否自动登录 勾选自动登录后,再 ...

  6. SNF快速开发平台2019-角色、权限、账户的概念理解-非常全的理论讲解权限控制

    组织模型   资源模型  操作模型 谁能够执行哪些操作    执行资源的范围 资源概念资源就是想要的到的最终物质,我们可以给每一个资源定义一个权限,也可以给某一类资源定义一个权限 权限概念权限是对资源 ...

  7. SNF快速开发平台MVC-自由排序组件

    1.    自由排序功能使用 在一些需要排序优先级的数据进行调整处理,如民族数据,在北方实施的时候汉族比较多,希望把汉族放在第一位.在蒙古实施项目时,蒙古族人最多把蒙古族放在第一选择位. 1.1.   ...

  8. SNF快速开发平台MVC-集成了百度开源项目echars

    百度开源项目echars图表样式非常丰富,而且开源免费.非常好.所以在我们框架当中也进行了集成echars完成图表任务. 我们进行了两次封装,利于我们开发使用.我也看到过有些架构师 按echars里的 ...

  9. SNF快速开发平台--多组织+多平台+多系统处理方案

    多组织架构的集团要看组织的组成形式: 1.如果每个组织都是独立法人,这个相对来说简单一些,组织之间的关联交易跟集团外部客户交易没什么本质区别, 各个公司都是独立核算,正常的应收应付都需要开发票,各自出 ...

随机推荐

  1. JDBC连接时出现的两个错误

    这两个错误都是因为版本的更新导致的: 错误代码: package FirstTest; import java.sql.*; public class FirstJDBC { public stati ...

  2. Mac 设置redis开机启动

    1.创建一个plist文件 首先我们需要在/Library/LaunchDaemons目录下创建一个plist文件,使用如下命令: 复制代码代码如下: sudo vim /Library/Launch ...

  3. 【JMeter】压力测试工具的概览与使用

    软件工程综合实践第五次个人作业 作业要求:在软件测试章节中,我们介绍了不少VSTS的软件测试工具,请使用一些其他平台上的测试工具,并写博客介绍如何在你的项目中具体使用. 前言:   第一次看到这个作业 ...

  4. Nginx 反向代理与负载均衡的配置

    已经很久没有写博了,因为最近学车加上各种问题一直没时间, 今天刚好想起有好多的东西还没来得及记录.回到正题: Nginx是一个非常强大的web轻量级服务器,许多大厂也用Nginx进行负载均衡和反向代理 ...

  5. go中如何更好的迭代

    三种迭代方式 3 ways to iterate in Go 有如下三种迭代的写法: 回调函数方式迭代 通过Next()方法迭代.参照python 迭代器的概念,自定义Next()方法来迭代 通过ch ...

  6. kuangbin专题专题四 MPI Maelstrom POJ - 1502

    题目链接:https://vjudge.net/problem/POJ-1502 dijkstra板子题,题目提供下三角情况,不包含正对角线,因为有题意都为0,处理好输入,就是一个很水的题. #inc ...

  7. PAT 乙级 1005.继续(3n+1)猜想 C++/Java

    1005 继续(3n+1)猜想 (25 分) 题目来源  卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记 ...

  8. JQuery系列(7) - JQuery最佳实践

    上篇文章是一篇入门教程,从设计思想的角度,讲解"怎么使用jQuery".今天的文章则是更进一步,讲解"如何用好jQuery". 我主要参考了Addy Osman ...

  9. sublime中文解决

    1.写好文件sublime_imfix.c并保存. #include <gtk/gtkimcontext.h> void gtk_im_context_set_client_window ...

  10. es6 Object 数据属性和访问器属性

    原文 :http://www.jb51.net/article/91698.htm 总结 ES5提供了Object.getOwnPropertyDescripter()方法来获取给定属性的描述符. p ...