专利名称:一种智能化动态权限控制方法和系统的制作方法
技术领域:
本发明涉及计算机软件安全技术领域,尤其是一种智能化动态权限控制方法和系 统。
背景技术:
权限控制一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能 访问自己被授权的资源,不多不少。权限控制几乎出现在任何软件系统里面,只要其涉及 网络化和多用户应用。虽然几乎所有软件系统都有权限控制,但大部分软件系统的权限控 制都存在缺陷。而对一个大型应用软件系统,如CMS、ERP、CRM系统,权限控制就更为重要 了。目前存在的主要问题包括1、权限控制粒度过粗,无法实施精细化控制;2、权限控制策 略固化,与上下文无关,缺乏灵活性;3、权限实施过程复杂,难以理解和掌握。发明内容
为了解决上述技术问题,本发明的目的是提供可实现灵活的、精细的粒度控制且 实施方式简单易掌握的一种智能化动态权限控制方法和系统。
本发明所采用的一个技术方案是一种智能化动态权限控制方法,该方法包括以 下步骤A、依据权限控制范围和访问控制方式对应用软件系统动态权限进行分类,并根据上述 分类结果构造动态权限规则库;B、利用权限规则表达式实现权限规则的动态表达,并将动态权限规则表达式存储于动 态权限规则库;C、由上下文环境感知器侦测上下文敏感信息,并将上下文敏感信息传递给动态权限规 则解析引擎;D、动态权限规则解析引擎根据上下文敏感信息自动查找匹配的权限规则表达式,然后 对所述查找到的权限规则表达式进行动态解析;E、依据动态权限规则解析引擎的动态解析结果在页面进行顺序部署,实现动态权限控制。
进一步,所述步骤D包括以下子步骤D1、动态权限规则解析引擎根据上下文环境感知器传来的上下文敏感信息,在动态权 限规则库中自动查找匹配的权限规则表达式;D2、完成权限规则表达式中的变量替换;D3、对变量替换后的权限规则表达式进行动态解析,得到动态解析结果。
进一步,所述步骤E包括以下子步骤E1、登录系统或打开页面时,依据动态解析结果判定进而限制用户访问系统或页面的 权限;E2、打开页面时,依据动态解析结果判定进而限制用户访问应用模块的权限;E3、依据动态解析结果,生成数据查询条件,判定进而限制用户访问数据的范围;E4、依据动态解析结果判定进而限制用户浏览数据的范围;E5、依据动态解析结果判定进而限制用户操纵数据的权限;E6、打开编辑页面时,依据动态解析结果判定进而限制用户操纵数据的权限。
进一步,所述A步骤中,依据访问控制方式分类的权限包括访问权限、数据权限和 操作权限;所述A步骤中,依据权限控制范围分类的权限包括系统权限、模块权限、页面权 限和单元权限;所述单元权限控制的权限单元包括操作按钮、编辑域、数据记录和数据单J Li ο
进一步,所述步骤B中所述动态权限规则库包括有全局访问规则库、页面访问规 则库、页面数据规则库、页面操作规则库、列表页面列控制规则库、编辑页面域控制规则库; 所述动态权限规则库中权限规则采用环境敏感的权限规则表达式进行描述,支持权限规则 的正向和反向定义;所述权限规则表达式支持常量和变量,所述变量包括会话变量、系统函 数、自定义函数以及页面字段;所述页面数据规则库中的页面数据规则以标准SQL书写,包 括常量和/或变量。
进一步,所述步骤C中的上下文敏感信息包括有用户信息、对象信息、时空属性、 环境信息;所述用户信息包括有用户ID、证书、角色、组织和安全级别,所述对象信息包括 有对象ID、对象属性数据,所述时空属性包括有时间属性和位置属性,所述位置属性包括 IP地址和MAC地址;所述环境信息包括有操作设备、网络带宽、服务器负荷。
进一步,所述步骤C中上下文敏感信息的传递包括有以下方式(1)、作为页面权限引用方法的参数传递;(2)、在页面以哈希图形式批量传递;(3)、所述环境信息通过自定义函数以透明方式传递。
本发明所采用的另一技术方案是一种智能化动态权限控制系统,该系统包括以 下功能模块动态权限分类模块,用于对应用软件系统动态权限依据权限控制范围和访问控制方式 进行分类;动态权限规则库,用于存储动态权限规则表达式;动态权限规则表达模块,用于利用权限规则表达式实现权限规则的动态表达,并将动 态权限规则表达式存储于动态权限规则库;上下文环境感知器,用于侦测上下文敏感信息,并将上下文敏感信息传递给动态权限 规则解析引擎;动态权限规则解析引擎,用于根据上下文敏感信息自动查找匹配的权限规则表达式, 然后对权限规则表达式进行动态解析;权限规则部署模块,用于依据动态权限规则解析引擎的动态解析结果在页面进行顺序 部署,实现动态权限控制。
本发明的有益效果是一种基于上下文敏感的(Context-aware)、基于规则的主 动式智能化动态权限控制方法,将应用软件权限分类后存储于规则库,以动态规则的形式 定义在对象生命周期状态上,由规则解析引擎根据当前上下文的情况进行权限鉴别,利用 计算机程序对权限规则的管理,实现细粒度高精度的权限的自动控制;利用对规则库中权限的细分,并且结合上下文敏感信息,增加权限控制的灵活性;利用规则库中权限的细分, 使用计算机可以对其进行不同的组合,使得复杂的权限管理简单化,易于掌握。
本发明的另一有益效果一种基于上下文敏感的(Context-aware)、基于规则的 主动式智能化动态权限控制系统,将应用软件权限分类后存储于规则库,以动态规则的形 式定义在对象生命周期状态上,由规则解析引擎根据当前上下文的情况进行权限鉴别,利 用计算机程序对权限规则的管理,实现细粒度高精度的权限的自动控制;利用对规则库中 权限的细分,并且结合上下文敏感信息,增加权限控制的灵活性;利用规则库中权限的细 分,使用计算机可以对其进行不同的组合,使得复杂的权限管理简单化,易于掌握。
图1是一种智能化动态权限控制方法的步骤流程图;图2是一种智能化动态权限控制系统的结构图;图3是一种智能化动态权限控制方法和系统的原理框图;图4是一种智能化动态权限控制方法和系统的权限分类图。
具体实施方式
下面结合附图对本发明的具体实施方式
作进一步说明参照图1,一种智能化动态权限控制方法,该方法包括以下步骤A、依据权限控制范围和访问控制方式对应用软件系统动态权限进行分类,并根据上述 分类结果构造动态权限规则库;B、利用权限规则表达式实现权限规则的动态表达,并将动态权限规则表达式存储于动 态权限规则库;C、由上下文环境感知器侦测上下文敏感信息,并将上下文敏感信息传递给动态权限规 则解析引擎;D、动态权限规则解析引擎根据上下文敏感信息自动查找匹配的权限规则表达式,然后 对所述查找到的权限规则表达式进行动态解析;E、依据动态权限规则解析引擎的动态解析结果在页面进行顺序部署,实现动态权限控制。
进一步作为优选的实施方式,所述步骤D包括以下子步骤D1、动态权限规则解析引擎根据上下文环境感知器传来的上下文敏感信息,在动态权 限规则库中自动查找匹配的权限规则表达式;如果没有匹配的权限规则,一般返回true ; 其中上下文敏感信息的传递包括有以下方式(1)、作为页面权限引用方法的参数传递;(2)、在页面以哈希图形式批量传递;(3)、所述环境信息通过自定义函数以透明方式传递。
D2、完成权限规则表达式中的变量替换动态权限规则解析引擎通过上下文环境 感知器自动调用页面哈希图和规则变量,实现表达式中的变量替换。
D3、对变量替换后的权限规则表达式进行动态解析,得到动态解析结果。
参照图3,进一步作为优选的实施方式,所述步骤E包括以下子步骤,采取由外向内、由粗到细的顺序部署方法E1、登录系统或打开页面时,依据动态解析结果判定进而限制用户访问系统或页面的 权限,此时进行判定的表达式为boolean b = validate. validateLoginPermision(conn);E2、打开页面时,依据动态解析结果判定进而限制用户访问应用模块的权限,此时其判 定表达式为boolean b = validate. validatePagePermission();E3、依据动态解析结果,生成数据查询条件,并对其进行判定进而限制用户访问数据的 范围,此时该条件表达式为String dataRule = validate. getPageDataffhereRule();E4、依据动态解析结果判定进而限制用户浏览数据的范围;E5、依据动态解析结果判定进而限制用户操纵数据的权限;判断某个操作是否可用需要的参数为页面操作表中的操作ID,如0P_Del,此时其判定 表达式为boolean b = validate. validatePageOpPermission(opld);E6、打开编辑页面时,依据动态解析结果判定进而限制用户操纵数据的权限。
(I)、判断列是否显示,参数为查询字段表的字段代码,如USER_ID,此时其判定表 达式为boolean b = validate. validateColumnPermission(fieldld);(2)、判断单元格内容是否显示,参数为查询字段表的字段代码,如USER_ID,此时其判 定表达式为boolean b = validate. validateRowPermission(fieldld);(3)、判断单元格中的链接是否有效,参数为查询字段表的字段代码,如USER_ID,此时 其判定表达式为boolean b = validate. ValidateRowOpPermision(fieldld)。
参照图4,进一步作为优选的实施方式,所述A步骤中,横向依访问控制方式,分为 访问权限、数据权限、操作权限。其中1、在本方案中,访问权限是指是否允许用户访问对象,比如系统登录权限、模块或页面 的打开权限等;i1、在本方案中,数据权限是指允许用户访问的数据范围,比如全厂数据,或本部门数 据或已审核数据等等,数据权限一般针对查询列表页面;ii1、在本方案中,操作权限是指是否允许用户对业务内容进行操作,操作主要通过按 钮或链接来实现的。
所述A步骤中,纵向依权限控制范围,分为系统(system)权限、模块(module)权 限、页面(page)权限、单元(cell)权限。其中1、在本方案中,系统是指一个自足的软件系统,具有自己的用户和权限控制要求,本发 明提供的方法就是为软件系统提供一种权限控制方法和装置,系统级的权限控制主要是访 问权限;i1、软件系统是由软件模块构成,模块实现相对独立的应用功能。在本方案中,模块级的权限控制主要是访问权限;ii1、在本方案中,一个软件模块的功能是通过多个页面的结合来实现的,页面包括列 表、编辑、查询、选择对话框等等,页面级的权限控制包括访问权限、数据权限和操作权限;iv、在本方案中,权限单元可以是每个操作按钮(button)、每个编辑域(field)、每条 数据记录(record)、乃至每个数据单元(item)。单元权限包括是否显示、可否编辑。
参照图3,进一步作为优选的实施方式,所述步骤B中动态权限规则库包括有全局 访问规则库、页面访问规则库、页面数据规则库、页面操作规则库、列表页面列控制规则库、 编辑页面域控制规则库;其中全局访问规则全局规则不针对具体的页面,而是针对系统实施的权限控制,控制用户 是否有权访问系统。如时间(限制在某个时间段才能操作、位置(IP或MAC地址绑定等)。全 局访问规则表达式为一个逻辑表达式,返回true或false,没有定义访问规则返回true。全 局规则可以在登录或打开页面时调用;页面访问规则页面访问规则针对具体的页面实施,控制用户是否有权访问该页面。页 面访问规则表达式为一个逻辑表达式,返回true或false,没有定义访问规则返回true。页 面访问规则可以在打开页面时调用;页面数据规则页面数据规则主要用于列表页面的数据过虑控制,数据规则表达式为 字符串表达式,是SQL条件表达式的语法,这些表达式在权限引用时自动追加在页面查询 SQL的where后面;页面操作规则页面操作规则用来动态控制用户对页面上的按钮或链接的操作权限。 页面操作规则是通过页面操作标示符(操作ID)来识别某个操作的。规则表达式为一个逻 辑表达式,返回true或false,没有规则返回true。
列表页面列控制规则列表页面列控制规则用来控制列表页面中列字段的特性, 如该列是否显示,或该列中某个单元格内容是否显示。规则表达式为一个逻辑表达式,返回 true或false,没有规则返回true。如果该单元格有操作,则该操作是否有效,是在该单元 格内容显示的基础上再校验的。
编辑页面域控制规则编辑页面域控制规则用来控制页面上字段是否只读、可编 辑还是隐藏,结果为I (编辑)、2 (只读)、3 (隐藏)。如果让一个表达式返回结果为I或2 或3,不好表达,所以将域控制规则分为两部分维护域是否显示和域是否可编辑,域是否 可编辑是在域显示的基础上才有效,这样域规则表达式是一个逻辑表达式,可返回true或 false,没有规则返回true。校验的时候首先校验该域是否显示的规则表达式,如果结果为 false,返回3 (隐藏),如果结果为true,则再校验域是否可编辑的规则表达式,如果结果为 true,返回I (编辑),否则返回2 (只读)。
所述动态权限规则库中权限规则采用环境敏感的动态规则表达式进行描述,支持 权限规则的正向和反向定义;所述动态规则表达式支持常量和变量,所述变量包括会话变 量、系统函数、自定义函数以及页面字段。
要实现步骤B中的动态规则要求,必须实现规则的动态表达。动态规则表达式包 括逻辑表达式和字符串表达式两种规则表达式,其中页面数据规则表达式为字符串表达 式,以标准SQL书写,包括常量和/或变量,其它表达式都为逻辑表达式。规则表达式除了使 用数字、字符串、算术操作符、逻辑操作符之外,还必须使用一些上下文敏感的变量和函数,规则变量和函数分为下面几种(1)、常量,常量在系统启动时已加载到内存中去;(2)、会话变量,与会话相关的变量在用户登录时已加载到会话中去,并在运行过程中实时更新,会话变量常用来作为上下文感知变量;会话变量是指,网络应用中从用户注册进入系统到注销退出系统之间构成了一个会话周期,系统为客户设定在整个会话周期有效的全局变量(存储用户相关信息,可以被会话期内的多个页面引用)。
(3)、对象变量,指当前操作数据对象的属性集,如记录字段名,这类变量由系统自动获得,不需要维护。对象变量常用来作为上下文感知变量;(4)、自定义函数,可以允许用户自定义函数可以作为上下文感知变量,应用在权限规则表达式中,自定义函数与常量一样在系统启动时已加载到内存中去;(5)、系统函数,指系统自带的函数,如字符串函数、数学函数等。这类函数一般不可能改变。
规则表达式的例子如下例1:不允许IP为192. 168. 14. 112的计算机登录系统,可定义规则如下‘ [ipAddress] ’ != ‘192.168.14.112’例2 :系统用户不能删除数据,可针对该页面删除按钮“0P_Del”定义操作规则如下 toUpperCase( ‘[userid],)!= ’ SYS-XT'例3 :某实时统计页面在服务器CPU负荷超过70%后不允许访问,可定义页面访问规则如下getCPULoad( ‘[Srvld]’) < 70注意 (a)、变量必须在前后添加变量标记“[”和“]”,如果是字符串,必须在变量标记外添加单引号,如’ [userid]’,如果没有在解析表达式时会报错;(b)、所有的函数不需要添加变量标记和单引号,对于函数的参数,则必须符合变量定义规范,如getTeamId(’ [userid]’),取当前用户的班组ID,虽然函数getTeamld函数返回。
进一步作为优选的实施方式,所述步骤C中的上下文敏感信息包括有用户信息、 对象信息、时空属性、环境信息;所述用户信息包括有用户ID、证书、角色、组织和安全级别,所述对象信息包括有对象ID、对象属性数据,所述时空属性包括有时间属性和位置属性,所述位置属性包括IP地址和MAC地址;所述环境信息包括有操作设备、网络带宽、服务器负荷。
进一步作为优选的实施方式,所述步骤C中上下文敏感信息的传递包括有以下方式(1)、作为页面权限引用方法的参数传递,如validate. validatePageOpPermission (opld)中的当前操作对象标不;(2)、在页面以哈希图形式批量传递,如validate. setCustomVariantMap(customVariantMap);(3)、所述环境信息通过自定义函数以透明方式传递,如 getCPULoad O得到服务器CPU当前负荷。
参照图2,一种智能化动态权限控制系统,该系统包括以下功能模块动态权限分类模块,用于对应用软件系统动态权限依据权限控制范围和访问控制方式 进行分类;动态权限规则库,用于存储动态权限规则表达式;动态权限规则表达模块,用于利用权限规则表达式实现权限规则的动态表达,并将动 态权限规则表达式存储于动态权限规则库;上下文环境感知器,用于侦测上下文敏感信息,并将上下文敏感信息传递给动态权限 规则解析引擎;动态权限规则解析引擎,用于根据上下文敏感信息自动查找匹配的权限规则表达式, 然后对权限规则表达式进行动态解析;权限规则部署模块,用于依据动态权限规则解析引擎的动态解析结果在页面进行顺序 部署,实现动态权限控制。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施 例,熟悉本领域的技术人员在不违背本发明精神的前提下还可以作出种种的等同变换或替 换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
权利要求
1.一种智能化动态权限控制方法,其特征在于该方法包括以下步骤 A、依据权限控制范围和访问控制方式对应用软件系统动态权限进行分类,并根据上述分类结果构造动态权限规则库; B、利用权限规则表达式实现权限规则的动态表达,并将动态权限规则表达式存储于动态权限规则库; C、由上下文环境感知器侦测上下文敏感信息,并将上下文敏感信息传递给动态权限规则解析引擎; D、动态权限规则解析引擎根据上下文敏感信息自动查找匹配的权限规则表达式,然后对所述查找到的权限规则表达式进行动态解析; E、依据动态权限规则解析引擎的动态解析结果在页面进行顺序部署,实现动态权限控制。
2.根据权利要求1所述的一种智能化动态权限控制方法,其特征在于所述步骤D包括以下子步骤 D1、动态权限规则解析引擎根据上下文环境感知器传来的上下文敏感信息,在动态权限规则库中自动查找匹配的权限规则表达式; D2、完成权限规则表达式中的变量替换; D3、对变量替换后的权限规则表达式进行动态解析,得到动态解析结果。
3.根据权利要求1所述的一种智能化动态权限控制方法,其特征在于所述步骤E包括以下子步骤 E1、登录系统或打开页面时,依据动态解析结果判定进而限制用户访问系统或页面的权限; E2、打开页面时,依据动态解析结果判定进而限制用户访问应用模块的权限; E3、依据动态解析结果,生成数据查询条件,判定进而限制用户访问数据的范围; E4、依据动态解析结果判定进而限制用户浏览数据的范围; E5、依据动态解析结果判定进而限制用户操纵数据的权限; E6、打开编辑页面时,依据动态解析结果判定进而限制用户操纵数据的权限。
4.根据权利要求1所述的一种智能化动态权限控制方法,其特征在于所述A步骤中,依据访问控制方式分类的权限包括访问权限、数据权限和操作权限;所述A步骤中,依据权限控制范围分类的权限包括系统权限、模块权限、页面权限和单元权限;所述单元权限控制的权限单元包括操作按钮、编辑域、数据记录和数据单元。
5.根据权利要求1所述的一种智能化动态权限控制方法,其特征在于所述步骤B中所述动态权限规则库包括有全局访问规则库、页面访问规则库、页面数据规则库、页面操作规则库、列表页面列控制规则库、编辑页面域控制规则库;所述动态权限规则库中权限规则采用环境敏感的权限规则表达式进行描述,支持权限规则的正向和反向定义;所述权限规则表达式支持常量和变量,所述变量包括会话变量、系统函数、自定义函数以及页面字段;所述页面数据规则库中的页面数据规则以标准SQL书写,包括常量和/或变量。
6.根据权利要求1所述的一种智能化动态权限控制方法,其特征在于所述步骤C中的上下文敏感信息包括有用户信息、对象信息、时空属性、环境信息;所述用户信息包括有用户ID、证书、角色、组织和安全级别,所述对象信息包括有对象ID、对象属性数据,所述时空属性包括有时间属性和位置属性,所述位置属性包括IP地址和MAC地址;所述环境信息包括有操作设备、网络带宽、服务器负荷。
7.根据权利要求1所述的一种智能化动态权限控制方法,其特征在于所述步骤C中上下文敏感信息的传递包括有以下方式 (1)、作为页面权限引用方法的参数传递; (2)、在页面以哈希图形式批量传递; (3)、所述环境信息通过自定义函数以透明方式传递。
8.一种智能化动态权限控制系统,其特征在于该系统包括以下功能模块 动态权限分类模块,用于对应用软件系统动态权限依据权限控制范围和访问控制方式进行分类,并根据上述分类结果构造动态权限规则库; 动态权限规则库,用于存储动态权限规则表达式; 动态权限规则表达模块,用于利用权限规则表达式实现权限规则的动态表达,并将动态权限规则表达式存储于动态权限规则库; 上下文环境感知器,用于侦测上下文敏感信息,并将上下文敏感信息传递给动态权限规则解析引擎; 动态权限规则解析引擎,用于根据上下文敏感信息自动查找匹配的权限规则表达式,然后对权限规则表达式进行动态解析; 权限规则部署模块,用于依据动态权限规则解析引擎的动态解析结果在页面进行顺序部署,实现动态权限控制。
全文摘要
本发明公开了一种智能化动态权限控制方法和系统,该方法包括以下步骤A、对动态权限进行分类,构造动态权限规则库;B、实现权限规则的动态表达存入规则库;C、侦测上下文敏感信息,并将其传递给动态权限规则解析引擎;D、自动查找匹配权限规则,然后进行动态解析;E、依据权限规则在页面顺序部署。该系统包括以下功能模块动态权限规则库、上下文环境感知器、动态权限规则解析引擎和权限规则部署模块。本发明作为一种智能化动态权限控制方法和系统,实现了细粒度和灵活的控制,大幅度提高应用软件系统安全性和权限控制的易用性。本发明作为一种智能化动态权限控制方法和系统,可广泛应用于计算机软件领域。
文档编号G06F17/30GK103020498SQ20121046704
公开日2013年4月3日 申请日期2012年11月19日 优先权日2012年11月19日
发明者游景玉, 李文, 何晓峰 申请人:广东亚仿科技股份有限公司