CN114218551A - 鉴权方法、装置、电子设备和存储介质 - Google Patents
鉴权方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN114218551A CN114218551A CN202111314714.6A CN202111314714A CN114218551A CN 114218551 A CN114218551 A CN 114218551A CN 202111314714 A CN202111314714 A CN 202111314714A CN 114218551 A CN114218551 A CN 114218551A
- Authority
- CN
- China
- Prior art keywords
- target
- rule
- expression
- client
- authentication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 230000014509 gene expression Effects 0.000 claims abstract description 217
- 238000012545 processing Methods 0.000 claims abstract description 19
- 238000012360 testing method Methods 0.000 claims description 142
- 230000002159 abnormal effect Effects 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000007726 management method Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 14
- 238000013475 authorization Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000003491 array Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000011835 investigation Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013515 script Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000012550 audit Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000009469 supplementation Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/101—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
- G06F21/1014—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to tokens
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
本公开关于一种鉴权方法、装置、电子设备和存储介质,其中,方法包括:服务端接收客户端发送的鉴权请求,其中,鉴权请求是客户端在监测到对当前展示的目标页面中的目标组件的触发操作时,根据客户端的登录信息确定目标角色,并根据目标组件所属的目标业务的业务标识和目标角色生成的;获取与业务标识对应的业务属性;从规则库中获取与业务属性匹配的目标规则表达式;根据目标规则表达式,对目标角色和业务属性进行鉴权处理,确定鉴权结果,以根据鉴权结果确定客户端是否具有对目标组件的操作权限。由此,可以实现由服务端对客户端进行鉴权处理,以确定客户端是否具有对页面中的各组件的操作权限,以避免因权限控制缺失或操作不当而引发风险问题。
Description
技术领域
本公开涉及大数据数据访问技术领域,尤其涉及鉴权方法、装置、电子设备和存储介质。
背景技术
权限体系是着眼于整个系统的权限管理,实现对权限管理的有逻辑性、有序的使用。随着业务系统越来越庞大,权限管理功能也越来越重要,纯粹从权限管理来讲,可能无法遍及各个子系统的权限管理,因此可以引入权限体系这个维度,来实现对整个系统的权限管理作出更宏观的梳理和管控。举例而言,假设将车辆的车轮比喻为权限管理功能,则每个子系统的权限管理,相当于车辆的一个车轮,而车辆的驾驶系统就是权限管理体系。深入地了解权限体系,能让整个系统的权限更有逻辑性、更有序,使得不同类别的用户的初始权限及某些权限的变化均比较明确。
权限管理是所有后台系统均会涉及的一个重要组成部分,主要目的是对不同用户的访问资源进行权限控制,避免因权限控制缺失或操作不当引发而风险问题,如操作错误、隐私数据泄露等问题。
因此,如何实现对用户的访问资源进行权限控制,是非常重要的。
发明内容
本公开提供一种鉴权方法、装置、电子设备和存储介质,以至少在一定程度上解决相关技术中的技术问题之一。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种鉴权方法,包括:
接收客户端发送的鉴权请求,其中,所述鉴权请求是所述客户端在监测到对当前展示的目标页面中的目标组件的触发操作时,根据所述客户端的登录信息,确定所述客户端对应的目标角色,并根据所述目标组件所属的目标业务的业务标识和所述目标角色生成的;
响应于所述鉴权请求,根据所述业务标识,获取与所述业务标识对应的业务属性;
从规则库中获取与所述业务属性匹配的目标规则表达式;
根据所述目标规则表达式,对所述目标角色和业务属性进行鉴权处理,确定鉴权结果,以根据所述鉴权结果确定所述客户端是否具有对所述目标组件的操作权限。
在本公开实施例的一种可能的实现方式中,所述从规则库中获取与所述业务属性匹配的目标规则表达式,包括:
获取所述业务属性对应的类别,从所述规则库中获取与所述类别匹配的规则表达式,作为所述目标规则表达式;
或者,
获取所述业务属性对应的权限名,从所述规则库获取与所述权限名匹配的规则表达式,作为所述目标规则表达式。
在本公开实施例的一种可能的实现方式中,所述根据所述目标规则表达式,对所述目标角色和业务属性进行鉴权处理,确定鉴权结果,以根据所述鉴权结果确定所述客户端是否具有对所述目标组件的操作权限,包括:
创建用于解析所述目标规则表达式的驱动;
采用所述驱动根据所述目标角色和业务属性,对所述目标规则表达式中的各个参数进行赋值,以得到所述鉴权结果;
当所述鉴权结果满足设定条件时,确定所述客户端具有对所述目标组件的操作权限;
当所述鉴权结果不满足所述设定条件时,确定所述客户端不具有对所述目标组件的操作权限。
在本公开实施例的一种可能的实现方式中,所述鉴权请求中还包括所述客户端根据所述登录信息确定的用户属性,所述采用所述驱动根据所述目标角色和业务属性,对所述目标规则表达式中的各个参数进行赋值,以得到所述鉴权结果,包括:
采用所述驱动根据所述目标角色、所述业务属性以及所述用户属性,对目标规则表达式中的各个参数进行赋值,以得到所述鉴权结果。
在本公开实施例的一种可能的实现方式中,所述方法还包括:
获取第一规则输入信息;
对所述第一规则输入信息进行解析,以生成第一规则表达式;
将所述第一规则表达式和所述第一规则输入信息对应添加至所述规则库中。
在本公开实施例的一种可能的实现方式中,所述方法还包括:
监测到针对所述规则库中的第二规则表达式对应的第二规则输入信息的编辑操作;
响应于所述编辑操作,对所述第二规则输入信息进行编辑;
对编辑后的第二规则输入信息进行解析,以生成更新后的第二规则表达式;
利用更新后的第二规则表达式,对所述规则库中的第二规则表达式进行更新。
在本公开实施例的一种可能的实现方式中,所述方法还包括:
对所述规则库中的各规则表达式进行回归测试,以生成目标测试数据列表;
获取参考测试数据列表,其中,所述参考测试数据列表是首次或最近一次对所述规则库中的各规则表达式进行回归测试生成的测试数据列表;
将所述目标测试数据列表与所述参考测试数据列表进行比对,确定所述目标测试数据列表中不同于所述参考测试数据列表的目标测试数据,以根据所述目标测试数据确定所述规则库是否存在异常的规则表达式。
在本公开实施例的一种可能的实现方式中,所述方法还包括:
在根据所述目标测试数据确定所述规则库存在异常的规则表达式的情况下,发送提示信息,以提示对所述异常的规则表达式进行更新。
根据本公开实施例的第二方面,提供另一种鉴权装置,包括:
接收模块,被配置为接收客户端发送的鉴权请求,其中,所述鉴权请求是所述客户端在监测到对当前展示的目标页面中的目标组件的触发操作时,根据所述客户端的登录信息,确定所述客户端对应的目标角色,并根据所述目标组件所属的目标业务的业务标识和所述目标角色生成的;
响应模块,被配置为响应于所述鉴权请求,根据所述业务标识,获取与所述业务标识对应的业务属性;
获取模块,被配置为从规则库中获取与所述业务属性匹配的目标规则表达式;
鉴权模块,被配置为根据所述目标规则表达式,对所述目标角色和业务属性进行鉴权处理,确定鉴权结果,以根据所述鉴权结果确定所述客户端是否具有对所述目标组件的操作权限。
在本公开实施例的一种可能的实现方式中,所述获取模块,被配置为:
获取所述业务属性对应的类别,从所述规则库中获取与所述类别匹配的规则表达式,作为所述目标规则表达式;
或者,
获取所述业务属性对应的权限名,从所述规则库获取与所述权限名匹配的规则表达式,作为所述目标规则表达式。
在本公开实施例的一种可能的实现方式中,所述鉴权模块,被配置为:
创建用于解析所述目标规则表达式的驱动;
采用所述驱动根据所述目标角色和业务属性,对所述目标规则表达式中的各个参数进行赋值,以得到所述鉴权结果;
当所述鉴权结果满足设定条件时,确定所述客户端具有对所述目标组件的操作权限;
当所述鉴权结果不满足所述设定条件时,确定所述客户端不具有对所述目标组件的操作权限。
在本公开实施例的一种可能的实现方式中,所述鉴权请求中还包括所述客户端根据所述登录信息确定的用户属性,所述鉴权模块,被配置为:
采用所述驱动根据所述目标角色、所述业务属性以及所述用户属性,对目标规则表达式中的各个参数进行赋值,以得到所述鉴权结果。
在本公开实施例的一种可能的实现方式中,所述获取模块,还被配置为获取第一规则输入信息;
所述装置,还包括:
生成模块,被配置为对所述第一规则输入信息进行解析,以生成第一规则表达式;
添加模块,被配置为将所述第一规则表达式和所述第一规则输入信息对应添加至所述规则库中。
在本公开实施例的一种可能的实现方式中,所述装置还包括:
监测模块,被配置为监测到针对所述规则库中的第二规则表达式对应的第二规则输入信息的编辑操作;
编辑模块,被配置为响应于所述编辑操作,对所述第二规则输入信息进行编辑;
解析模块,被配置为对编辑后的第二规则输入信息进行解析,以生成更新后的第二规则表达式;
更新模块,被配置为利用更新后的第二规则表达式,对所述规则库中的第二规则表达式进行更新。
在本公开实施例的一种可能的实现方式中,所述装置还包括:
测试模块,被配置为对所述规则库中的各规则表达式进行回归测试,以生成目标测试数据列表;
所述获取模块,还被配置为获取参考测试数据列表,其中,所述参考测试数据列表是首次或最近一次对所述规则库中的各规则表达式进行回归测试生成的测试数据列表;
比对模块,被配置为将所述目标测试数据列表与所述参考测试数据列表进行比对,确定所述目标测试数据列表中不同于所述参考测试数据列表的目标测试数据,以根据所述目标测试数据确定所述规则库是否存在异常的规则表达式。
在本公开实施例的一种可能的实现方式中,所述装置还包括:
发送模块,被配置为在根据所述目标测试数据确定所述规则库存在异常的规则表达式的情况下,发送提示信息,以提示对所述异常的规则表达式进行更新。
根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如本公开上述实施例所述的鉴权方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如本公开上述实施例所述的鉴权方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括:计算机程序,所述计算机程序被处理器执行时实现如本公开上述实施例所述的鉴权方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
通过服务端对客户端进行鉴权处理,以确定客户端是否具有对页面中的各组件的操作权限,若客户端不具有对组件的操作权限,则无法对组件进行相应操作,可以提升系统的安全性,也就是说,本公开中,可以由服务端对客户端上登录的用户的访问资源进行权限控制,以避免因权限控制缺失或操作不当而引发风险问题,提升系统的安全性。并且,采用与业务属性匹配的规则表达式来进行权限验证,可以适用于任一业务场景,可以提升该方法的适用性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是RBAC模式示意图。
图2是ABAC模式示意图。
图3是本公开第一实施例所示出的鉴权方法的流程示意图。
图4是本公开第二实施例所示出的鉴权方法的流程示意图。
图5是本公开第三实施例所示出的鉴权方法的流程示意图。
图6是本公开第四实施例所示出的鉴权方法的流程示意图。
图7是本公开第五实施例所示出的鉴权装置的结构示意图。
图8是本公开一示例性实施例所示出的电子设备的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
随着vue、react(上述两个均是JavaScript框架)等轻量化开源前端框架的普及应用,数据与界面交互双向绑定的动态页面技术,成为应用界面渲染的一个未来方向。其中,动态页面具有以下特点:
(1)动态页面基于数据库技术,可以极大地降低网站、应用的维护工作量;
(2)采用动态页面设计的网站、应用,可以实现更加灵活的交互,为用户带来更好的使用体验;
(3)基于双向绑定的动态页面技术,大多都是采用一套用于构建用户界面的渐进式框架实现,与大型的前端框架不同的是,这些轻量化框架可以被设计成可以自底向上的逐层应用。
某个主体对某个个体需要实施某种操作,系统对这种操作的限制就是权限控制。在一个安全的系统中,通过认证来确认主体的身份。客体是一种资源,是主体发起请求的对象;主体能做什么,就是权限。
权限控制分为两部分:一部分为垂直权限,另一部分为水平权限,其中,垂直权限是指功能权限,水平权限是指数据权限。
基于权限控制,演进出了许多权限模型,如ACL(Access Control List,访问控制列表)模型、RBAC(Role Based Access Control,基于角色的访问控制)模型等。在技术实现方面,目前各企业及机构都是根据自己的实际业务条件,各自建立适用于自己的权限管理系统,无法灵活地适配于其他场景(比如高复杂场景、动态化的场景等)。
其中,“基于角色的访问控制”和“基于数据的访问控制”是进行系统安全设计时用到的两种权限控制方式。常见的权限控制模型包括以下几种:
第一种,ACL(Access Control List,控制访问列表)。在ACL中,包含用户、资源、资源操作三个要素。每一项资源,都配置有一个列表,用于指示哪些用户可以对这项资源执行哪些操作。当系统试图访问这些资源时,会检查这个列表中是否有关于当前用户的操作权限。总的来说,ACL是面向“资源”的访问控制模型,机制是围绕资源展开的。
第二种,DAC(Discretionary Access Control,自主访问控制)。系统会识别用户,然后根据被操作对象(Subject)的ACL或者AML(Access Control Matrix,权限控制矩阵)的信息,决定该用户是否能对Subject进行操作,或者进行哪些操作,例如读取或修改。而拥有对象权限的用户,又可以将该对象的权限分配给其他用户,所以称之为自主控制。DAC最大的缺陷就是对权限的控制比较分散,不便于管理,比如无法将权限开放给指定的一群用户。
第三种,MAC(Mandatory Access Control,强制访问控制)。MAC是为了弥补DAC对权限控制过于分散的问题,而诞生的权限控制模型。在MAC的设计中,每个对象都有一些权限标识,每个用户同样也有一些权限标识,而用户能否对该对象进行权限操作,取决于双方权限标识之间的关系,这个限制判断通常是由系统硬性限制的。比如,在影视剧作品中,经常出现特工在设备上查询机密文件时,设备屏幕提示“无法访问,需要一级安全访问许可”的画面,这个例子中,机密文件具有“一级安全许可”的权限标识,而用户并不具有该权限标识,因此用户无法访问或查看该机密文件。需要说明的是,MAC可以适用于机密机构或者其他等级观念强烈的行业,但对于类似商业服务系统(比如商业银行)而言,MAC因为不够灵活而无法适用。
第四种,RBAC(Role-Based Access Control,基于角色的访问控制)。RBAC认为授权实际就是who(谁)、what(什么)、how(如何)三者之间的关系,即who对what进行了how操作。其中,RBAC的关注点在于Role(角色)和User(使用者)、Permission(权限)之间的关系,称为User Assignment(UA,用户分配)和Permission Assignment(PA,权限分配)。关系的左右两边都是多对多(Many-to-Many)关系,即User可以对应多个role,role可以包含多个User。User通过成为Role,而得到Role的Permission,Role隔离了User和Permission的逻辑关系。
其中,RBAC支持三个著名的安全原则:
1、最小权限原则:要求系统只授予主体必要的权限,而不要过度授权,这样能够有效地减少系统、网络、应用、数据库出错的概率。RBAC可以将其角色配置成其完成任务所需要的最小权限集。
2、责任分离原则:调用相互独立互斥的角色来共同完成敏感的任务。例如,记账员和财务管理员共同参与同一过账。
3、数据抽象原则:权限的抽象。例如,财务操作用借款、存款等抽象权限,而不用系统提供的典型的读、写、执行权限。
作为一种示例,RBAC模式可以如图1所示,当User同时对应左侧的两个Role时,可以拥有右侧的两个资源的访问权限;而当User只对应一个Role时,只能拥有右侧两个资源中的其中一个资源的访问权限。
第五种,OAuth(Open Authorization,开放授权)。OAuth是一个在不提供用户名和密码的情况下,授权第三方应用访问WEB资源的安全协议。例如,一个OAuth场景可以为:用户将照片存储在谷歌上,然后在“云冲印”网站需要获得用户的授权,来读取谷歌上的用户照片。
其中,OAuth包括以下几种模式:
1、授权码模式:功能最完整、流程最严密的收取模式,其特点是通过客户端(Client)的后台服务器,与服务提供商的认证服务器进行交互。
2、简化模式:不通过第三方应用程序的服务器,直接在浏览器中向认证服务器申请令牌,跳过了授权码的步骤。所有步骤均在浏览器中完成,令牌对访问者是可见的,切换客户端(Client)不需要认证。
3、密码模式:用户向客户端(Client)提供自己的用户名和密码,客户端使用这些信息,向服务提供商索要权限。这种模式中,用户需要将自己的密码提供给客户端,但客户端不得存储用户密码。这种方式通常用于在用户对客户端高度信任的情况下,例如,客户端是操作系统的一部分或者是一个著名公司。而认证服务器只有在其他授权模式无法执行的情况下,才会采用这种模式。
4、客户端模式:客户端以自己的名义,而不是以用户的名义,向服务提供商进行认证。严格地说,客户端模式并不属于OAuth框架所要解决的问题。在这种模式中,用户直接向客户端注册,客户端以自己的名义要求服务提供商提供服务,其实不存在用户的授权问题。
第六种,ABAC(Attribute-Based Access Control,基于属性的访问控制)。ABAC被认为是权限系统涉及的未来。不同于常见的将用户通过某种方式关联到权限的方案,ABAC则是通过动态计算一个或一组属性是否满足某种条件来进行授权判断(可以编写简单的逻辑)。属性通常来说分为4类:用户属性(Subject Attributes,如用户性别、年龄)、环境属性(如当前时间)、操作属性(如读取)和对象属性(Object Attributes,如一篇文章,又称资源属性),所以理论上ABAC能够实现非常灵活的控制,几乎满足所有类型的需求。
作为一种示例,ABAC模式可以如图2所示。
其中,ABAC具有如下特点:
A、集中化管理;
B、可以按需实现不同粒度的权限控制;
C、不需要预定义判断逻辑,可以减轻权限系统的维护成本,特别是需求经常变化的系统;
D、在定义权限时,不能直观地看出用户和对象之间的关系;
E、规则如果稍微复杂一点,或者设计混乱,则会给管理者维护和追查带来麻烦;
F、权限判断需要实时执行,规则过多会导致性能问题。
随着网页、界面呈现出动态化的发展趋势,动态界面的权限控制变得越来越复杂。例如,动态页面的权限设计相比于静态页面的权限设计,维度变得更高。由于动态页面包含的业务范围更广、交互元素更加灵活,动态页面的权限场景更加复杂、判断条件维度更高。
再例如,动态界面组件权限可配置化难以抽象。
又例如,无法实现全面积回归测试。在一个复杂的权限控制系统中,在修改了某个权限后,无法做到在全面积的范围进行回归测试。由此,可能给系统升级上线带来了一定风险。
另外,在一些业务场景中,操作权限控制不再是简单地基于角色进行设计,而是角色与各种复杂的业务状态交织到一起进行判断,这使得权限控制方案设计面临着更大的困难。
因此针对上述存在的问题,本公开提出一种鉴权方法、装置、电子设备和存储介质。
下面参考附图描述本公开实施例的鉴权方法、装置、电子设备和存储介质。在具体描述本公开实施例之前,为了便于理解,首先对常用技术词进行介绍:
JEXL表达式引擎:Java表达式语言(Java Expression Language),JEXL是一个旨在促进用Java编写的应用程序和框架中实现动态解析脚本功能的库。JEXL基于对JSTL(JSP(Java Server Pages,Java服务端网页)Standard Tag Library,JSP标准标签库)表达式语言的某些扩展来事先定义一种表达式语言,该扩展支持在shell脚本(Script)或ECMA(European Computer Manufacturers Association,欧洲计算机制造商协会)Script(一种标准脚本语言)中看到的大多数构造。
动态网页:是指跟静态网页相对的一种网页编程技术。静态网页,随着HTML(Hypertext Markup Language,超文本标记语言)代码的生成,页面内容和现实效果基本上不会发生变化--除非修改页面代码。而动态网页则不然,页面代码虽然没有变,但是页面显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。
权限控制:在所有管理系统中,都会包含权限模块,来进行用户的权限分配和控制,从而达到操作和数据隔离。权限控制主要以后台权限控制为主,加上前端界面显示来进行不同级别的权限控制管理。
图3是本公开第一实施例所示出的鉴权方法的流程示意图。
如图3所示,该鉴权方法可以应用于服务端,包括以下步骤S11-步骤S14。
在步骤S11中,接收客户端发送的鉴权请求,其中,鉴权请求是客户端在监测到对当前展示的目标页面中的目标组件的触发操作时,根据该客户端的登录信息,确定该客户端对应的目标角色,并根据目标组件所属的目标业务的业务标识和目标角色生成的。
在本公开实施例中,目标页面是指客户端当前展示的页面,该目标页面可以为静态页面,或者,该目标页面也可以为动态页面,本公开对此并不作限制。
在本公开实施例中,目标组件可以为目标页面中展示的任意一个组件。举例而言,以该方法应用于银行的贷款流程进行示例性说明,目标组件可以为目标页面中的贷款、客户、抵押物等组件。
在本公开实施例中,客户端在监测到用户对当前展示的目标页面中的目标组件的触发操作时,可以根据该用户的登录信息确定该用户对应的目标角色,即可以根据该客户端对应的登录信息,确定登录该客户端的用户所对应的目标角色。并且,客户端还可以确定该目标组件所属的目标业务,根据目标业务的业务标识和目标角色,生成鉴权请求,并将该鉴权请求发送至服务端,相应的,服务端可以接收客户端发送的鉴权请求,以对该客户端进行鉴权处理。
在步骤S12中,响应于鉴权请求,根据业务标识,获取与业务标识对应的业务属性。
在本公开实施例中,业务属性还可以称为业务条件参数,比如,该业务属性可以包括业务场景参数、业务特色参数等,例如业务流程状态、业务所属产品代码、业务所属产品类型、业务受理时间、业务审批时间等等。
在本公开实施例中,服务端在接收到鉴权请求后,可以根据该鉴权请求中的业务标识,获取与该业务标识对应的业务属性。
在步骤S13中,从规则库中获取与业务属性匹配的目标规则表达式。
在本公开实施例中,规则库是指用于存储规则表达式的数据库。
在本公开实施例中,服务端可以从规则库中,获取与业务属性匹配的目标规则表达式。
在本公开实施例的一种可能的实现方式中,服务端可以确定业务属性对应的类别,从规则库中获取与上述类别匹配的规则表达式,作为目标规则表达式。其中,可以将规则表达式与类别对应存储在规则库中。
举例而言,以该方法应用于银行的贷款流程进行示例性说明,贷款流程中可以包括房贷、车贷、消费贷等类别,如果业务属性所属的类别为车贷,则从规则库中获取与车贷这一类别匹配的规则表达式。
在本公开实施例的另一种可能的实现方式中,服务端可以确定业务属性对应的权限名,从规则库获取与上述权限名匹配的规则表达式,作为目标规则表达式。其中,可以将规则表达式与权限名对应存储在规则库中。
由此,可以实现根据不同方式,确定与业务属性匹配的目标规则表达式,可以提升该方法的灵活性与适用性。
在步骤S14中,根据目标规则表达式,对目标角色和业务属性进行鉴权处理,确定鉴权结果,以根据鉴权结果确定客户端是否具有对目标组件的操作权限。
在本公开实施例中,服务端可以根据目标规则表达式,对目标角色和业务属性进行鉴权处理,以确定鉴权结果,从而可以根据鉴权结果确定该客户端是否具有对目标组件的操作权限。在客户端具有对目标组件的操作权限时,可以控制客户端展示该目标组件对应的页面元素,或者,用户可以对该目标组件进行相应操作,比如增加、修改等操作,而在客户端不具有对该目标组件的操作权限时,用户则无法对该目标组件进行相应操作,由此,可以实现对用户在目标页面中的访问资源进行权限控制,以避免因权限控制缺失或操作不当而引发风险问题。
在本公开实施例的一种可能的实现方式中,可以由服务端根据鉴权结果,直接确定该客户端是否具有目标组件的操作权限,并向客户端发送用于指示该客户端是否具有目标组件的操作权限的指示信息,相应的,客户端在接收到指示信息后,可以根据该指示信息,对该目标组件进行权限控制。
比如,当指示信息指示客户端具有对目标组件的操作权限时,客户端可以根据该指示信息,在目标页面展示该目标组件对应的页面元素,从而用户可以对该目标组件进行相应操作。而当指示信息指示客户端不具有对目标组件的操作权限时,客户端可以无需在目标页面展示该目标组件对应的页面元素,从而用户无法对该目标组件进行相应操作。
在本公开实施例的另一种可能的实现方式中,服务端可以将鉴权结果发送至客户端,由客户端根据鉴权结果,确定该客户端是否具有对目标组件的操作权限。
本公开实施例的鉴权方法,通过服务端接收客户端发送的鉴权请求,其中,鉴权请求是客户端在监测到对当前展示的目标页面中的目标组件的触发操作时,根据该客户端的登录信息,确定该客户端对应的目标角色,并根据目标组件所属的目标业务的业务标识和目标角色生成的;响应于鉴权请求,根据业务标识,获取与业务标识对应的业务属性;从规则库中获取与业务属性匹配的目标规则表达式;根据目标规则表达式,对目标角色和业务属性进行鉴权处理,确定鉴权结果,以根据鉴权结果确定客户端是否具有对目标组件的操作权限。由此,可以实现由服务端对客户端进行鉴权处理,以确定客户端是否具有对页面中的各组件的操作权限,若客户端不具有对组件的操作权限,则无法对组件进行相应操作,可以提升系统的安全性,也就是说,本公开中,可以由服务端对客户端上登录的用户的访问资源进行权限控制,以避免因权限控制缺失或操作不当而引发风险问题,提升系统的安全性。并且,采用与业务属性匹配的规则表达式来进行权限验证,可以适用于任一业务场景,可以提升该方法的适用性。
为了清楚说明本公开上述实施例中是如何对目标角色和业务属性进行鉴权处理的,本公开还提出一种鉴权方法。下面结合图2,对上述过程进行详细说明。
图4是本公开第二实施例所示出的鉴权方法的流程示意图。
如图4所示,该鉴权方法可以包括以下步骤S21-步骤S28。
在步骤S21中,接收客户端发送的鉴权请求,其中,鉴权请求是客户端在监测到对当前展示的目标页面中的目标组件的触发操作时,根据客户端的登录信息,确定客户端对应的目标角色,并根据目标组件所属的目标业务的业务标识和目标角色生成的。
在步骤S22中,响应于鉴权请求,根据业务标识,获取与业务标识对应的业务属性。
在步骤S23中,从规则库中获取与业务属性匹配的目标规则表达式。
步骤S21至S23的执行过程可以参见本公开任一实施例的执行过程,在此不做赘述。
在步骤S24中,创建用于解析目标规则表达式的驱动。
在步骤S25中,采用驱动根据目标角色和业务属性,对目标规则表达式中的各个参数进行赋值,以得到鉴权结果。
在本公开实施例中,可以创建用于解析目标规则表达式的驱动,并通过上述驱动根据目标角色和业务属性,对目标表达式中的各个参数进行赋值,以得到鉴权结果。
作为一种示例,以通过调用JEXL的解析表达式,来实现权限的解析进行示例性说明,可以首先在对应的spring框架中引入JEXL依赖包,之后,通过以下步骤,计算得到鉴权结果:
A、创建用于表达式引擎对象(驱动);
B、获取目标规则表达式对应的语句字符串;
C、创建Context对象(驱动),根据目标角色和业务属性,依次为目标规则表达式中的未知参数赋值;
D、使用表达式引擎创建表达式对象(驱动),采用上述表达式对象计算目标规则表达式对应的结果。
以目标规则表达式为a+b*c进行示例,可以从目标角色和业务属性中分别确定a、b、c的取值,并带入目标规则表达式,假设a=1,b=2,c=3,则可以确定鉴权结果为7。
在本公开实施例的一种可能的实现方式中,客户端发送至服务端的鉴权请求中还可以包括该客户端根据登录信息确定的用户属性,相应的,服务端在接收到鉴权请求后,可以采用上述驱动,根据目标角色、业务属性以及用户属性,对目标规则表达式中的各个参数进行赋值,以得到鉴权结果。
也就是说,用于权限判断的各个参数,本公开中记为权限条件参数,可以包括用户角色、用户属性,业务属性等参数,比如权限条件参数还可以包括环境属性、资源属性和操作属性。作为一种示例,权限条件参数可以如表1所示,其中,用户角色可以如表1中的b所示,用户属性可以如表2中的a和c所示,业务属性可以如表1中的d、e、m、n、x、y所示。
表1权限条件参数示例
综上可知,本公开是将ABAC模式中的某个权限的准入判断规则,用表达式语句的形式进行表示,将客户端上登录的当前用户对应的实际角色和目标业务当前的实际场景参数,全部放入Context对象中,通过上述步骤,计算得到最终的鉴权结果,用于确定当前用户和目标业务对应的当前场景下,是否允许权限的准入。
其中,对于权限条件参数的配置,可以将其进行统一化处理,从固定的页面参数、网络请求参数、后台存储等地方捞取。例如,可以将各种类型的权限条件参数糅合到一起,并且可以根据交易线和唯一的数据标识从各个数据来源场景下捞取各权限条件参数,以提升该方法的可维护性。
需要说明的是,将用户角色、业务属性等各种复杂的权限条件参数融合到同一个参数引擎对象中,可能造成以下复杂的问题:各种数据类型适配处理,和/或,多种数据来源的捞取处理。
对于数据类型适配问题,可以借助JEXL的灵活功能,将数字处理基类、时间处理基类、Array处理基类等一些基本类型的处理类,引入到JEXL引擎中。例如,对于角色权限的处理,需要在用户角色列表中判断是否存在某个角色,位于权限对应的可准入角色列表中,若存在,则确定用户具有对目标组件的操作权限。上述场景实质上是求取一个集合与另一个集合是否存在并集,若存在,则允许权限准入,若不存在,则不允许权限准入,上述计算无法采用普通的表达式语句进行处理,但是可以借助Array类里面的一些方法来操作。
对于多种数据来源的捞取处理问题,可以按照业务定义数据来源的优先级,然后依次从各个数据来源中进行捞取,直到取到值为止。
在步骤S26中,判断鉴权结果是否满足设定条件,若是,则执行步骤S27,若否,则执行步骤S28。
在步骤S27中,确定客户端具有对目标组件的操作权限。
在本公开实施例中,当鉴权结果满足设定条件时,可以确定客户端具有对目标组件的操作权限。
在步骤S28中,确定客户端不具有对目标组件的操作权限。
在本公开实施例中,当鉴权结果不满足设定条件时,可以确定客户端不具有对目标组件的操作权限。
仍以上述例子进行示例,以设定条件为目标规则表达式的计算结果为12进行示例性说明,由于目标规则表达式的计算结果(即鉴权结果)为7,则可以确定鉴权结果不满足设定条件,此时,可以确定客户端不具有对目标组件的操作权限。
本公开实施例的鉴权方法,通过创建用于解析目标规则表达式的驱动;采用驱动根据目标角色和业务属性,对目标规则表达式中的各个参数进行赋值,以得到鉴权结果;当鉴权结果满足设定条件时,确定客户端具有对目标组件的操作权限;当鉴权结果不满足设定条件时,确定客户端不具有对目标组件的操作权限。由此,可以实现通过用于解析规则表达式的驱动,来对目标规则表达式中的各个参数进行有效赋值,得到鉴权结果,从而可以根据鉴权结果对客户端进行有效鉴权,可以避免因权限控制缺失或操作不当而引发风险问题,提升系统的安全性。
在本公开实施例的一种可能的实现方式中,可以由业务人员或技术人员根据实际业务需求,配置规则库中的各个规则表达式。下面结合图5,对上述过程进行详细说明。
图5是本公开第三实施例所示出的鉴权方法的流程示意图。
如图5所示,在上述任一实施例的基础上,该鉴权方法还可以包括以下步骤S31-步骤S33。
在步骤S31中,获取第一规则输入信息。
在本公开实施例中,第一规则输入信息为业务人员或技术人员输入的针对权限规则的配置信息。
作为一种示例,以该方法应用于银行的贷款流程进行示例性说明,可以由业务人员或技术人员根据实际业务需求或实际应用需求,灵活地配置各个权限规则,得到规则输入信息,例如,规则输入信息可以如下所示:
【业务场景为贷款影像,并且贷款在当前处理人名下,并且该笔贷款的业务状态在受理/调查/录入/审核之中,并且当前登陆人权限在调查人、客户经理···之中】,或者,【业务场景为贷款合作方影像,并且合作业务状态在受理、调查、录入、审核、审批之中,并且当前登陆人权限在合作方营销人···之中】
其中,重括号、“并且”、“在…之中”为描述连接词,每个状态对应:
业务场景为贷款影像(matetype=01);
贷款在当前处理人名下(loanofnowopper=true);
该笔贷款的业务状态在受理/调查/录入/审核之中(busistat=01/02/03/04);
当前登陆人权限在调查人、客户经理···之中(roles=J031200035、J031200038···);
业务场景为贷款合作方影像(matetype=16);
合作业务状态在受理、调查、录入、审核、审批之中(coopbusistat=0/1/2/4/5);
当前登陆人权限在合作方营销人···之中(roles=J031CF0120···)。
在步骤S32中,对第一规则输入信息进行解析,以生成第一规则表达式。
在本公开实施例中,可以基于自然语言处理技术,对第一规则输入信息进行解析,以生成第一规则表达式。
仍以上述例子进行示例,第一规则表达式可以如下所示:
true&&((Arrays.asList(“01”).contains(matetype)&&loanofnowoper&&Arrays.asList(“01”,“02”,“03”,“04”).contains(busistat)&&roles.removeAll(Arrays.asList(“J031200035”,“J031200038”,“J031200008”,“J031200005”,“J031200006”,“J024000038”,“J031200013”,“J061B00009”)))||(matetype==“16”&&Arrays.asList(“0”,“1”,“2”,“4”,“5”).contains(coopbusistat)&&roles.removeAll(Arrays.asList(“J031CF0120”))))
在步骤S33中,将第一规则表达式和第一规则输入信息对应添加至规则库中。
在本公开实施例中,可以将第一规则表达式和第一规则输入信息对应添加至规则库中。其中,规则库可以位于数据库后台或者一些存储中间件中(比如redis)。
在本公开实施例的一种可能的实现方式中,为了提升该方法的灵活性和适用性,业务人员或技术人员还可以根据实际业务需求或应用需求,对规则库中的各规则表达式进行更新,例如,业务人员可以对规则库中各规则表达式对应的规则输入信息进行编辑,从而可以对编辑后的规则输入信息进行解析,得到更新后的规则表达式,并利用更新后的规则表达式,对规则库中原有的规则表达式进行更新。
具体地,服务端在监测到针对规则库中的第二规则表达式对应的第二规则输入信息的编辑操作时,可以响应于该编辑操作,对第二规则输入信息进行编辑,并对编辑后的第二规则输入信息进行解析,以生成更新后的第二规则表达式,从而可以利用更新后的第二规则表达式,对规则库中的第二规则表达式进行更新。由此,可以实现对规则库中的各规则表达式进行动态维护,以满足实际业务需求。
本公开实施例的鉴权方法,通过获取第一规则输入信息;对第一规则输入信息进行解析,以生成第一规则表达式;将第一规则表达式和第一规则输入信息对应添加至规则库中。由此,可以实现由业务人员或技术人员根据实际的应用需求和业务需求,对规则库中的各规则表达式进行配置,可以提升该方法的灵活性和适用性。并且,可以实现对规则库中的规则表达式进行动态维护、更新和补充,以满足实际的业务需求,进一步提升该方法的适用性。
需要说明的是,对于复杂场景的权限规则配置,如果业务人员或技术人员修改了某个场景的规则表达式,则很可能影响到其他场景对应的规则表达式,因此,对规则库中的各规则表达式进行回归测试是非常重要的,然而,在业务测试中,很难做到对规则库中全部场景对应的规则表达式进行回归测试。
因此,针对上述问题,本公开还提出一种鉴权方法。
图6是本公开第四实施例所示出的鉴权方法的流程示意图。
如图6所示,在图5所示实施例的基础上,该鉴权方法还可以包括以下步骤S41-步骤S43。
在步骤S41中,对规则库中的各规则表达式进行回归测试,以生成目标测试数据列表。
在本公开实施例中,可以对规则库中的各规则表达式进行回归测试,以生成目标测试列表数据。
在步骤S42中,获取参考测试数据列表,其中,参考测试数据列表是首次或最近一次对规则库中的各规则表达式进行回归测试生成的测试数据列表。
在本公开实施例中,还可以获取参考测试数据列表,该参考测试数据列表可以是首次对规则库中的各规则表达式进行回归测试后生成的测试列表数据,或者,该参考测试数据列表也可以是最近一次对规则库中的各规则表达式进行回归测试生成的测试数据列表。
在步骤S43中,将目标测试数据列表与参考测试数据列表进行比对,确定目标测试数据列表中不同于参考测试数据列表的目标测试数据,以根据目标测试数据确定规则库是否存在异常的规则表达式。
在本公开实施例中,可以将目标测试数据列表与参考测试数据列表进行比对,以确定目标测试数据列表中不同于参考测试数据列表的测试数据,本公开中记为目标测试数据,从而可以根据目标测试数据确定规则库中是否存在异常的规则表达式。
作为一种示例,可以将目标测试数据提供给业务人员进行验证分析,以确定规则库中是否存在异常的规则表达式。
在本公开实施例的一种可能的实现方式中,在根据目标测试数据确定规则库中存在异常的规则表达式的情况下,可以发送提示信息,以提示业务人员或技术人员对异常的规则表达式进行更新。
作为一种示例,可以在首次搭建规则库时,调用面积测试方式,对规则库中的各规则表达式进行回归测试,生成初始化测试数据列表,本公开中记为参考测试数据列表,并由业务人员浏览该参考测试数据列表,确定并核对各业务场景对应的规则表达式的测试结果是否符合预期,如果不符合预期,则由技术人员重新对规则库中的规则表达式进行配置,并重新调用面积测试方法,对规则库中的各规则表达式进行回归测试,生成目标测试数据列表。将目标测试数据列表与参考测试数据列表进行对比,以确定参考测试数据列表与目标测试数据列表中不一致的测试数据以及新增的测试数据,本公开中记为目标测试数据,从而可以由业务人员对目标测试数据进行验证分析。如果目标测试数据不符合预期,则由技术人员重新对规则库中的规则表达式进行配置,并重新对规则库中的各规则表达式进行回归测试。
通过上述测试方法,可以遍历规则库中所有的规则表达式,并将各规则表达式的测试结果交付给业务人员进行验证,并与上一次生成的测试数据列表进行比对,来实现自动排查新增或更新后的规则表达式对回归场景有无影响。
可以理解的是,在一些业务场景中,权限控制不再是单一的角色控制,而是与各种复杂的业务状态条件交织到一起。比如,在某个贷款档案管理系统中,某些客户经理角色只能在固定的贷款流程中进行文件修改,当贷款已经审批,走到签约环节时,客户经理角色按规则是不允许再修改申请资料和客户电子档案的。这里面,即需要实现将贷款经办角色与贷款流程状态交织到一起,对档案修改权限进行动态控制。
为了实现对权限进行动态控制,本公开中,可以在动态业务页面中,对于用户角色、用户属性、环境属性、资源属性、业务属性、操作属性等复杂权限条件参数,以场景角度看待角色及各种属性,结合解析表达式引擎,来实现复杂场景的权限控制。
工作原理为:服务端将用户角色、业务状态、业务类型、业务特征等数据看做是每种不同的场景,作为场景化的条件,集成到一个条件加工驱动中,同时,将权限规则以字符串表达式的形式(本公开中记为规则表达式)存到数据库(本公开中记为规则库)中。系统运行时,客户端将获取到的角色等条件通过接口形式发送到服务端,服务端将客户端获取的条件及业务编号(本公开中记为业务标识)放至条件加工驱动中,并根据业务编号自动捞取业务条件参数(本公开中记为业务属性),形成业务条件参数集成,然后根据业务条件参数对应的权限名或分类,从规则库中获取对应的规则表达式,将用户角色和业务条件参数与规则表达式放入JEXL引擎,解析成权限控制结果(本公开中记为鉴权结果),并将权限控制结果返回至客户端对交互的目标组件做对应的权限控制。
采用解析表达式的方式适配复杂场景的权限控制,将角色条件当做一种特殊的场景,以场景为单位,来设计规则表达式,可以实现为复杂场景的权限规则设计提供新的固定套路,方便业务人员和技术人员更好的对接权限需求及接口,及提升开发的灵活性。并且,规则表达式为可配置的,业务人员和技术人员可以通过人机交互的方式配置,且配置后的规则表达式可以通过面积测试方法进行回归测试,可以形成一整套的灵活性高、可用性高、可维护性高、安全可靠的权限配置流程,以高效地应用于金融系统、政务办公系统等对系统要求比较高的场景。
需要说明的是,虽然可以根据业务场景在应用程序中硬编码实现复杂权限的规则,但是上述硬编码的方式,规则不可配置,灵活性不高。
本公开实施例的鉴权方法,通过对规则库中的各规则表达式进行回归测试,以生成目标测试数据列表;获取参考测试数据列表,其中,参考测试数据列表是首次或最近一次对规则库中的各规则表达式进行回归测试生成的测试数据列表;将目标测试数据列表与参考测试数据列表进行比对,确定目标测试数据列表中不同于参考测试数据列表的目标测试数据,以根据目标测试数据确定规则库是否存在异常的规则表达式。由此,可以实现对规则库中的各规则表达式进行回归测试,以确定规则库中是否存在异常的规则表达式,从而可以在确定规则库存在异常的规则表达式时,提醒相关人员对异常的规则表达式进行修改,以避免异常的规则表达式为系统的升级上线带来风险问题,提升系统的稳健性。
与上述图1至图6实施例提供的鉴权方法相对应,本公开还提供一种鉴权装置,由于本公开实施例提供的鉴权装置与上述图1至图6实施例提供的鉴权方法相对应,因此在鉴权方法的实施方式也适用于本公开实施例提供的鉴权装置,在本公开实施例中不再详细描述。
图7是本公开第五实施例所示出的鉴权装置的结构示意图。
参照图7,该鉴权装置100可以包括:接收模块110、响应模块120、获取模块130以及鉴权模块140。
其中,接收模块110,被配置为接收客户端发送的鉴权请求,其中,鉴权请求是客户端在监测到对当前展示的目标页面中的目标组件的触发操作时,根据客户端的登录信息,确定客户端对应的目标角色,并根据目标组件所属的目标业务的业务标识和目标角色生成的。
响应模块120,被配置为响应于鉴权请求,根据业务标识,获取与业务标识对应的业务属性。
获取模块130,被配置为从规则库中获取与业务属性匹配的目标规则表达式。
鉴权模块140,被配置为根据目标规则表达式,对目标角色和业务属性进行鉴权处理,确定鉴权结果,以根据鉴权结果确定客户端是否具有对目标组件的操作权限。
在本公开实施例的一种可能的实现方式中,获取模块130,被配置为:获取业务属性对应的类别,从规则库中获取与类别匹配的规则表达式,作为目标规则表达式;或者,获取业务属性对应的权限名,从规则库获取与权限名匹配的规则表达式,作为目标规则表达式。
在本公开实施例的一种可能的实现方式中,鉴权模块140,被配置为:创建用于解析目标规则表达式的驱动;采用驱动根据目标角色和业务属性,对目标规则表达式中的各个参数进行赋值,以得到鉴权结果;当鉴权结果满足设定条件时,确定客户端具有对目标组件的操作权限;当鉴权结果不满足设定条件时,确定客户端不具有对目标组件的操作权限。
在本公开实施例的一种可能的实现方式中,鉴权请求中还包括客户端根据登录信息确定的用户属性,鉴权模块140,被配置为:采用驱动根据目标角色、业务属性以及用户属性,对目标规则表达式中的各个参数进行赋值,以得到鉴权结果。
在本公开实施例的一种可能的实现方式中,获取模块130,还被配置为获取第一规则输入信息;该鉴权装置100还可以包括:
生成模块,被配置为对第一规则输入信息进行解析,以生成第一规则表达式。
添加模块,被配置为将第一规则表达式和第一规则输入信息对应添加至规则库中。
在本公开实施例的一种可能的实现方式中,该鉴权装置100还可以包括:
监测模块,被配置为监测到针对规则库中的第二规则表达式对应的第二规则输入信息的编辑操作。
编辑模块,被配置为响应于编辑操作,对第二规则输入信息进行编辑。
解析模块,被配置为对编辑后的第二规则输入信息进行解析,以生成更新后的第二规则表达式。
更新模块,被配置为利用更新后的第二规则表达式,对规则库中的第二规则表达式进行更新。
在本公开实施例的一种可能的实现方式中,该鉴权装置100还可以包括:
测试模块,被配置为对规则库中的各规则表达式进行回归测试,以生成目标测试数据列表。
获取模块130,还被配置为获取参考测试数据列表,其中,参考测试数据列表是首次或最近一次对规则库中的各规则表达式进行回归测试生成的测试数据列表。
比对模块,被配置为将目标测试数据列表与参考测试数据列表进行比对,确定目标测试数据列表中不同于参考测试数据列表的目标测试数据,以根据目标测试数据确定规则库是否存在异常的规则表达式。
在本公开实施例的一种可能的实现方式中,该鉴权装置100还可以包括:
发送模块,被配置为在根据目标测试数据确定规则库存在异常的规则表达式的情况下,发送提示信息,以提示对异常的规则表达式进行更新。
本公开实施例的鉴权装置,通过服务端接收客户端发送的鉴权请求,其中,鉴权请求是客户端在监测到对当前展示的目标页面中的目标组件的触发操作时,根据该客户端的登录信息,确定该客户端对应的目标角色,并根据目标组件所属的目标业务的业务标识和目标角色生成的;响应于鉴权请求,根据业务标识,获取与业务标识对应的业务属性;从规则库中获取与业务属性匹配的目标规则表达式;根据目标规则表达式,对目标角色和业务属性进行鉴权处理,确定鉴权结果,以根据鉴权结果确定客户端是否具有对目标组件的操作权限。由此,可以实现由服务端对客户端进行鉴权处理,以确定客户端是否具有对页面中的各组件的操作权限,若客户端不具有对组件的操作权限,则无法对组件进行相应操作,可以提升系统的安全性,也就是说,本公开中,可以由服务端对客户端上登录的用户的访问资源进行权限控制,以避免因权限控制缺失或操作不当而引发风险问题,提升系统的安全性。并且,采用与业务属性匹配的规则表达式来进行权限验证,可以适用于任一业务场景,可以提升该方法的适用性。
在示例性实施例中,还提出了一种电子设备。
其中,电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,处理器被配置为执行指令,以实现如前述任一实施例提出的鉴权方法。
作为一种示例,图8是本公开一示例性实施例所示出的电子设备200的结构示意图,如图8所示,上述电子设备200,还可以包括:
存储器210及处理器220,连接不同组件(包括存储器210和处理器220)的总线230,存储器210存储有计算机程序,当处理器220执行所述程序时实现本公开实施例所述的鉴权方法。
总线230表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备200典型地包括多种电子设备可读介质。这些介质可以是任何能够被电子设备200访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器210还可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)240和/或高速缓存存储器250。服务器200可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统260可以用于读写不可移动的、非易失性磁介质(图8未显示,通常称为“硬盘驱动器”)。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线230相连。存储器210可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本公开各实施例的功能。
具有一组(至少一个)程序模块270的程序/实用工具280,可以存储在例如存储器210中,这样的程序模块270包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块270通常执行本公开所描述的实施例中的功能和/或方法。
电子设备200也可以与一个或多个外部设备290(例如键盘、指向设备、显示器291等)通信,还可与一个或者多个使得用户能与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口292进行。并且,电子设备200还可以通过网络适配器293与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器293通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器220通过运行存储在存储器210中的程序,从而执行各种功能应用以及数据处理。
需要说明的是,本实施例的电子设备的实施过程和技术原理参见前述对本公开实施例的鉴权方法的解释说明,此处不再赘述。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器,上述指令可由电子设备的处理器执行以完成上述任一实施例提出的方法。可选地,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现上述任一实施例提出的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (19)
1.一种鉴权方法,其特征在于,所述方法包括:
接收客户端发送的鉴权请求,其中,所述鉴权请求是所述客户端在监测到对当前展示的目标页面中的目标组件的触发操作时,根据所述客户端的登录信息,确定所述客户端对应的目标角色,并根据所述目标组件所属的目标业务的业务标识和所述目标角色生成的;
响应于所述鉴权请求,根据所述业务标识,获取与所述业务标识对应的业务属性;
从规则库中获取与所述业务属性匹配的目标规则表达式;
根据所述目标规则表达式,对所述目标角色和业务属性进行鉴权处理,确定鉴权结果,以根据所述鉴权结果确定所述客户端是否具有对所述目标组件的操作权限。
2.根据权利要求1所述的方法,其特征在于,所述从规则库中获取与所述业务属性匹配的目标规则表达式,包括:
获取所述业务属性对应的类别,从所述规则库中获取与所述类别匹配的规则表达式,作为所述目标规则表达式;
或者,
获取所述业务属性对应的权限名,从所述规则库获取与所述权限名匹配的规则表达式,作为所述目标规则表达式。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标规则表达式,对所述目标角色和业务属性进行鉴权处理,确定鉴权结果,以根据所述鉴权结果确定所述客户端是否具有对所述目标组件的操作权限,包括:
创建用于解析所述目标规则表达式的驱动;
采用所述驱动根据所述目标角色和业务属性,对所述目标规则表达式中的各个参数进行赋值,以得到所述鉴权结果;
当所述鉴权结果满足设定条件时,确定所述客户端具有对所述目标组件的操作权限;
当所述鉴权结果不满足所述设定条件时,确定所述客户端不具有对所述目标组件的操作权限。
4.根据权利要求3所述的方法,其特征在于,所述鉴权请求中还包括所述客户端根据所述登录信息确定的用户属性,所述采用所述驱动根据所述目标角色和业务属性,对所述目标规则表达式中的各个参数进行赋值,以得到所述鉴权结果,包括:
采用所述驱动根据所述目标角色、所述业务属性以及所述用户属性,对目标规则表达式中的各个参数进行赋值,以得到所述鉴权结果。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
获取第一规则输入信息;
对所述第一规则输入信息进行解析,以生成第一规则表达式;
将所述第一规则表达式和所述第一规则输入信息对应添加至所述规则库中。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
监测到针对所述规则库中的第二规则表达式对应的第二规则输入信息的编辑操作;
响应于所述编辑操作,对所述第二规则输入信息进行编辑;
对编辑后的第二规则输入信息进行解析,以生成更新后的第二规则表达式;
利用更新后的第二规则表达式,对所述规则库中的第二规则表达式进行更新。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
对所述规则库中的各规则表达式进行回归测试,以生成目标测试数据列表;
获取参考测试数据列表,其中,所述参考测试数据列表是首次或最近一次对所述规则库中的各规则表达式进行回归测试生成的测试数据列表;
将所述目标测试数据列表与所述参考测试数据列表进行比对,确定所述目标测试数据列表中不同于所述参考测试数据列表的目标测试数据,以根据所述目标测试数据确定所述规则库是否存在异常的规则表达式。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在根据所述目标测试数据确定所述规则库存在异常的规则表达式的情况下,发送提示信息,以提示对所述异常的规则表达式进行更新。
9.一种鉴权装置,其特征在于,所述装置包括:
接收模块,被配置为接收客户端发送的鉴权请求,其中,所述鉴权请求是所述客户端在监测到对当前展示的目标页面中的目标组件的触发操作时,根据所述客户端的登录信息,确定所述客户端对应的目标角色,并根据所述目标组件所属的目标业务的业务标识和所述目标角色生成的;
响应模块,被配置为响应于所述鉴权请求,根据所述业务标识,获取与所述业务标识对应的业务属性;
获取模块,被配置为从规则库中获取与所述业务属性匹配的目标规则表达式;
鉴权模块,被配置为根据所述目标规则表达式,对所述目标角色和业务属性进行鉴权处理,确定鉴权结果,以根据所述鉴权结果确定所述客户端是否具有对所述目标组件的操作权限。
10.根据权利要求9所述的装置,其特征在于,所述获取模块,被配置为:
获取所述业务属性对应的类别,从所述规则库中获取与所述类别匹配的规则表达式,作为所述目标规则表达式;
或者,
获取所述业务属性对应的权限名,从所述规则库获取与所述权限名匹配的规则表达式,作为所述目标规则表达式。
11.根据权利要求9所述的装置,其特征在于,所述鉴权模块,被配置为:
创建用于解析所述目标规则表达式的驱动;
采用所述驱动根据所述目标角色和业务属性,对所述目标规则表达式中的各个参数进行赋值,以得到所述鉴权结果;
当所述鉴权结果满足设定条件时,确定所述客户端具有对所述目标组件的操作权限;
当所述鉴权结果不满足所述设定条件时,确定所述客户端不具有对所述目标组件的操作权限。
12.根据权利要求11所述的装置,其特征在于,所述鉴权请求中还包括所述客户端根据所述登录信息确定的用户属性,所述鉴权模块,被配置为:
采用所述驱动根据所述目标角色、所述业务属性以及所述用户属性,对目标规则表达式中的各个参数进行赋值,以得到所述鉴权结果。
13.根据权利要求9-12中任一项所述的装置,其特征在于,
所述获取模块,还被配置为获取第一规则输入信息;
所述装置,还包括:
生成模块,被配置为对所述第一规则输入信息进行解析,以生成第一规则表达式;
添加模块,被配置为将所述第一规则表达式和所述第一规则输入信息对应添加至所述规则库中。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
监测模块,被配置为监测到针对所述规则库中的第二规则表达式对应的第二规则输入信息的编辑操作;
编辑模块,被配置为响应于所述编辑操作,对所述第二规则输入信息进行编辑;
解析模块,被配置为对编辑后的第二规则输入信息进行解析,以生成更新后的第二规则表达式;
更新模块,被配置为利用更新后的第二规则表达式,对所述规则库中的第二规则表达式进行更新。
15.根据权利要求13或14所述的装置,其特征在于,所述装置还包括:
测试模块,被配置为对所述规则库中的各规则表达式进行回归测试,以生成目标测试数据列表;
所述获取模块,还被配置为获取参考测试数据列表,其中,所述参考测试数据列表是首次或最近一次对所述规则库中的各规则表达式进行回归测试生成的测试数据列表;
比对模块,被配置为将所述目标测试数据列表与所述参考测试数据列表进行比对,确定所述目标测试数据列表中不同于所述参考测试数据列表的目标测试数据,以根据所述目标测试数据确定所述规则库是否存在异常的规则表达式。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:
发送模块,被配置为在根据所述目标测试数据确定所述规则库存在异常的规则表达式的情况下,发送提示信息,以提示对所述异常的规则表达式进行更新。
17.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至8中任一项所述的鉴权方法。
18.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至8中任一项所述的鉴权方法。
19.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8任一项所述的鉴权方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111314714.6A CN114218551A (zh) | 2021-11-08 | 2021-11-08 | 鉴权方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111314714.6A CN114218551A (zh) | 2021-11-08 | 2021-11-08 | 鉴权方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114218551A true CN114218551A (zh) | 2022-03-22 |
Family
ID=80696650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111314714.6A Pending CN114218551A (zh) | 2021-11-08 | 2021-11-08 | 鉴权方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114218551A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115065513A (zh) * | 2022-06-02 | 2022-09-16 | 中国联合网络通信集团有限公司 | 资源访问控制方法、装置及存储介质 |
CN115499452A (zh) * | 2022-11-15 | 2022-12-20 | 四川蜀天信息技术有限公司 | 一种基于next的数据同步方法 |
CN116055153A (zh) * | 2023-01-04 | 2023-05-02 | 浙江网商银行股份有限公司 | 一种防止越权访问的方法、装置和设备 |
-
2021
- 2021-11-08 CN CN202111314714.6A patent/CN114218551A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115065513A (zh) * | 2022-06-02 | 2022-09-16 | 中国联合网络通信集团有限公司 | 资源访问控制方法、装置及存储介质 |
CN115065513B (zh) * | 2022-06-02 | 2023-10-03 | 中国联合网络通信集团有限公司 | 资源访问控制方法、装置及存储介质 |
CN115499452A (zh) * | 2022-11-15 | 2022-12-20 | 四川蜀天信息技术有限公司 | 一种基于next的数据同步方法 |
CN115499452B (zh) * | 2022-11-15 | 2023-02-28 | 四川蜀天信息技术有限公司 | 一种基于next的数据同步方法 |
CN116055153A (zh) * | 2023-01-04 | 2023-05-02 | 浙江网商银行股份有限公司 | 一种防止越权访问的方法、装置和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11627054B1 (en) | Methods and systems to manage data objects in a cloud computing environment | |
US11451529B2 (en) | Security migration in a business intelligence environment | |
US11019068B2 (en) | Quorum-based access management | |
US11190527B2 (en) | Identity verification and login methods, apparatuses, and computer devices | |
US8910048B2 (en) | System and/or method for authentication and/or authorization | |
US10454975B1 (en) | Conditional comptuing resource policies | |
US7529873B2 (en) | Determination of access rights to information technology resources | |
CN114218551A (zh) | 鉴权方法、装置、电子设备和存储介质 | |
US7827598B2 (en) | Grouped access control list actions | |
US9294466B2 (en) | System and/or method for authentication and/or authorization via a network | |
CN108351807B (zh) | 维持对云计算环境中的受限数据的控制的事件管理 | |
US20070079356A1 (en) | System and/or method for class-based authorization | |
US20070079357A1 (en) | System and/or method for role-based authorization | |
US10733238B2 (en) | Script manager for distributed systems | |
US10645087B2 (en) | Centralized authenticating abstraction layer with adaptive assembly line pathways | |
CN113094055A (zh) | 维持对于在部署到云计算环境期间的受限数据的控制 | |
US8869234B2 (en) | System and method for policy based privileged user access management | |
CN112311893B (zh) | 跨区域、业务、系统数据服务中间件及数据验证方法 | |
US20080163335A1 (en) | Method and arrangement for role management | |
US20240160705A1 (en) | Controlling access to computer resources | |
CN113612740A (zh) | 权限管理方法、装置、计算机可读介质及电子设备 | |
CN112149109A (zh) | 模块化权限控制管理方法及系统 | |
CN112487392A (zh) | 一种前端实现管理系统权限控制方法 | |
Sette et al. | Authorization policy federation in heterogeneous multicloud environments | |
US20230370473A1 (en) | Policy scope management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |