管理软件中的组织模型和权限模型

1. 概述
    组织模型是管理软件中系统建模的一个重要组成部分(企业模型一般包括资源模型、组织模型、信息模型、功能模型、流程模型),权限模型是管理软件系统的安全体系的核心,这两个模型本身既有很强的独立性,在具体应用中又有关联。而且这两个模型都比较容易通用化,这一点对我们的管理软件平台尤为重要。本文分别描述讨论了MIS系统的通用组织模型和权限模型,以及对两种模型的整合,最终结果可作为我们的MIS系统或者软件平台中组织模型和权限系统的基础。
2. 组织模型
    在企业中,组织是为了完成企业目标而形成的具有特定结构、分工协作的团队。组织模型就是用来定义企业的组织形式的模型,用于表达企业组织机构的中的实体间的层次和隶属,它以职责、权限的形式定义了企业成员、企业各个部门的作用与任务,同时提供灵活的结构以适应不同的企业或企业中不同的组织结构,组织模型是业务模型的重要组成部分和基础。
2.1 企业组织机构类型
    随着企业的产生和发展及领导体制的演变,企业组织结构形式也经历了一个发展变化的过程。迄今,企业组织结构主要的形式有:直线制,职能制,直线职能制,事业部制,模拟分权制,矩阵结构等。
2.2 组织机构建模
    从建模的角度来讲,上述各种类型中大部分都可以用树型层次机构来表示,例外的就是近年来应用越来越多的一种比较先进的管理模式-矩阵式管理,它使得组织机构的建模复杂了很多。我们先来描述组织模型中一般包括的元素单元,然后再分别描述层次型和矩阵型的组织机构模型。
2.2.1 组织模型中的元素单元
应用中,我们可以看到组织机构中的各种元素,如:集团、公司、区域、子公司、部门、岗位、职员、职责、权限等等。在将组织机构抽象形成组织模型的过程中,我们可以将公司、部门等等这些团体性质的单元统一抽象为"组织",并且一般都是层次结构,可表示为图1。岗位隶属于具体的组织,表示具体组织中的分工,并且也有层次关系。职务是对组织分工的通用描述,如经理是一个职务而某部门的经理是一个岗位。部门职能描述的是一个部门的主要工作范围和职责。岗位职责描述的是一个岗位所应该担负的责任和工作范围。
在明确了组织模型中的元素单元之后,我们将他们组织在一起,描述他们的关系,形成组织模型。
 2.2.2 层次型组织模型
针对非矩阵式管理的组织机构提出以下的层次组织模型:
  管理软件中的组织模型和权限模型 - yangxh101 - 草根谭
其中组织的层次比较好理解,而岗位的层次表明了不仅在某个组织下的岗位有层次,实际所有岗位组成一颗完整的岗位树,都是树状层次结构中的节点。这是由于每个岗位都有直接上级,也就是他汇报工作的对象。下图作为组织机构的一个简单实例说明了这个问题。
管理软件中的组织模型和权限模型 - yangxh101 - 草根谭
 
2.2.3 矩阵式组织模型
矩阵结构的形成有两种:一种是项目部或工作组的形式,将原属多个部门的人员抽出来组成项目部或工作组,集中力量解决某个问题,这种形式都有明确的阶段性目标,一般都是临时性机构,在问题解决后项目部将解散,人员重新回归原部门。另一种是企业在壮大之后,为了方便管理和沟通,按不同的角度进行了分割,形成2维矩阵甚至多维矩阵。最常见的是分别按区域和职能分割,形成矩阵式管理。例如:某公司北京销售部可能就要同时受到北京分公司和总公司销售部门的管理。当然大公司角度也可能很多,如IBM分别按区域、产品体系、职能等五六种角度划分为复杂的多维矩阵式组织。
矩阵式的组织机构增加了我们建模的难度和模型的复杂度。为了支持矩阵式的组织机构,我们的上面的组织模型需要进一步改进。对于相对简单的2维矩阵,我们可以在原来的模型上再增加一个组织层次,同时岗位也会增加一个层次关系,同一岗位可能会有多个领导岗位。
  管理软件中的组织模型和权限模型 - yangxh101 - 草根谭
 
对于多维矩阵,由于组织间关系比较复杂,我们可以引入责任的概念来抽象组织之间的关系。如下图。
 
管理软件中的组织模型和权限模型 - yangxh101 - 草根谭
 
责任表示了组织或岗位之间的关系,责任类型表示这种关系的本质或种类。对多维管理矩阵,我们可以针对不同的维度创建不同的责任类型,将组织通过不同类型的责任关联起来。使用责任模式描述组织关系的实例如下图所示。
管理软件中的组织模型和权限模型 - yangxh101 - 草根谭
 
 
3. 权限模型
权限模型也就是系统访问控制模型,是系统安全方案的核心。访问控制机制可以限制对关键资源的访问,防止非法用户进入系统及合法用户对系统资源的非法使用。
3.1 访问控制方法
目前的主流访问控制技术有:自主访问控制(DAC)、强制访问控制(MAC)、基于角色的访问控制(RBAC)。
DAC(Discretionary Access Control)将访问规则存储在访问控制矩阵中,该矩阵的行表示主体,列表示客体,矩阵的每个元素表示某个主体对某个客体的访问授权。用户对任一客体的访问请求都要检查这个访问控制矩阵。如果矩阵中用户和客体的交叉点上记录有这个访问类型,那么访问就被允许,否则就被拒绝。所谓自主,是指具有授予某种访问权力的主体(用户)能够自己决定是否将访问控制权限的某个子集授予其他的主体或从其他主体那里收回他所授予的访问权限。我国有大量的管理信息系统都采用了DAC作为访问控制的方法,我们的成本管理系统和材料管理系统也用的是其中的访问控制矩阵的方法,只是没有实现用户自主的授权。 
强制访问控制MAC(Mandatory Access Control)依据主体和客体的安全级别来决定主体是否有对客体的访问权,安全级别只能由系统安全管理员授予,用户不能传递权限。MAC一般用在军事领域等安全性要求极高的系统中。
自主访问控制和强制访问控制,都是由主体和访问权限直接发生关系,主要针对用户个人授予权限。大型应用系统的访问用户往往种类繁多、数量巨大、并且动态变化,使得权限管理负担巨大且易出错。因此在90年代时出现了基于角色的访问控制方法RBAC(Role-based Access Control)。
RBAC的基本思想是在用户和访问权限之间引入角色的概念,将用户和角色联系起来,通过对角色的授权来控制用户对系统资源的访问。角色是访问权限的集合,用户通过赋予不同的角色获得角色所拥有的访问权限。一个用户可拥有多个角色,一个角色可授权给多个用户;一个角色可包含多个权限,一个权限可被多个角色包含。用户通过角色享有权限,它不直接与权限相关联,权限对存取对象的操作许可是通过活跃角色实现的。在RBAC模型系统中,每个用户进入系统时得到一个会话,一个用户会话可能激活的角色是该用户的全部角色的子集。对此用户而言,在一个会话内可获得全部被激活的角色所包含的访问权限。角色之间也可存在继承关系,即上级角色可继承下级角色的部分或全部权限,从而形成了角色层次结构。 
管理软件中的组织模型和权限模型 - yangxh101 - 草根谭
 
由于实现了用户与访问权限的逻辑分离,基于角色的策略极大的方便了权限管理。例如,如果一个用户的职位发生变化,只要将用户当前的角色去掉,加入代表新职务或新任务的角色即可。研究表明,角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,并且给用户分配角色不需要很多技术,可以由行政管理人员来执行,而给角色配置权限的工作比较复杂,需要一定的技术,可以由专门的技术人员来承担,但是不给他们给用户分配角色的权限,这与现实中的情况正好一致。 基于角色访问控制可以很好的描述角色层次关系,实现最小特权原则和职责分离原则。 
3.2 基于角色的访问控制模型
在RBAC标准中,描述了RBAC的几种模型。分别是RBAC核心模型、角色层次模型、约束模型,其中约束模型又分为静态职责分离(Static Separation of Duty Relations)模型和动态职责分离(Dynamic Separation of Duty Relations)模型。
RBAC核心模型描述了RBAC的基本思想,是要实现RBAC的系统必须实现的最小集。给用户分配角色,给角色分配权限,用户在会话中选择要激活的角色集。其中权限定义为对受保护对象的操作的许可。受保护对象可以是系统的数据、数据载体(如某个文件、窗体、数据库表),也可以是计算机资源(如打印机)。操作就是针对这些对象执行的完成一定功能的程序。
管理软件中的组织模型和权限模型 - yangxh101 - 草根谭
 
层次模型在核心模型上加入了角色层次的概念,支持角色的继承。角色的继承主要是权限的继承,继承角色将拥有被继承角色的全部权限,如果只允许部分权限被继承,则需要另生成私有角色。层次模型分为普通的和限制的两种。普通的支持多继承,可以从多个角色继承权限,限制的只允许单继承。
 
管理软件中的组织模型和权限模型 - yangxh101 - 草根谭
 
约束模型是为了实现职责分离和最小权限两个原则而提出的。现实中,用户是不能同时拥有某些角色的,比如会计和出纳不能是同一个人。约束模型通过给用户角色分配过程或者角色激活过程添加约束规则来实现类似的职责分离。根据约束添加和校验的时机不同可分为静态和动态。
静态职责分离关联(SSD):模型中在给用户指派角色和角色继承时就添加了约束规则,保证了用户不能被同时分配互斥的角色。
 
管理软件中的组织模型和权限模型 - yangxh101 - 草根谭
 
动态职责分离关联(DSD):用户可以同时具有多种角色,但在用户会话中激活角色时添加和校验约束规则,保证某些角色不能同时激活。
 
管理软件中的组织模型和权限模型 - yangxh101 - 草根谭
 
层次模型和约束模型是从不同角度对核心模型的扩展,可以将这些综合起来形成一个全面的扩展模型。
 
3.3 RBAC模型的应用
基于简单、灵活、可扩展的原则,在系统中实现RBAC模型,可分为以下若干模块:用户定义工具、角色定义工具、权限定义工具、角色分配工具、权限分配工具、角色约束规则定义工具,系统运行时的用户会话模块、约束校验模块、权限校验模块等。可大致表示如下图。
RBAC定义的过程框架图:
 
管理软件中的组织模型和权限模型 - yangxh101 - 草根谭
 
其中比较关键并且对扩展性影响最大的就是权限的定义,一般来说,用户、角色、约束等经抽象后在系统中都比较稳定,最容易发生的系统扩展就是系统功能的改变导致权限的定义和分配。权限的定义首先是定义受控对象,然后定义可对受控对象执行的操作。我们可以在各功能模块中描述本模块的可控制对象及其受控方法,然后在权限定义工具中读取所有的描述,由用户映射描述生成具体的权限。然后可以使用权限分配工具分配给角色。在系统运行时,执行某个对象的方法时,都要请求权限服务先查看此对象是否受控对象,是则查看此方法是否受控的操作,如果是则查看用户激活的角色权限中是否有此权限,有则执行操作,否则拒绝访问。
权限的控制也是业务逻辑的一部分,也分为粗粒度的控制和细粒度的控制。简单的粗粒度如上只用判断用户权限集中是否存在某一权限,细粒度控制可能就会有复杂的判断规则和逻辑,例如某系统某模块可能有这样的权限控制规则:所有月薪2000以下的正式员工并且还没有房屋补贴的可以执行"房屋补贴申请"功能。对细粒度的控制可能的解决方案其一是仍然统一来定义权限,这就要求针对权限生成相应的角色(满足条件的特殊角色或者创建多种角色进行组合),这种方法简单灵活,可脱离具体模块,一致性和扩展性比较好,但容易造成角色的爆炸和混乱,可用于系统中频繁出现并且一致的某些复杂权限控制。其二是将细粒度的控制放入具体模块中做为具体的业务逻辑实现,好处是可实现比较复杂的判断逻辑,坏处是在具体模块中绑死了权限,不可动态配置。另外的,如果系统中将业务规则的定义和校验独立,存在规则引擎,那么可将权限系统和规则引擎结合起来,使用权限定义工具定义了权限后,使用规则引擎定义校验权限的具体规则,这样就可以同时拥有上面两点的好处了。
综上可知,基于角色的权限控制可以实现粗粒度及部分细粒度的访问控制,并且可以给具体模块或者规则引擎提供基础的权限服务。
4. 组织模型和权限模型在MIS中的整合
很多MIS中并没有组织模型,主要是用户、用户组的概念,这样可直接结合权限模型中的角色、权限等概念。但是对于大型的比较全面的管理信息系统,组织机构系统和权限系统都必须存在,两者如何结合是个值得探讨的问题。
在上面讨论组织模型的过程中,我们提到了部门职责和岗位职责的概念,但并没有体现在模型中,实际上,所谓职责也就是部门或岗位应该做哪些事、能够做哪些事,是部门和岗位的内在的固有属性,映射到系统中,其实就是权限。如果不和权限系统结合,职责可能只表现为一段文字描述。有了权限系统,我们可以给部门、岗位分配权限,来描述他们的职责,这样组织模型就更全面反映了用户的组织机构。
特别要说明的是给部门分配权限和给岗位分配权限是有区别的。由于用户必须隶属于岗位,而岗位隶属于部门,部门的权限用户是不能继承的,部门的权限用来影响岗位权限。部门内的岗位权限不可超出部门权限,并且部门权限可分为通用权限(部门内岗位可自动继承)和特定权限(必须分配到具体岗位)。这样也可以实现分级的权限管理,由总管理员给部门分配权限,然后各部门管理员给本部门岗位分配权限。类似的我们也可以给职务分配权限,职务的权限将自动被关联此职务的岗位获得。
在基于角色的权限模型中,我们给角色分配权限,给用户分配角色,而在组织模型中,我们也需要给组织和岗位分配权限,给用户分配岗位,对比可发现两个模型结合的关键就在岗位和角色的关系上。处理岗位和角色的关系有合并和映射两种方法。
4.1 岗位和角色的合并
由于大部分的角色就是基于实际的岗位或者职务生成的,因此可以将岗位和角色合而为一,用组织模型的岗位同时表示权限模型的角色概念,直接给岗位、组织、职务分配权限。好处是简单易用,不用建立组织模型的岗位层次之后,再次构建有很多相似之处的角色层次结构。不足之处在于角色的概念本身就比岗位大,岗位可以看作是职员在组织机构中扮演的角色,虽然大部分角色基于岗位职责生成,但实际使用系统时仍会基于其他的一些概念、角度设定角色,如基于职员的合同状态可以生成正式员工和试用员工两种角色,合并之后就不能支持这种情况。
管理软件中的组织模型和权限模型 - yangxh101 - 草根谭
 
4.2 岗位和角色的映射
  管理软件中的组织模型和权限模型 - yangxh101 - 草根谭
 
5. 总结与问题
在大型的或者比较全面的MIS系统中,组织模型和权限模型都必不可少。独立来看,组织模型应该能够全面的对企业组织机构进行抽象并反映到系统中,由简到繁我们分别可以用树状层次模型、二维的层次模型、多维的组织责任模型来抽象建模,而权限模型我们可以采用基于角色的访问控制这种比较成熟的模型来进行构架。但同时这两个模型又是关系密切,需要在系统中很好的整合,为同时实现简化、扩展等目标,我们可以将权限直接分配到组织机构中,职员只从岗位获取自己的权限,同时配合规则引擎实现更细粒度的权限控制。
以上是关于MIS系统中组织模型和权限模型应用的主要思路,要真正实现仍有很多具体问题需要更深入的研究和探讨,列表如下。
1.        系统是否应该支持将权限直接分配到人。在现实应用中,好像总存在一些人岗位相同,但权限却稍有不同。如果按我们上面基于角色的思想,这样的情况只能新建角色或岗位进行分配,但如果这种情况较多就会导致角色的极度膨胀。如果支持,就违背了RBAC的基本思想,也就丧失了它带来的好处。 
2.        授权和委托如何支持。本身RBAC是不支持用户之间转移权限,但实际的应用中,用户之间的授权和委托是存在的,所以系统应该支持,但需要受到严格的控制。 
3.        管理类权限的处理。在某些MIS中,尤其是存在工作流系统时,会有一种比较特殊的用户权限,用来表示此岗位是其他组织或岗位的管理者。 
4.        复杂的组织机构如何进行可视化建模。一般的组织机构我们采用树来表示,我们需要处理复杂的二维甚至多维矩阵的表示问题。 
5.        如何在各模块中定义权限,同时保证简单和可扩展性。 
6.        组织、权限模型和工作流的结合。
6. 参考
1.        《企业组织结构的发展与变化》蒋景楠 朱 姝 郑 和 
2.        《工作流系统中组织模型应用解决方案》 胡长城 
3.        《Proposed NIST Standard for Role-Based Access Control》 DAVID F. FERRAIOLO 
4.        《Accountability》 Martin Fowler 
5.        《Role-Based Access Control Models》 Ravi S. Sandhu 
6.        《访问控制技术研究综述》 郑涛 
7.        《权限系统概要》 代文龙 
8.        《基于角色管理的系统访问控制》 郝斌

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值