掌桥专利:专业的专利平台
掌桥专利
首页

基于API配置的数据权限管理方法、装置、设备和介质

文献发布时间:2024-04-18 20:01:30


基于API配置的数据权限管理方法、装置、设备和介质

技术领域

本发明涉及数据权限管理技术领域,具体而言,涉及一种基于API配置的数据权限管理方法。

背景技术

随着社会信息化的不断完善,企业数字化建设也在全面发展。数据作为财富创造和竞争优势的一个重要来源,毫无疑问是各个企业最值得重视的企业资产。但是针对这些数据资产,大多数企业因其权限控制方面存在数据颗粒度与配置灵活度不足等问题,无法保证它的安全性和可用性。

目前已有的数据权限控制通过在数据库中为每一位用户建立静态视图,并将视图授权给用户限制其对数据表的访问;或是将访问控制逻辑嵌入到应用系统,通过分支判断等硬编码方式进行数据权限控制;

但是这些方法在用户数量很大而且权限经常变动时,需要对大量的视图进行管理和维护,会给管理员带来不必要的负担,且访问策略改变时需要修改大量的程序代码,而且对于同类型的应用系统,这部分控制代码无法复用,只能再次开发功能相同的代码,造成资源浪费。

有鉴于此,申请人在研究了现有的技术后特提出本申请。

发明内容

本发明提供了一种基于API配置的数据权限管理方法,以改善上述技术问题中的至少一个。

第一方面、

本发明实施例提供了一种基于API配置的数据权限管理方法,其包含步骤S1至步骤S5。

S1、获取用户集合和企业部门架构树。

S2、将用户归属至企业部门架构树中的具体部门,获取部门与成员集合。

S3、获取待保护数据集合和各企业部门对待保护数据的业务逻辑。

S4、根据业务逻辑,构建部门与成员集合和待保护数据之间的映射关系。

S5、根据映射关系,通过权限控制模型配置相应的权限。其中,权限控制模型采用API配置方式对权限进行控制。

第二方面、

本发明实施例提供了一种基于API配置的数据权限管理装置、其包含:

第一数据获取模块,用于获取用户集合和企业部门架构树。

用户归属模块,用于将用户归属至企业部门架构树中的具体部门,获取部门与成员集合。

第二数据获取模块,用于获取待保护数据集合和各企业部门对待保护数据的业务逻辑。

映射模块,用于根据业务逻辑,构建部门与成员集合和待保护数据之间的映射关系。

权限配置模块,用于根据映射关系,通过权限控制模型配置相应的权限。其中,权限控制模型采用API配置方式对权限进行控制。

第三方面、

本发明实施例提供了一种基于API配置的数据权限管理设备,其包括处理器、存储器,以及存储在存储器内的计算机程序。计算机程序能够被处理器执行,以实现如第一方面任意一段所说的基于API配置的数据权限管理方法。

第四方面、

本发明实施例提供了一种计算机可读存储介质。计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行如第一方面任意一段所说的基于API配置的数据权限管理方法。

通过采用上述技术方案,本发明可以取得以下技术效果:

本发明实施例的一种基于API配置的数据权限管理方法通过企业生产环境下的组织结构与数据对象映射,简化了数据权限配置过程,将复杂的数据权限授权过程针对企业真实生产环境进行了简化处理,使权限管理员能够更加高效地对用户数据权限进行管理。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1是基于API配置的数据权限管理方法的流程示意图。

图2是部门架构成员树的示意图。

图3是权限控制模型的权限映射示意图。

图4是数据权限授权的控制流程。

图5是语法树生成过程的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一、

请参阅图1至图5,本发明第一实施例提供一种基于API配置的数据权限管理方法,其可由基于API配置的数据权限管理设备来执行(以下简称:权限管理设备)。特别地,由权限管理设备中的一个或多个处理器来执行,以实现步骤S1至步骤S5。

S1、获取用户集合和企业部门架构树。

S2、将用户归属至企业部门架构树中的具体部门,获取部门与成员集合。

具体的,如图2和图3所示,将应用系统中的注册用户归属到某一确定的部门,构建企业部门与成员的集合对象D。

可以理解的是,所述权限管理设备可以是便携笔记本计算机、台式机计算机、服务器、智能手机或者平板电脑等具有计算性能的电子设备。

S3、获取待保护数据集合和各企业部门对待保护数据的业务逻辑。

S4、根据业务逻辑,构建部门与成员集合和待保护数据之间的映射关系。

如图3所示,在后端服务器将数据库中按照企业的部门组织架构,对待保护的数据对象与企业部门架构进行映射,将将数据对象与企业部门架构映射成不同粒度的环境变量。

在本实施例中,将企业生产环境下的组织结构与数据对象进行映射,简化了数据权限配置过程,将复杂的数据权限授权过程针对企业真实生产环境进行了简化处理,使权限管理员能够更加高效地对用户数据权限进行管理。

具体的,建立数据集合中的数据对象到企业部门架构的映射关系,将两者映射成不同粒度的环境变量。同时构建功能权限集合FP(Function Permission)和数据权限集合DP(data permission)。在企业应用环境中,数据权限往往与部门结构相关联,通过构建权限集合中业务权限到部门架构与其成员的映射fn:FP→D,以此形成不同业务范围的数据权限。映射规则取决于不同业务数据对应的业务逻辑。同理,可以通过这种映射方法将系统中需要控制数据访问权限的对象,与业务领域的部门或员工建立对应关系,dn:DP→FP。

在分配某一部门或是角色权限时,通过对其权限所属的功能权限建立映射关系,即可设置其功能权限对应的数据权限范围。在权限分配时,只需分配权限集合P给某个部门或角色即可,集合

根据企业常见部门架构,本发明实施例将数据权限分为5种。5中权限包括:全部数据权限、部门数据权限、部门及以下数据权限、本人数据权限以及自定义数据权限。

S5、根据映射关系,通过权限控制模型配置相应的权限。其中,权限控制模型采用API配置方式对权限进行控制。

本发明实施例的基于API配置的数据权限管理方法,在Web环境下实现了基于API配置的数据权限控制方法,通过企业生产环境下的组织结构与数据对象映射,简化了数据权限配置过程,细化了权限数据控制颗粒度,提高了数据配置灵活性。利用API配置方式实现数据权限控制,实现代码复用,降低系统生产成本。

在上述实施例的基础上,本发明的一个可选地实施例中,权限控制模型具有两个约束。约束一、角色之间有相应继承的关系。当一个角色R1继承另一个角色R2时,R1就自动拥有了R2的访问权限。约束二、当指定了一个定义的权限时,用户除了可以对自己所拥有的资源进行单独的存取之外,无法对其他用户使用的资源进行定义。

本发明实施例的一种基于API配置的数据权限管理方法通过企业生产环境下的组织结构与数据对象映射,简化了数据权限配置过程,将复杂的数据权限授权过程针对企业真实生产环境进行了简化处理,使权限管理员能够更加高效地对用户数据权限进行管理。

在上述实施例的基础上,本发明的一个可选地实施例中,权限控制模型以功能权限的业务数据接口作为受保护的数据资源,通过针对数据库中的数据对象的原始SQL表达式进行调整,基于唯一数据库接口标识id做资源接口的相关记录权限和字段权限配置。

具体的,权限管理员通过前端界面输入配置的SQL语句,后端服务器将功能权限的业务数据接口作为受保护的数据资源,通过对数据库中的数据对象的原始SQL表达式进行调整,基于唯一数据库接口标识id对相对应资源接口的数据权限进行配置。

在本实施例中,将当前用户id、部门代码及部门关联集合转化为参数,以环境变量的形式对业务原始SQL表达式进行参数化配置。优选的,所述环境变量形式包括:将当前用户id置为变量参数@USER,对原始SQL表达式使用WHERE条件进行数据过滤,通过WHEREopenid=:@USER的参数化形式进行条件过滤,简化数据权限配置过程。

在权限控制范围为查询操作时,通过配置过滤条件进行限制从而达到数据权限配置目的;在原有过滤条件上添加额外附加的限制查询条件,包括where、in等限制条件。

在权限控制范围为插入(新增)与更新(修改)操作时,通过在原功能权限的数据插入接口中,对非必填字段做写入限制;当其原始数据库表字段为必填项时,对字段类型赋予系统默认值。具体的,在原有过滤条件上添加额外附加的限制查询条件,包括:select语句中的where条件,in条件等。

在权限控制范围为执行删除操作时,在原功能权限的数据删除接口中,对删除条件加以限制,包括:缩减删除范围(批量删除)或当前记录权限(单条删除)。

在上述实施例的基础上,本发明的一个可选地实施例中,当通过权限控制模型设置自定义权限时包括步骤A1至步骤A5。

A1、获取自定义权限的自定义SQL语句。

A2、通过词法解析器解析自定义SQL语句,获取一维数组语法token表。

A3、根据一维数组语法token表,通过语法解析器进行转化,获取语法树。其中,语法分析器能够检查SQL语句是否符合语法规范。如果有语法错误,则报告错误信息。

A4、根据语法树,通过语义分析器检查SQL语句是否符合语义规范,并获取语义信息。

A5、根据语义信息,执行SQL语句。

在本实施例中,前端权限管理员通过API权限配置选择合适的环境变量。后端服务器使用SQL AST(抽象语法树)对用户数据权限进行校验,进一步保障了数据权限的安全性与可用性。在配置权限时,根据权限管理终端所选择的预设的环境变量或者输入的自定义SQL语句信息对现有数据权限范围进行修改。

在自定义数据权限时,权限管理员通过SQL配置界面调整原始SQL语句,自定义数据权限控制范围并对SQL语句进行校验。后端服务器在接收到自定义SQL语句信息后,使用SQL AST(抽象语法树)对数据权限语句进行校验,验证SQL语句的正确性与安全性。检验完毕后返回前端界面校验结果,并在数据库进行保存。验证SQL语句的正确性后,使用SpringSecurity框架对校验后的数据权限进行授权。

具体的,权限管理员通过前端界面(权限管理终端)对数据权限进行CURD控制。在所需要的SQL语句进行输入后,通过SQL解析器对所填写的SQL表达式进行正确性与安全性校验。

当环境变量为自定义数据权限时,后端服务器先通过使用AST(抽象语法树)对原始语句解析,通过词法分析器(Lexer)将输入的SQL语句分解成一维数组语法token表包括:关键字、表名、列名、运算符等。一般情况下,我们将空格设置为分隔符,使其自动切分语法单元。

然后,后端服务器通过语法分析器(Parser)将分解后的一维无结构的token表转化为树形结构,并按照规则组合成语法树(Parse Tree)。语法分析器会检查SQL语句是否符合语法规范,如果有语法错误,则报告错误信息。以查询操作为例:在读取select词后,将其变为一个token。语法分析器遇到select,匹配select语法。然后再下一步读取字符生成token。如果第一步读取的字符不符合语法规则,系统会直接报错,此时校验失败,不对配置信息进行保存。

再然后,后端服务器使用语义分析器(Semantic Analyzer)对语法树进行语义分析,检查SQL语句是否符合语义规范。语义分析器会检查SQL语句中引用的对象(例如表、列、函数等)是否存在,是否有使用权限等。

最后,后端服务器通过优化器(Optimizer)对SQL语句进行优化,并使用执行器(Executor)执行SQL语句,获取数据、更新数据等,并返回查询结果。

如图4所示,在上述实施例的基础上,本发明的一个可选地实施例中,权限控制模型的授权过程包括步骤B1至步骤B6。

B1、拦截用户向应用程序发起访问请求。

B2、根据访问请求,通过认证管理器验证用户身份。

B3、若认证成功,则为用户创建一个认证令牌,然后通过授权管理器对用户进行授权。

B4、若授权成功,则判断用户操作行为。

B5、当判断到用户操作行为是增加数据时,则依据当前数据创建者信息与业务需求,将新增数据写入数据库。

B6、当判断到用户操作行为是删除、修改或查询时,则对用户信息与允许访问的部门架构与成员树节点进行匹配,判断是否有访问权限。若有访问权限则执行相应动作。

具体的,权限授权过程的具体工作流程如下:(1)身份认证:用户向应用程序发起访问请求,Spring Security对请求进行拦截,使用认证管理器Authentication Manager验证用户身份。如果认证成功,Spring Security为用户创建一个认证令牌(AuthenticationToken)。(2)授权决策:Spring Security使用授权管理器Authorization Manager对用户进行授权。如果授权成功,则查询当前资源与角色允许访问的部门集合,允许用户访问受保护的资源。若权限不足,则不允许访问其请求的资源。(3)数据控制:在数据库进行数据读写前通过判断用户当前操作行为进行数据权限控制。若其调用数据新增接口,则依据当前数据创建者信息与业务需求,将其写入数据库;若当前操作调用查询、删除、修改接口,则对当前用户信息与允许访问的部门架构与成员树节点进行匹配,判断是否有访问权限。

在上述实施例的基础上,本发明的一个可选地实施例中,权限控制模型的授权模块通过spring security框架进行实现。

优选的,权限控制模型将用户id、部门代码及部门关联集合转化为参数,以环境变量的形式对业务原始SQL表达式进行参数化配置。

优选的,数据权限控制模型的权限控制包括功能权限和数据权限。功能权限包括增加、删除、修改和查询。数据权限包括:全部数据权限、部门数据权限、部门及以下数据权限、本人数据权限以及自定义数据权限。数据权限和功能权限之间的映射关系为多对多。功能权限和部门与成员集合之间的映射关系为多对多。

如图2和图3所示,此处对基于API配置的数据权限管理方法中的关键词进行定义,权限(permissions):不同用户对数据资源的访问能力。功能权限(functionalpermissions):用户有权在应用程序系统上执行的操作集合。数据权限(datapermissions):用户在应用程序系统运行时可以查看的数据集合。部门与用户树(departments and users):应用系统中的用户必须归属于企业部门结构树中的某一部门。基于这一关系构成的树状机构称为部门架构与成员树(如图2所示)。

具体的,基于API配置的数据权限管理方法的授权功能在Spring Security框架的基础上进行实现。Spring Security框架是一个针对权限安全的成熟框架,具备良好的扩展性,能够很好的匹配本发明定义的授权过程,为应用程序提供全方位的安全性保障。

本发明实施例的基于API配置的数据权限管理方法增加了权限数据控制颗粒度,提高了数据配置灵活性,能够实现功能级和数据级的访问控制,降低授权管理的复杂性、减轻系统安全的负担,保障了数据的安全性和可用性,弥补了企业对于细粒度数据权限控制方面的不足。

本发明实施例的基于API配置的数据权限管理方法,权限管理员能够实现更细粒度的数据权限控制,对于数据的管理更加便利,并且不需要应对以往针对特殊的权限需求需要进行二次代码开发的问题,有效减少了开发成本。

本发明实施例的基于API配置的数据权限管理方法,给予权限管理员对数据权限一定的自由度,减少了对于数据权限规则的限制性,通过权限映射的多种数据权限模式,不仅能够满足企业日常生产需求,并且能够满足企业在特定环境下的特殊权限需求。

本发明实施例的基于API配置的数据权限管理方法,通过SQL AST(抽象语法树)校验技术,能够在给予权限管理员细粒度的数据权限操作权限的前提下,保障所输入的SQL语句的正确性与安全性,防止因错误的或是恶意的SQL语句造成的出错问题及恶意攻击,极大提升了数据权限管理的可靠性和安全性。

实施例二、

本发明实施例提供了一种基于API配置的数据权限管理装置、其包含:

第一数据获取模块,用于获取用户集合和企业部门架构树。

用户归属模块,用于将用户归属至企业部门架构树中的具体部门,获取部门与成员集合。

第二数据获取模块,用于获取待保护数据集合和各企业部门对待保护数据的业务逻辑。

映射模块,用于根据业务逻辑,构建部门与成员集合和待保护数据之间的映射关系。

权限配置模块,用于根据映射关系,通过权限控制模型配置相应的权限。其中,权限控制模型采用API配置方式对权限进行控制。

实施例三、

本发明实施例提供了一种基于API配置的数据权限管理设备,其包括处理器、存储器,以及存储在存储器内的计算机程序。计算机程序能够被处理器执行,以实现如实施例一任意一段所说的基于API配置的数据权限管理方法。

实施例四、

本发明实施例提供了一种计算机可读存储介质。计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行如实施例一任意一段所说的基于API配置的数据权限管理方法。

在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

实施例中提及的“第一第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一第二”在允许的情况下可以互换特定的顺序或先后次序。应该理解“第一第二”区分的对象在适当情况下可以互换,以使这里描述的实施例能够以除了在这里图示或描述的那些内容以外的顺序实施。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种便于放置的精确测量的耳温枪体温计
  • 一种便于货物放置与搬运的物流装置
  • 一种便于将树苗隔开放置的树苗移栽用运输保护装置
  • 一种便于放置的电钻
  • 一种便于放置包裹的具有防盗功能的长途客运汽车
  • 一种便于分类放置书籍的木质书架
  • 一种便于书籍分类的木质书架
技术分类

06120116560856