数据鉴权方法及装置、数据查询的控制方法及装置与流程

文档序号:31691084发布日期:2022-09-30 23:13阅读:46来源:国知局
1.本说明书实施例涉及计算机
技术领域
:,具体地,涉及数据鉴权方法及装置、数据查询的控制方法及装置。
背景技术
::2.在一些业务系统(例如客户关系管理系统、项目管理系统等)中,控制某某人可以看某数据的一种实现,可称之为数据鉴权。通过数据鉴权,可以有效地确保该业务系统的业务数据的安全性。3.目前,业务系统通常采用较为复杂的业务数据结构,有复杂的数据鉴权需求。现有的数据鉴权方案,一般会针对特定的数据鉴权场景,定制专门适用于该场景的鉴权策略,没有通用的数据鉴权方法。4.因此,迫切需要一种通用的数据鉴权方法。技术实现要素:5.本说明书实施例提供了数据鉴权方法及装置、数据查询的控制方法及装置。6.第一方面,本说明书实施例提供了一种数据鉴权方法,包括:获取目标用户标识和目标对象类别,所述目标对象类别对应至少一个对象标识,所述至少一个对象标识分别对应用户标识,以及该用户标识指示的用户相对于相应对象的用户关联角色;获取针对所述目标对象类别配置的授权角色,所述授权角色包含在所述至少一个对象标识对应的用户关联角色中;从所述至少一个对象标识中确定出目标对象标识,所述目标对象标识满足以下筛选条件:与所述目标用户标识相对应,并且与所述目标用户标识同时对应的用户关联角色属于所述授权角色;其中,所述目标对象标识指示的目标对象的数据,是所述目标用户标识指示的目标用户有权限查看的数据。7.在一些实施例中,所述获取针对所述目标对象类别配置的授权角色,包括:从已存储的授权信息集合中,查找出包括所述目标对象类别的目标授权信息,其中,所述授权信息集合中的授权信息包括对象类别和授权角色;从所述目标授权信息中获取授权角色。8.在一些实施例中,所述从所述至少一个对象标识中确定出目标对象标识,包括:从已存储的关系信息集合中,查找出包括所述目标对象类别、所述目标用户标识和所述授权角色的第一目标关系信息,其中,所述关系信息集合中的关系信息包括对象类别,该对象类别对应的对象标识,该对象标识对应的用户标识,以及该用户标识指示的用户相对于相应对象的用户关联角色;将所述第一目标关系信息中的对象标识确定为目标对象标识。9.在一些实施例中,所述从所述至少一个对象标识中确定出目标对象标识,包括:从已存储的关系信息集合中,查找出包括所述目标对象类别和所述目标用户标识的第二目标关系信息,其中,所述关系信息集合中的关系信息包括对象类别,该对象类别对应的对象标识,该对象标识对应的用户标识,以及该用户标识指示的用户相对于相应对象的用户关联角色;若所述第二目标关系信息中的用户关联角色属于所述授权角色,则将所述第二目标关系信息中的对象标识确定为目标对象标识。10.在一些实施例中,目标数据库中建立有目标数据表,所述目标数据表包括以下字段:对象类别、对象标识、用户标识、用户关联角色,以及所述字段的字段值;以及所述从所述至少一个对象标识中确定出目标对象标识,包括:根据所述目标数据表、所述目标对象类别、所述目标用户标识和所述授权角色,生成用于查询所述目标对象标识的检索式;在所述目标数据库中运行所述检索式,以使得所述目标数据库输出所述目标对象标识。11.在一些实施例中,所述目标数据库包括结构化查询语言sql数据库,所述检索式包括sql查询语句。12.在一些实施例中,在所述获取目标用户标识和目标对象类别之前,所述方法还包括:获取并存储关系信息集合,所述关系信息集合中的关系信息包括对象类别,该对象类别对应的对象标识,该对象标识对应的用户标识,以及该用户标识指示的用户相对于相应对象的用户关联角色;获取并存储授权信息集合,所述授权信息集合中的授权信息包括对象类别和授权角色。13.在一些实施例中,所述存储关系信息集合,包括:在目标数据库中创建目标数据表,并将所述关系信息集合中的关系信息导入所述目标数据表。14.在一些实施例中,所述方法还包括:接收针对所述关系信息集合或所述授权信息集合的编辑请求;根据所述编辑请求,执行相应的编辑操作。15.在一些实施例中,单个对象类别包括以下任一项:客户、项目、投标。16.在一些实施例中,单个用户关联角色包括以下任一项:地方商务经理、架构师、交付工程师、参与人、服务经理、合作伙伴员工、售前项目经理、交付项目经理、行业商务经理。17.在一些实施例中,所述获取目标用户标识和目标对象类别,包括:从目标业务系统接收所述目标用户标识和所述目标对象类别;以及所述方法还包括:将包括所述目标对象标识的鉴权结果发送至所述目标业务系统,所述鉴权结果用于指示所述目标用户具有查看所述目标对象的数据的权限。18.在一些实施例中,所述目标业务系统包括以下任一种系统:项目管理系统、客户关系管理系统、办公自动化系统、项目协作管理系统。19.第二方面,本说明书实施例提供了一种数据查询的控制方法,包括:接收目标用户的数据查询请求,所述数据查询请求至少包括目标用户标识和目标对象类别;向鉴权服务端发送所述目标用户标识和所述目标对象类别,以使得所述鉴权服务端根据所述目标用户标识,所述目标对象类别,以及预先针对所述目标对象类别配置的授权角色,进行数据鉴权,其中,所述目标对象类别对应至少一个对象标识,所述至少一个对象标识分别对应用户标识,以及该用户标识指示的用户相对于相应对象的用户关联角色,所述授权角色包含在所述至少一个对象标识对应的用户关联角色中;响应于接收到所述鉴权服务端返回的包括目标对象标识的鉴权结果,获取所述目标对象标识指示的目标对象的数据,其中,所述目标对象标识包含在所述至少一个对象标识中,所述鉴权结果用于指示所述目标用户具有查看所述目标对象的数据的权限;向所述目标用户提供所获取的所述目标对象的数据。20.第三方面,本说明书实施例提供了一种数据鉴权装置,包括:第一获取单元,被配置成获取目标用户标识和目标对象类别,所述目标对象类别对应至少一个对象标识,所述至少一个对象标识分别对应用户标识,以及该用户标识指示的用户相对于相应对象的用户关联角色;第二获取单元,被配置成获取针对所述目标对象类别配置的授权角色,所述授权角色包含在所述至少一个对象标识对应的用户关联角色中;确定单元,被配置成从所述至少一个对象标识中确定出目标对象标识,所述目标对象标识满足以下筛选条件:与所述目标用户标识相对应,并且与所述目标用户标识同时对应的用户关联角色属于所述授权角色;其中,所述目标对象标识指示的目标对象的数据,是所述目标用户标识指示的目标用户有权限查看的数据。21.第四方面,本说明书实施例提供了一种数据查询的控制装置,包括:接收单元,被配置成接收目标用户的数据查询请求,所述数据查询请求至少包括目标用户标识和目标对象类别;第一发送单元,被配置成向鉴权服务端发送所述目标用户标识和所述目标对象类别,以使得所述鉴权服务端根据所述目标用户标识,所述目标对象类别,以及预先针对所述目标对象类别配置的授权角色,进行数据鉴权,其中,所述目标对象类别对应至少一个对象标识,所述至少一个对象标识分别对应用户标识,以及该用户标识指示的用户相对于相应对象的用户关联角色,所述授权角色包含在所述至少一个对象标识对应的用户关联角色中;获取单元,被配置成响应于接收到所述鉴权服务端返回的包括目标对象标识的鉴权结果,获取所述目标对象标识指示的目标对象的数据,其中,所述目标对象标识包含在所述至少一个对象标识中,所述鉴权结果用于指示所述目标用户具有查看所述目标对象的数据的权限;第二发送单元,被配置成向所述目标用户提供所获取的所述目标对象的数据。22.第五方面,本说明书实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中,当该计算机程序在计算机中执行时,令该计算机执行如第一方面和第二方面中任一实现方式描述的方法。23.第六方面,本说明书实施例提供了一种计算设备,包括存储器和处理器,其中,该存储器中存储有可执行代码,该处理器执行该可执行代码时,实现如第一方面和第二方面中任一实现方式描述的方法。24.第七方面,本说明书实施例提供了一种计算机程序,其中,当该计算机程序在计算机中执行时,令该计算机执行如第一方面和第二方面中任一实现方式描述的方法。25.本说明书的上述实施例提供的数据鉴权方法及装置,通过获取目标用户标识和目标对象类别,而后获取针对目标对象类别配置的授权角色,以便从目标对象类别对应的上述至少一个对象标识中确定出满足上述筛选条件的目标对象标识,其中,目标对象标识指示的目标对象的数据,是目标用户标识指示的目标用户有权限查看的数据。26.由此,通过将对象和用户之间的关系抽象成用户关联角色,并预先建立对象类别、对象标识、用户标识和用户关联角色之间的对应关系,以及为对象类别配置授权角色,可以基于授权给对象类别的用户关联角色进行鉴权的控制。此种数据鉴权方案,在鉴权逻辑的执行场景不用再去考虑业务系统数据的复杂度及数据变化,能根据简单的鉴权依据数据对任意对象进行鉴权支持,是一种通用且高效的数据鉴权方案。附图说明27.为了更清楚地说明本说明书披露的多个实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书披露的多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。28.图1是本说明书的一些实施例可以应用于其中的一个示例性系统架构图;29.图2是根据本说明书的数据鉴权方法的一个实施例的流程图;30.图3是根据本说明书的数据查询的控制方法的一个示意图;31.图4是根据本说明书的数据查询的控制方法的一个示意图;32.图5是根据本说明书的数据鉴权装置的一个结构示意图;33.图6是根据本说明书的数据查询的控制装置的一个结构示意图。具体实施方式34.下面结合附图和实施例对本说明书作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。35.需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。在不冲突的情况下,本说明书中的实施例及实施例中的特征可以相互组合。36.如前所述,业务系统通常采用较为复杂的业务数据结构,有复杂的数据鉴权需求。现有的数据鉴权方案,一般会针对特定的数据鉴权场景,定制专门适用于该场景的鉴权策略,没有通用的数据鉴权方法。37.基于此,本说明书的一些实施例提供了数据鉴权方法,该数据鉴权方法能实现对任意对象的鉴权支持,是一种通用且高效的数据鉴权方法。具体地,图1示出了适用于这些实施例的示例性系统架构图。38.如图1所示,系统架构可以包括目标业务系统和鉴权服务端。其中,鉴权服务端可以包含在目标业务系统中,也可以独立于目标业务系统,在此不做具体限定。39.目标业务系统可以是任何有数据信息查看权限差异化控制的系统。进一步地,目标业务系统可以包括但不限于信息管理系统、办公自动化系统或医疗系统。该信息管理系统例如可以包括项目管理系统、客户关系管理系统、项目协作管理系统或教务管理系统等。项目协作管理系统例如可以包括建筑项目协作管理系统或环境工程项目协作管理系统等。40.其中,目标业务系统中通常设置有一个或多个业务数据结构。业务数据结构可以用于描述对象和对象下的数据之间的关系。进一步地,业务数据结构可以用于描述对象类别、对象和对象下的数据之间的关系。41.单个对象例如可以包括,具体的客户(例如**市软件开发公司、**房屋租赁公司等),具体的项目(例如**软件开发项目、**投资项目、**建筑项目、**环境工程项目等),具体的投标(例如**建筑投标、**销售投标等),具体的院系(例如商学院、软件学院等),具体的课程(例如数学、英语等)或者具体的科室(例如内科、外科等),等等。例如,在项目管理系统和/或客户关系管理系统的业务数据结构中,一般会包括具体的客户,具体的项目,和/或具体的投标等对象。对象类别可以是对同类对象的统称。单个对象类别例如可以包括客户、项目、投标、院系、课程或科室等。42.另外,目标业务系统中通常还设置有对象和用户的关系记录,该关系记录用于描述该系统中的对象和用户之间的关系。例如,对于对象“**市软件开发公司”,若用户a受雇于该公司,那么该公司和用户a之间的关系例如可以为“员工”,该“员工”可以用于表示用户a是该公司的员工。43.为了能够实现通用的数据鉴权方法,在鉴权策略准备阶段,可以先自动地或者采用人为方式,依据目标业务系统的业务数据结构,申明对象类别,以及定义对象类别上支持的用户关联角色。44.如以下表1所示,其示出了申明的多个对象类别。45.表146.对象类别客户项目…投标47.需要指出,用户关联角色一般不同于现有的数据鉴权策略中的角色(例如对象拥有者、对象拥有者所属组织的管理员等)。本说明书中的用户关联角色,是一种基于角色的引申,可以用于描述对象和用户之间的关系的种类。应该理解,用户关联角色可以根据对象和用户之间的关系而设定。例如,对于对象“**建筑投标”,若用户a参与了该投标,则用户a相对于该投标的用户关联角色可以定义为“参与人”。再例如,对于对象“**软件开发项目”,若用户a是该项目的售前负责人,则用户a相对于该项目的用户关联角色可以定义为“售前项目经理”。48.在本说明书中,单个用户关联角色例如可以包括地方商务经理,架构师,交付工程师,参与人,服务经理,合作伙伴员工,售前项目经理,交付项目经理,行业商务经理,学院院长,讲师,科室主任或实习医生等,在此不做具体限定。49.如以下表2所示,其示出了多个对象类别上分别支持的用户关联角色。50.表251.对象类别用户关联角色客户地方商务经理客户架构师项目交付工程师……投标参与人52.在定义对象类别上支持的用户关联角色后,可以接着记录对象-用户-角色关系,进而得到关系信息集合,并存储关系信息集合。其中,该关系信息集合中的每条关系信息可以包括对象类别,该对象类别下某具体对象的对象标识,与该具体对象有关的具体用户的用户标识,以及该具体用户相对于相应具体对象的用户关联角色。53.需要指出,可以将目标业务系统中所有对象和用户的关系记录(例如现在逻辑中需要使用的和未来可能用到的关系),通过同步或者异步的方式加工成如前所述的关系信息集合。其中,每条关系信息可以实现为一条行记录。54.如以下表3所示,其中记录有多条上述关系信息。55.表356.对象类别用户关联角色对象标识用户标识客户服务经理cid344e980客户地方商务经理cid456e980项目交付工程师xm455e214项目合作伙伴员工xm908e907投标参与人tb454e671项目售前项目经理xm847e548客户行业商务经理kh456e456…………项目交付项目经理xm345e566757.另外,在定义对象类别上支持的用户关联角色后,还可以申明授权,即针对已申明的对象类别,根据目标业务系统的实际鉴权需求,进一步申明授权给该对象类别的用户关联角色(下文中称为授权角色),进而可以得到授权信息集合。其中,该授权信息集合中的每条授权信息可以包括对象类别和授权角色。之后,可以对授权信息集合进行存储。58.如以下表4所示,其示出了多条授权信息,其中,每条授权信息包括对象类别和授权角色。59.表460.对象类别授权角色客户服务经理客户行业商务经理项目合作伙伴员工投标参与人项目交付项目经理……项目交付工程师61.需要指出,上述表1-表4分别所示的内容仅是示例性内容,不对本说明书的方案做具体限定。62.在记录对象-用户-角色关系,以及申明授权后,可以将所得的关系信息集合和授权信息集合应用于数据鉴权场景,作为鉴权服务端的鉴权策略。63.以上介绍了鉴权策略的生成过程,应该理解,实践中可以采用不同的生成过程,只要确保生成的鉴权策略能适用于本说明书提供的数据鉴权方案即可。64.接着,在具体的数据鉴权场景中,鉴权服务端可以获取目标用户标识和目标对象类别。进一步地,若鉴权服务端独立于目标业务系统,鉴权服务端例如可以如图1中所示,接收目标业务系统发送的目标用户标识和目标对象类别。实践中,目标用户标识和目标对象类别,可以是目标业务系统响应于接收到目标用户的数据查询请求而发送的。其中,该数据查询请求至少包括目标用户标识和目标对象类别,目标用户标识是目标用户的用户标识。65.之后,鉴权服务端可以依据鉴权策略(例如如前所述的授权信息集合),获取针对目标对象类别配置的授权角色。而后,鉴权服务端可以依据与目标对象类别有关的鉴权策略(例如如前所述的关系信息集合中的包括目标对象类别的关系信息),以及目标用户标识和所获取的授权角色,从目标对象类别对应的各个对象标识中确定出目标对象标识。其中,该目标对象标识指示的目标对象的数据,是目标用户有权限查看的数据。66.此外,若目标用户标识和目标对象类别是从目标业务系统接收的,则在鉴权结束后,鉴权服务端还可以如图1中所示,将包括目标对象标识的鉴权结果发送至目标业务系统,使得目标业务系统根据该鉴权结果,获知目标用户具有查看目标对象的数据的权限,进而获取目标对象的数据,并向目标用户提供该数据。67.下面,结合具体的实施例,描述上述方法的具体实施步骤。68.参看图2,其示出了根据本说明书的数据鉴权方法的一个实施例的流程200。该方法的执行主体可以为图1所示的鉴权服务端。该方法包括以下步骤:69.步骤202,获取目标用户标识和目标对象类别,目标对象类别对应至少一个对象标识,该至少一个对象标识分别对应用户标识,以及该用户标识指示的用户相对于相应对象的用户关联角色;70.步骤204,获取针对目标对象类别配置的授权角色,授权角色包含在上述至少一个对象标识对应的用户关联角色中;71.步骤206,从上述至少一个对象标识中确定出目标对象标识,目标对象标识满足以下筛选条件:与目标用户标识相对应,并且与目标用户标识同时对应的用户关联角色属于授权角色。72.下面,对以上各步骤做进一步说明。73.在步骤202中,鉴权服务端可以实时地获取目标用户标识和目标对象类别。其中,目标对象类别可以是目标用户标识指示的目标用户想要查看的对象类别。74.作为一种实现方式,目标业务系统可以包括客户端,以及对该客户端提供支持的后台服务端。若鉴权服务端位于目标业务系统内,且与该后台服务端是同一个服务端,则鉴权服务端可以接收目标用户通过客户端发送的数据查询请求,该数据查询请求至少包括目标用户标识和目标对象类别,鉴权服务端可以从该数据查询请求中获取目标用户标识和目标对象类别。75.作为另一种实现方式,若鉴权服务端独立于目标业务系统,则鉴权服务端可以从目标业务系统接收目标用户标识和目标对象类别。该目标用户标识和目标对象类别,可以是目标业务系统响应于接收到上述数据查询请求而发送的。具体地,目标业务系统中的后台服务端,可以接收目标用户通过客户端发送的上述数据查询请求,以及向鉴权服务端发送目标用户标识和目标对象类别。76.实践中,上述至少一个对象标识中的对象标识指示的对象,是目标对象类别下的对象。作为示例,若目标对象类别为“客户”,其下的各个对象例如可以包括“**市软件开发公司”和/或“**房屋租赁公司”等等。若目标对象类别为“项目”,其下的各个对象例如可以包括“**软件开发项目”和/或“**投资项目”等等。应该理解,对象类别和其下的对象,与具体的系统业务数据有关,在此不做具体限定。77.另外,上述至少一个对象标识中的每个对象标识,可以对应一个或多个用户标识,以及该用户标识指示的用户相对于相应对象的用户关联角色。78.需要说明的是,关于对象类别、对象、用户关联角色的详细介绍,可参考前文中的相关说明,在此不再赘述。79.接着,在步骤204中,鉴权服务端可以获取针对目标对象类别配置的授权角色。其中,授权角色包含在上述至少一个对象标识对应的用户关联角色中。80.具体地,若鉴权服务端本地存储有如前所述的授权信息集合,则鉴权服务端可以从已存储的授权信息集合中,查找出包括目标对象类别的目标授权信息,并从目标授权信息中获取授权角色。需要指出,目标对象类别可以配置有至少一个授权角色,鉴权服务端可以获取到该至少一个授权角色。81.假设授权信息集合如前文中的表4所示,若目标对象类别为“客户”,则可以在授权信息集合中查找出两条包括“客户”的目标授权信息,并从这两条目标授权信息中获取授权角色“服务经理”、“行业商务经理”。82.可选地,若授权信息集合以数据表的形式存储在目标数据库中,则鉴权服务端可以从目标数据库中获取针对目标对象类别配置的授权角色。其中,目标数据库可以是任何能适用于本说明书提供的方案的数据库,例如sql(structuredquerylanguage,结构化查询语言)数据库或oracle数据库等,在此不做具体限定。83.接着,在步骤206中,鉴权服务端可以从上述至少一个对象标识中确定出目标对象标识,目标对象标识满足以下筛选条件:与目标用户标识相对应,并且与目标用户标识同时对应的用户关联角色属于授权角色。其中,目标对象标识指示的目标对象的数据,是目标用户标识指示的目标用户有权限查看的数据。84.具体地,若鉴权服务端本地存储有如前所述的关系信息集合,则鉴权服务端可以从已存储的关系信息集合中,查找出包括目标对象类别、目标用户标识和所获取的授权角色的第一目标关系信息。之后鉴权服务端可以将第一目标关系信息中的对象标识确定为目标对象标识。85.作为示例,假设关系信息集合如前文中的表3所示,若目标对象类别为“客户”,授权角色包括“服务经理”、“行业商务经理”,目标用户标识为“e980”,则可以从关系信息集合中,查找出一条包括“客户”、“e980”和“服务经理”的第一目标关系信息。接着,可以将该第一目标关系信息中的对象标识“cid344”确定为目标对象标识。该目标对象标识指示的目标对象是目标用户有权限查看的对象,也就是说,目标用户具有查看该目标对象的数据的权限。86.可选地,若鉴权服务端本地存储有如前所述的关系信息集合,则鉴权服务端可以从已存储的关系信息集合中,查找出包括目标对象类别和目标用户标识的第二目标关系信息,若第二目标关系信息中的用户关联角色属于所获取的授权角色,则可以将第二目标关系信息中的对象标识确定为目标对象标识。87.作为示例,假设关系信息集合如前文中的表3所示,若目标对象类别为“客户”,授权角色包括“服务经理”、“行业商务经理”,目标用户标识为“e980”,则可以先从关系信息集合中查找出两条分别包括“客户”和“e980”的第二目标关系信息。其中,这两条第二目标关系信息中,一条第二目标关系信息m1还包括用户关联角色“服务经理”和对象标识“cid344”,另一条第二目标关系信息m2还包括用户关联角色“地方商务经理”和对象标识“cid456”。通过将这两条第二目标关系信息中的用户关联角色分别与授权角色“服务经理”、“行业商务经理”进行比较,可以确定第二目标关系信息m1中的“服务经理”属于授权角色,而第二目标关系信息m2中的“地方商务经理”并不属于授权角色。因此,可以将第二目标关系信息m1中的对象标识“cid344”确定为目标对象标识。88.可选地,若关系信息集合以数据表的形式存储在目标数据库中,则鉴权服务端可以从目标数据库中获取目标对象标识。89.具体地,目标数据库中可以建立有目标数据表,关系信息集合已导入目标数据表中。其中,目标数据表可以包括以下字段:对象类别、对象标识、用户标识、用户关联角色,以及各个字段的字段值。鉴权服务端可以根据目标数据表、目标对象类别、目标用户标识和所获取的授权角色,生成用于查询目标对象标识的检索式。之后,鉴权服务端可以在目标数据库中运行检索式,以使得目标数据库输出目标对象标识。90.作为示例,假设目标数据库为sql数据库,目标数据表的表名称为“table1”,对象类别字段的字段名为“objecttype”,对象标识字段的字段名为“entityid”,用户标识字段的字段名为“userid”,用户关联角色字段的字段名为“role”,目标用户标识为“e980”,目标对象类别为“客户”,所获取的授权角色包括“服务经理”、“行业商务经理”,鉴权服务端可以生成以下sql查询语句:91.selectentityidfromtable1whereobjecttype='客户'anduserid='e980'androlein('服务经理','行业商务经理')。92.其中,上述sql查询语句为select语句。select语句是现有技术中广泛使用的一种语句,关于select语句中的关键字“select”、“from”、“where”、“and”、“in”的含义和用途,可参考现有技术中的相关说明,在此不再赘述。93.本实施例提供的数据鉴权方法,通过将对象和用户之间的关系抽象成用户关联角色,并预先建立对象类别、对象标识、用户标识和用户关联角色之间的对应关系,以及为对象类别配置授权角色,可以基于授权给对象类别的用户关联角色进行鉴权的控制。此种数据鉴权方案,能屏蔽复杂业务数据结构中的差异,统一鉴权控制的数据依据,在具体的鉴权场景,能将复杂的业务数据的使用前置到关系数据的加工上。因而,此种数据鉴权方案,在鉴权逻辑的执行场景不用再去考虑业务系统数据的复杂度及数据变化,能根据简单的鉴权依据数据对任意对象进行鉴权支持,是一种通用且高效的数据鉴权方案。94.另外,用户和不同的对象之间可能有不同的关系,本实施例提供的数据鉴权方法,通过根据用户和对象之间的关系而为用户设置用户关联角色,以及通过基于授权给对象类别的用户关联角色进行鉴权的控制,实现了针对用户的区别控制能力。此外,本实施例提供的数据鉴权方法,可以控制用户查看业务数据列表中的目标对象类别的某些行数据,实现了一种基于行角色(区别于全局角色)的鉴权控制能力。95.在一些实施例中,若目标用户标识和目标对象类别是鉴权服务端从上述数据查询请求中获取的,则在步骤206之后,鉴权服务端可以获取目标对象的数据,并将该数据返回给目标用户。其中,鉴权服务端可以从特定存储位置获取目标对象的数据。该特定存储位置可以根据实际业务需求配置,在此不做具体限定。96.在一些实施例中,若在步骤206中未确定出目标对象标识,鉴权服务端可以输出用于指示目标用户没有查看目标对象类别的权限的鉴权结果。例如,在目标用户标识和目标对象类别是鉴权服务端从上述数据查询请求中获取的情况下,鉴权服务端可以将该鉴权结果输出给目标用户。在目标用户标识和目标对象类别是鉴权服务端从目标业务系统接收的情况下,鉴权服务端可以将该鉴权结果发送至目标业务系统。97.在一些实施例中,若目标用户标识和目标对象类别是鉴权服务端从目标业务系统接收的,则在确定出目标对象标识后,鉴权服务端可以将包括目标对象标识的鉴权结果发送至目标业务系统。进一步地,可以将该鉴权结果发送至目标业务系统中的后台服务端。其中,该鉴权结果用于指示目标用户具有查看目标对象的数据的权限。98.在一些实施例中,在步骤202之前,鉴权服务端可以获取并存储如前所述的关系信息集合,以及获取并存储如前所述的授权信息集合。其中,关系信息集合和授权信息集合可以是人为配置并上传至鉴权服务端的,也可以是鉴权服务端自动生成的,在此不做具体限定。99.在一些实施例中,鉴权服务端在获取到关系信息集合后,可以在目标数据库中创建目标数据表,并将关系信息集合中的关系信息导入目标数据表。100.在一些实施例中,鉴权服务端可以接收针对关系信息集合或授权信息集合的编辑请求,并根据编辑请求,执行相应的编辑操作。其中,编辑请求可以包括,信息添加请求,信息删除请求,和/或信息修改请求等,在此不做具体限定。101.作为示例,若接收到关系信息添加请求,则可以根据该请求,在关系信息集合中添加新的关系信息。若接收到关系信息删除请求,则可以根据该删除请求,将待删除的关系信息从关系信息集合中移除。若接收到关系信息修改请求,则可以根据该请求,对待修改的关系信息进行相应的修改,例如修改用户关联角色等。102.需要说明的是,通过支持对关系信息集合和授权信息集合的编辑,可以实现对对象类别、对象和用户关联角色的扩展。应该理解,本说明书提供的数据鉴权方案,可以高度复用及快速扩展。103.下面,以鉴权服务端独立于目标业务系统为例,结合鉴权服务端和目标业务系统,进一步介绍前文中描述的数据鉴权方案在业务场景中的应用。104.如图3所示,其是根据本说明书的数据查询的控制方法的一个示意图。105.其中,数据查询的控制方法包括以下步骤:106.步骤302,目标业务系统接收目标用户的数据查询请求,数据查询请求至少包括目标用户标识和目标对象类别;107.步骤304,目标业务系统向鉴权服务端发送目标用户标识和目标对象类别;108.步骤306,鉴权服务端获取针对目标对象类别配置的授权角色,其中,目标对象类别对应至少一个对象标识,该至少一个对象标识分别对应用户标识,以及该用户标识指示的用户相对于相应对象的用户关联角色,授权角色包含在该至少一个对象标识对应的用户关联角色中;109.步骤308,鉴权服务端从上述至少一个对象标识中确定出目标对象标识,目标对象标识满足以下筛选条件:与目标用户标识相对应,并且与目标用户标识同时对应的用户关联角色属于授权角色;110.步骤310,鉴权服务端将包括目标对象标识的鉴权结果发送至目标业务系统;111.步骤312,目标业务系统响应于接收到鉴权服务端返回的包括目标对象标识的鉴权结果,获取目标对象的数据;112.步骤314,目标业务系统向目标用户提供所获取的目标对象的数据。113.关于步骤302-310的详细解释,可参考前文中的相关说明,在此不再赘述。114.关于步骤312、314,目标业务系统可以通过其包括的后台服务端,从特定存储位置获取目标对象的数据。接着,目标业务系统可以通过该后台服务端,将所获取的目标对象的数据发送至目标用户使用的客户端。由此,客户端可以向目标用户展示所接收的目标对象的数据。115.以目标业务系统包括客户关系管理系统,客户关系管理系统包括后台服务端和目标用户使用的客户端c1为例,基于图3所示的内容,进一步介绍数据查询的控制方法在客户关系管理系统中的应用。116.如图4所示,当目标用户想要查看目标对象类别“客户”下的数据时,可以在客户端c1中执行特定的操作,以提交数据查询请求,其中包括目标用户的目标用户标识“e980”和目标对象类别“客户”。之后,客户端c1可以向后台服务端发送该数据查询请求。接着,后台服务端可以将目标用户标识“e980”和目标对象类别“客户”发送至鉴权服务端,以使得鉴权服务端执行相应的数据鉴权操作。这里,假设鉴权服务端通过执行图2对应的实施例描述的数据鉴权方法,从目标对象类别“客户”对应的至少一个对象标识中确定出目标对象标识“cid344”,鉴权服务端可以将包括目标对象标识“cid344”的鉴权结果发送至后台服务端。后台服务端可以响应于该鉴权结果,从特定存储位置获取目标对象标识“cid344”指示的目标对象的数据。而后,后台服务端可以将所获取的目标对象的数据发送至客户端c1。然后,客户端c1可以向目标用户展示查询结果界面,该界面上显示有目标对象的数据。117.在一些实施例中,若目标业务系统从鉴权服务端接收到用于指示目标用户没有查看目标对象类别的权限的鉴权结果,则目标业务系统可以将鉴权结果提供给目标用户,或者目标业务系统可以生成用于指示禁止查询的提示信息,并将该提示信息提供给目标用户。118.图3对应的实施例提供的数据查询的控制方法,可以使得目标业务系统利用鉴权服务端针对用户的区别控制能力,实现对数据查询的有效控制,并且可以确保目标业务系统的业务数据的安全性。119.进一步参考图5,作为对以上一些图所示方法的实现,本说明书提供了一种数据鉴权装置的一个实施例,该装置可以应用于如图1所示的鉴权服务端。120.如图5所示,本实施例的数据鉴权装置500包括:第一获取单元501、第二获取单元502、确定单元503和生成单元504。其中,第一获取单元501被配置成获取目标用户标识和目标对象类别,目标对象类别对应至少一个对象标识,该至少一个对象标识分别对应用户标识,以及该用户标识指示的用户相对于相应对象的用户关联角色;第二获取单元502被配置成获取针对目标对象类别配置的授权角色,授权角色包含在该至少一个对象标识对应的用户关联角色中;确定单元503被配置成从该至少一个对象标识中确定出目标对象标识,目标对象标识满足以下筛选条件:与目标用户标识相对应,并且与目标用户标识同时对应的用户关联角色属于授权角色;其中,目标对象标识指示的目标对象的数据,是目标用户标识指示的目标用户有权限查看的数据。121.可选地,第二获取单元502可以进一步被配置成:从已存储的授权信息集合中,查找出包括目标对象类别的目标授权信息,其中,授权信息集合中的授权信息包括对象类别和授权角色;从目标授权信息中获取授权角色。122.可选地,确定单元503可以进一步被配置成:从已存储的关系信息集合中,查找出包括目标对象类别、目标用户标识和上述授权角色的第一目标关系信息,其中,关系信息集合中的关系信息包括对象类别,该对象类别对应的对象标识,该对象标识对应的用户标识,以及该用户标识指示的用户相对于相应对象的用户关联角色;将第一目标关系信息中的对象标识确定为目标对象标识。123.可选地,确定单元503可以进一步被配置成:从已存储的关系信息集合中,查找出包括目标对象类别和目标用户标识的第二目标关系信息,其中,关系信息集合中的关系信息包括对象类别,该对象类别对应的对象标识,该对象标识对应的用户标识,以及该用户标识指示的用户相对于相应对象的用户关联角色;若第二目标关系信息中的用户关联角色属于上述授权角色,则将第二目标关系信息中的对象标识确定为目标对象标识。124.可选地,目标数据库中建立有目标数据表,目标数据表包括以下字段:对象类别、对象标识、用户标识、用户关联角色,以及该字段的字段值;以及确定单元503可以进一步被配置成:根据目标数据表、目标对象类别、目标用户标识和授权角色,生成用于查询目标对象标识的检索式;在目标数据库中运行检索式,以使得目标数据库输出目标对象标识。125.可选地,目标数据库包括结构化查询语言sql数据库,检索式包括sql查询语句。126.可选地,上述装置500还可以包括:第三获取单元(图中未示出),被配置成获取并存储关系信息集合,关系信息集合中的关系信息包括对象类别,该对象类别对应的对象标识,该对象标识对应的用户标识,以及该用户标识指示的用户相对于相应对象的用户关联角色;第四获取单元(图中未示出),被配置成获取并存储授权信息集合,授权信息集合中的授权信息包括对象类别和授权角色。127.可选地,第三获取单元可以进一步被配置成:在目标数据库中创建目标数据表,并将关系信息集合中的关系信息导入目标数据表。128.可选地,上述装置500还可以包括:编辑单元(图中未示出),被配置成接收针对关系信息集合或授权信息集合的编辑请求;根据编辑请求,执行相应的编辑操作。129.可选地,单个对象类别可以包括客户、项目或投标等。130.可选地,单个用户关联角色可以包括地方商务经理、架构师、交付工程师、参与人、服务经理、合作伙伴员工、售前项目经理、交付项目经理或行业商务经理等。131.可选地,第一获取单元501可以进一步被配置成:从目标业务系统接收目标用户标识和目标对象类别;以及上述装置500还可以包括:发送单元(图中未示出),被配置成将包括目标对象标识的鉴权结果发送至目标业务系统,该鉴权结果用于指示目标用户具有查看目标对象的数据的权限。132.可选地,目标业务系统可以包括项目管理系统、客户关系管理系统、办公自动化系统或项目协作管理系统等。133.进一步参考图6,作为对以上一些图所示方法的实现,本说明书提供了一种数据查询的控制装置的一个实施例,该装置可以应用于如图1所示的目标业务系统。134.如图6所示,本实施例的数据查询的控制装置600包括:接收单元601、第一发送单元602、获取单元603和第二发送单元604。其中,接收单元601被配置成接收目标用户的数据查询请求,数据查询请求至少包括目标用户标识和目标对象类别;第一发送单元602被配置成向鉴权服务端发送目标用户标识和目标对象类别,以使得鉴权服务端根据目标用户标识,目标对象类别,以及预先针对目标对象类别配置的授权角色,进行数据鉴权,其中,目标对象类别对应至少一个对象标识,该至少一个对象标识分别对应用户标识,以及该用户标识指示的用户相对于相应对象的用户关联角色,授权角色包含在该至少一个对象标识对应的用户关联角色中;获取单元603被配置成响应于接收到鉴权服务端返回的包括目标对象标识的鉴权结果,获取目标对象标识指示的目标对象的数据,其中,目标对象标识包含在该至少一个对象标识中,鉴权结果用于指示目标用户具有查看目标对象的数据的权限;第二发送单元604被配置成向目标用户提供所获取的目标对象的数据。135.在图5、图6分别对应的实施例中,各单元的具体处理及其带来的技术效果可分别参考前文中的相关说明,在此不再赘述。136.本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,当该计算机程序在计算机中执行时,令计算机执行以上各方法实施例分别描述的方法。137.本说明书实施例还提供了一种计算设备,包括存储器和处理器,其中,该存储器中存储有可执行代码,该处理器执行该可执行代码时,实现以上各方法实施例分别描述的方法。138.本说明书实施例还提供了一种计算机程序,其中,当该计算机程序在计算机中执行时,令计算机执行以上各方法实施例分别描述的方法。139.本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书披露的多个实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。140.在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。141.以上所述的具体实施方式,对本说明书披露的多个实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书披露的多个实施例的具体实施方式而已,并不用于限定本说明书披露的多个实施例的保护范围,凡在本说明书披露的多个实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书披露的多个实施例的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1