论文部分内容阅读
摘要:结合某电信知识管理系统中权限管理模块的实际需求,对RABC模型进行扩展,设计了针对功能和数据的权限管理模型,使权限管理具有更高的灵活性和实用性。
关键词:基于角色的访问控制;功能权限;数据权限;知识管理
0 引言
为降低客户服务成本,提高运营效率,构建学习型组织,某电信知识管理系统的实现目标是建立信息规范、分类规整、知识流畅通的先进、统一、高效的企业级知识管理体系。此系统具有功能复杂,用户众多的特点。由于电信业务系统相比其他的应用系统,业务更复杂,数据量更庞大,因此合理控制众多用户对系统资源的访问权限,对于保证系统的安全性,明确用户的责任,有着及其重要的意义。基于角色的访问控制(Role basedaccess control,RBAC)机制由于具有较高的可扩展性和灵活性,在分布式系统、数据库系统乃至各种操作系统中都得到了一定程度的应用。本文在RBAC模型的基础上提出了能够实现功能权限和数据权限的扩展型的RABC模型,并介绍了基于该模型的权限管理的设计和实现。
1 知识管理系统中权限设计的需求
知识管理系统是企业实现知识管理的平台,是以人的智能为主导,以信息技术为手段的人机结合的管理系统。它是通过将企业中的各种知识资源(包括显性知识和隐性知识)整合为动态的知识体系,以促进知识创新,从而最终提高企业的核心竞争力。此系统的功能和程序以功能项的形式(菜单,目录,窗口,按钮等)向用户提供各种操作,但并不是每个用户都有权力使用系统中的每项功能与操作,需要根据用户的不同职责对其权限进行控制与管理。权限往往是一个极其复杂的问题,可以简单地描述为这样的逻辑表达式:判断“Who对What(Which)进行How操作”的表达式是否为真。
知识管理系统的权限模块应满足如下需求:
(1)不同职责的人员,对于系统的操作权限应该是不同的。例如,知识员工能发布知识,但不能审核知识,而知识专家既能发布知识,又能审核知识;
(2)可以对某一类人进行权限分配。对于多用户的电信知识管理系统来说,如果要求管理员为每位用户分配操作权限,将是一件耗时且很不方便的事情。所以,在系统中就提出了对“角色”进行授权的概念,将权限一致的用户编入同一组,然后为该组进行权限分配;
(3)权限模块应该是可维护的。例如某位电信员工的职位变化了,可以相应的改变其操作权限;
(4)满足业务系统中的功能权限;
(5)满足业务系统中的数据权限,例如某10000号员工只能看到其所在地区的知识,而不能看到其他地区的知识;
(6)权限模块应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中,就像是一个组件一样可以被不断地重用,而不是仅仅局限于本知识管理系统。
2 RBAC的优势
传统的访问控制技术主要分为两大类,即自主访问控制(Discretionary Access Control,DAC)和强制访问控制(Manda-tory Access Control,MAC)。DAC将赋予或取消访问权限的一部分权限留给用户个人,不利于实现统一的全局访问控制;MAC在系统连续工作能力、授权的可管理性等方面考虑不足。基于角色的访问控制(RBAC)是在DAC和MAC的基础之上发展起来的,有效地克服了传统访问控制技术中的不足,用户借助于角色这个主体访问系统资源,大大提高了管理的效率,减少了授权管理的复杂性。
RBAC模型主要以员工-角色、角色-权限、角色-角色之间的关系来体现访问控制策略。它的最大优势在于对授权管理的支持。通常的访问控制实现方法将用户与访问权限直接相联系,当组织内人员新增或有人离开或某个用户的职能发生变化时,需要进行大量的授权更改工作,而RBAC将用户与其拥有的权限分离开来,管理员可以将用户的授权和权限的划分进行分别处理,通过给用户授予角色来实现用户的授权操作。RBAC的另一个优势在于:系统管理员处在一种比较抽象且与企业通常的业务管理相类似的层次上,便于职责分配。在集中式管理中,知识管理通常由一个指定的管理员担任,而在分布式管理中,可以由多个具有不同管理权限域的管理员来担任,本文的知识管理系统属于分布式系统,所以知识管理员可以由不同地区的管理员来担任。
3 知识管理系统中权限模型的设计
知识管理系统的权限模型根据其需求来看,可以分为两个层次,即功能层的访问权限和数据层的访问权限。
3.1功能权限
功能层的访问权限主要由RBAC模型实现,如图1所示,主要由三部分组成,分别是:核心RBAC、层次RBAC、职责隔离。
核心RABC(core RBAC)定义了RBAC模型最基本的五个基本元素:用户(User)、角色(Role)、操作(Operations)、操作对象(Objects)、权限(Permission)。如图2所示。
层次RBAC(Hierarchical RBAC)主要是指权限的继承,在RBAC中通过增加角色的自关联来实现,即角色可拥有子角色,子角色继承父角色的权限。
职责隔离(separation of Duty Relations)主要分为静态职责隔离(Static separation duty,SSD)和动态职责隔离(Dynamicseparation duty.DSD)。SSD比较容易理解,即在系统初始化时,不能把冲突的角色分配给同—个用户;DSD是指相互冲突的角色可以同时分配给同—个用户,但在一次Session中不能同时扮演相冲突的角色,即在用户权限范围内限制权限的可用性。例如,某员工既是人力资源部的会计又是出纳,那么他在行使会计权利的同时就不能享有出纳的权利,必须先退出会计角色,再以出纳的角色进入系统才能享有出纳的权利。
3.2数据权限
在RBAC模型中没有明确定义数据权限的实现策略,因此需设计数据权限模型来实现数据权限的要求。根据RBAC模型,作者同样地设计了一个中间对象一数据角色,此角色与数据操作权限为多对多的关系。首先将数据映射为RBAC中的操作对象,对数据的操作映射为对操作对象的操作,然后将对此操作对象以及操作对象的操作构成的权限授予给数据角色;为实现数据权限能够授予多种对象,需要将RBAC的把角色授予用户的模型演变为把数据角色授予功能角色、组织机构或具体人员;为了实现数据权限的继承,需要将数据资源重构为允许自关联的模型。在经过这些重构之后,数据权限的模型就形成了,如图3所示。
4 知识管理系统中权限管理的实现
经过以上的分析及设计,在功能权限部份建立了以下的基本表:用户表(USER TABLE),角色表(ROLE TABLE),模块表(MODULE TABLE),操作功能表(FERNCTION TALBE),权限表(AUTHTABLE),角色权限关系表(ROLE_AUTHTABLE),用户角色关系表(USER_ROLE TABLE),角色互斥表(ROLE_CONSTRAINTTABLE),权限互斥表(AUTH.CONSTRAINT TABLE),用户组表(GROUP TABLE),用户与用户组关系表(GROUP_USER TABLE),用户组与角色关系表(GROUP_ROLE),将以上各表联合起来就形成了功能权限的数据库实现模型。授权分为以下几个步骤:配置操作对象以及对操作对象的操作;授予角色对操作对象的操作权限;分配角色给用户等。
数据权限的物理模型如图4所示。授权步骤同功能极限的授权步骤。
用户登录系统后,系统首先利用用户角色关系表(USER_ROLE TABLE)与用户数据角色关系表(uSER_DATA_ROLE TABLE)或功能角色数据关系表(FUNCTION_ROLE_DATA_ROLE TABLE)找出该用户所对应的功能角色与数据角色,然后利用功能访问权限表(AUTH TABLE)和数据访问权限表(DATA AUTH TABLE)找出该用户所能进行的操作。系统管理员在进行维护时,只需修改相应表的记录,而不需要修改表的结构,这就大大简化了管理工作。
5 结束语
本文提出了能够实现功能权限和数据权限的RBAC扩展模型,并在某电信知识管理系统中得到了应用,证明了此模型不仅可以满足权限管理的需求,而且具有可维护性、灵活性、完整性,可移植性等特点。
关键词:基于角色的访问控制;功能权限;数据权限;知识管理
0 引言
为降低客户服务成本,提高运营效率,构建学习型组织,某电信知识管理系统的实现目标是建立信息规范、分类规整、知识流畅通的先进、统一、高效的企业级知识管理体系。此系统具有功能复杂,用户众多的特点。由于电信业务系统相比其他的应用系统,业务更复杂,数据量更庞大,因此合理控制众多用户对系统资源的访问权限,对于保证系统的安全性,明确用户的责任,有着及其重要的意义。基于角色的访问控制(Role basedaccess control,RBAC)机制由于具有较高的可扩展性和灵活性,在分布式系统、数据库系统乃至各种操作系统中都得到了一定程度的应用。本文在RBAC模型的基础上提出了能够实现功能权限和数据权限的扩展型的RABC模型,并介绍了基于该模型的权限管理的设计和实现。
1 知识管理系统中权限设计的需求
知识管理系统是企业实现知识管理的平台,是以人的智能为主导,以信息技术为手段的人机结合的管理系统。它是通过将企业中的各种知识资源(包括显性知识和隐性知识)整合为动态的知识体系,以促进知识创新,从而最终提高企业的核心竞争力。此系统的功能和程序以功能项的形式(菜单,目录,窗口,按钮等)向用户提供各种操作,但并不是每个用户都有权力使用系统中的每项功能与操作,需要根据用户的不同职责对其权限进行控制与管理。权限往往是一个极其复杂的问题,可以简单地描述为这样的逻辑表达式:判断“Who对What(Which)进行How操作”的表达式是否为真。
知识管理系统的权限模块应满足如下需求:
(1)不同职责的人员,对于系统的操作权限应该是不同的。例如,知识员工能发布知识,但不能审核知识,而知识专家既能发布知识,又能审核知识;
(2)可以对某一类人进行权限分配。对于多用户的电信知识管理系统来说,如果要求管理员为每位用户分配操作权限,将是一件耗时且很不方便的事情。所以,在系统中就提出了对“角色”进行授权的概念,将权限一致的用户编入同一组,然后为该组进行权限分配;
(3)权限模块应该是可维护的。例如某位电信员工的职位变化了,可以相应的改变其操作权限;
(4)满足业务系统中的功能权限;
(5)满足业务系统中的数据权限,例如某10000号员工只能看到其所在地区的知识,而不能看到其他地区的知识;
(6)权限模块应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中,就像是一个组件一样可以被不断地重用,而不是仅仅局限于本知识管理系统。
2 RBAC的优势
传统的访问控制技术主要分为两大类,即自主访问控制(Discretionary Access Control,DAC)和强制访问控制(Manda-tory Access Control,MAC)。DAC将赋予或取消访问权限的一部分权限留给用户个人,不利于实现统一的全局访问控制;MAC在系统连续工作能力、授权的可管理性等方面考虑不足。基于角色的访问控制(RBAC)是在DAC和MAC的基础之上发展起来的,有效地克服了传统访问控制技术中的不足,用户借助于角色这个主体访问系统资源,大大提高了管理的效率,减少了授权管理的复杂性。
RBAC模型主要以员工-角色、角色-权限、角色-角色之间的关系来体现访问控制策略。它的最大优势在于对授权管理的支持。通常的访问控制实现方法将用户与访问权限直接相联系,当组织内人员新增或有人离开或某个用户的职能发生变化时,需要进行大量的授权更改工作,而RBAC将用户与其拥有的权限分离开来,管理员可以将用户的授权和权限的划分进行分别处理,通过给用户授予角色来实现用户的授权操作。RBAC的另一个优势在于:系统管理员处在一种比较抽象且与企业通常的业务管理相类似的层次上,便于职责分配。在集中式管理中,知识管理通常由一个指定的管理员担任,而在分布式管理中,可以由多个具有不同管理权限域的管理员来担任,本文的知识管理系统属于分布式系统,所以知识管理员可以由不同地区的管理员来担任。
3 知识管理系统中权限模型的设计
知识管理系统的权限模型根据其需求来看,可以分为两个层次,即功能层的访问权限和数据层的访问权限。
3.1功能权限
功能层的访问权限主要由RBAC模型实现,如图1所示,主要由三部分组成,分别是:核心RBAC、层次RBAC、职责隔离。
核心RABC(core RBAC)定义了RBAC模型最基本的五个基本元素:用户(User)、角色(Role)、操作(Operations)、操作对象(Objects)、权限(Permission)。如图2所示。
层次RBAC(Hierarchical RBAC)主要是指权限的继承,在RBAC中通过增加角色的自关联来实现,即角色可拥有子角色,子角色继承父角色的权限。
职责隔离(separation of Duty Relations)主要分为静态职责隔离(Static separation duty,SSD)和动态职责隔离(Dynamicseparation duty.DSD)。SSD比较容易理解,即在系统初始化时,不能把冲突的角色分配给同—个用户;DSD是指相互冲突的角色可以同时分配给同—个用户,但在一次Session中不能同时扮演相冲突的角色,即在用户权限范围内限制权限的可用性。例如,某员工既是人力资源部的会计又是出纳,那么他在行使会计权利的同时就不能享有出纳的权利,必须先退出会计角色,再以出纳的角色进入系统才能享有出纳的权利。
3.2数据权限
在RBAC模型中没有明确定义数据权限的实现策略,因此需设计数据权限模型来实现数据权限的要求。根据RBAC模型,作者同样地设计了一个中间对象一数据角色,此角色与数据操作权限为多对多的关系。首先将数据映射为RBAC中的操作对象,对数据的操作映射为对操作对象的操作,然后将对此操作对象以及操作对象的操作构成的权限授予给数据角色;为实现数据权限能够授予多种对象,需要将RBAC的把角色授予用户的模型演变为把数据角色授予功能角色、组织机构或具体人员;为了实现数据权限的继承,需要将数据资源重构为允许自关联的模型。在经过这些重构之后,数据权限的模型就形成了,如图3所示。
4 知识管理系统中权限管理的实现
经过以上的分析及设计,在功能权限部份建立了以下的基本表:用户表(USER TABLE),角色表(ROLE TABLE),模块表(MODULE TABLE),操作功能表(FERNCTION TALBE),权限表(AUTHTABLE),角色权限关系表(ROLE_AUTHTABLE),用户角色关系表(USER_ROLE TABLE),角色互斥表(ROLE_CONSTRAINTTABLE),权限互斥表(AUTH.CONSTRAINT TABLE),用户组表(GROUP TABLE),用户与用户组关系表(GROUP_USER TABLE),用户组与角色关系表(GROUP_ROLE),将以上各表联合起来就形成了功能权限的数据库实现模型。授权分为以下几个步骤:配置操作对象以及对操作对象的操作;授予角色对操作对象的操作权限;分配角色给用户等。
数据权限的物理模型如图4所示。授权步骤同功能极限的授权步骤。
用户登录系统后,系统首先利用用户角色关系表(USER_ROLE TABLE)与用户数据角色关系表(uSER_DATA_ROLE TABLE)或功能角色数据关系表(FUNCTION_ROLE_DATA_ROLE TABLE)找出该用户所对应的功能角色与数据角色,然后利用功能访问权限表(AUTH TABLE)和数据访问权限表(DATA AUTH TABLE)找出该用户所能进行的操作。系统管理员在进行维护时,只需修改相应表的记录,而不需要修改表的结构,这就大大简化了管理工作。
5 结束语
本文提出了能够实现功能权限和数据权限的RBAC扩展模型,并在某电信知识管理系统中得到了应用,证明了此模型不仅可以满足权限管理的需求,而且具有可维护性、灵活性、完整性,可移植性等特点。