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

一种权限管理方法、认证方法及装置

文献发布时间:2023-06-19 16:04:54



技术领域

本发明涉及自动程序设计技术领域,尤其涉及一种权限管理方法、认证方法及装置。

背景技术

现有业务系统的用户权限管理,是基于用户-机构-岗位-菜单的层级为用户配置权限,且所有用户、权限信息按照所属的业务中心(通常为市级机构)的维度相互隔离,各业务中心之间无直接的关联。同时,业务系统的登录认证集成Spring Security框架,用户通过在登录页面输入用户名和密码的方式进行登录。

但随着业务系统的推广,各地业务中心的管理模式日益多样,有的以不同区之间独立管理,有的市级统管,现有方案无法准确隔离数据;另外,业务系统需要与其他系统(比如统计分析系统)联合推广,且需要与多渠道(比如数字房产项目、小程序)融合对接,兼容多种认证方式。

基于上述需求,亟需一种能够兼容各地业务中心的管理模式,满足业务系统对用户权限管理要求,能够方便的拓展对接不同的登录认证渠道,并满足业务系统与其他系统联合推广和融合对接需求的方案。

发明内容

有鉴于此,本发明实施例提供一种权限管理方法、认证方法及装置,该方法通过构建机构树,在机构树上配置各机构的数据权限,并在机构树的相应机构上为用户配置角色信息,进而通过该角色信息关联的菜单权限来控制用户的权限范围,实现了一套基于机构-用户-角色-菜单模式的权限控制,兼容各地市对业务交易的不同管理模式,满足业务需求。

为实现上述目的,根据本发明实施例的一个方面,提供了一种权限管理方法。

本发明实施例的一种权限管理方法,包括:根据目标机构所隶属的上级机构,构建机构树;其中,所述机构树包括由完成业务交易所需的机构抽象形成的多个节点以及所述节点的数据权限,所述多个节点包括所述目标机构抽象形成的目标节点;根据所述目标机构的用户信息,在所述机构树的目标节点下添加相应的用户节点,为所述用户节点配置角色信息,确定所述角色信息具有访问权限的第一资源信息;根据所述目标节点的数据权限,确定所述目标节点具有访问权限的第二资源信息,将所述第一资源信息和所述第二资源信息求交集,得到所述用户节点的数据权限。

可选地,所述根据目标机构所隶属的上级机构,构建机构树,包括:根据目标机构所在地的管理模式,对预构建的初始机构树进行调整,得到中间机构树;其中,所述初始机构树基于行政区划得到;以所述目标机构所隶属的上级机构对应节点作为所述目标节点的父节点,将所述目标节点添加到所述中间机构树,为所述目标节点配置数据权限,得到最终的机构树。

可选地,所述确定所述角色信息具有访问权限的第一资源信息,包括:根据所述角色信息的角色编号,查询角色资源关联表,得到所述角色信息具有访问权限的第一菜单节点信息;其中,所述角色资源关联表记录所述角色编号和所述第一菜单节点信息的第一菜单节点编号的关联关系;根据所述第一菜单节点编号,查询功能节点信息表,得到归属于相应菜单节点的第一功能节点信息;其中,所述功能节点信息表记录菜单页面的功能节点信息;将所述第一菜单节点信息和所述第一功能节点信息作为所述角色信息具有访问权限的第一资源信息。

可选地,所述数据权限包括数据权限编码;所述根据所述目标节点的数据权限,确定所述目标节点具有访问权限的第二资源信息,包括:根据所述目标节点的数据权限编码,查询机构菜单关联表,得到所述目标节点具有访问权限的第二菜单节点信息;其中,所述机构菜单关联表记录所述数据权限编码和所述第二菜单节点信息的第二菜单节点编号的关联关系;根据所述第二菜单节点编号,查询功能节点信息表,得到归属于相应菜单节点的第二功能节点信息;其中,所述功能节点信息表记录菜单页面的功能节点信息;将所述第二菜单节点信息和所述第二功能节点信息作为所述目标节点具有访问权限的第二资源信息。

可选地,所述方法还包括:将完成业务交易所需的机构划分为多种机构类型;其中,所述机构类型包括对所述业务交易的业务数据进行汇总上报的监管机构、作为所述业务交易的承办主体的中心机构、具体承办所述业务交易的内部机构和通过渠道端接入的外部机构;将所述中心机构对应的节点挂载于所述监管机构对应的节点下,将所述内部机构对应的节点挂载于所述中心机构对应的节点下,将所述外部机构对应的节点挂载于所述中心机构对应的节点下;根据所述机构的机构类型,为各所述节点分别配置数据权限,得到所述初始机构树。

可选地,所述管理模式包括市级统管;所述根据目标机构所在地的管理模式,对预构建的初始机构树进行调整,得到中间机构树,包括:在目标机构所在地的管理模式为市级统管的情况下,将承办所述业务交易的市级部门作为中心机构,将所述市级部门对应节点的数据权限配置为本市范围;将承办所述业务交易的区县部门作为内部机构,将所述区县部门对应节点的数据权限配置为区县范围;将通过渠道端接入的接入方作为外部机构,将所述接入方对应节点的数据权限配置为所述接入方的管理范围。

可选地,所述管理模式包括区中心自治;所述根据目标机构所在地的管理模式,对预构建的初始机构树进行调整,得到中间机构树,包括:在目标机构所在地的管理模式为区中心自治的情况下,将承办所述业务交易的区县部门作为中心机构,将所述区县部门对应节点的数据权限配置为区县范围;将通过渠道端接入的接入方作为外部机构,将所述接入方对应节点的数据权限配置为所述接入方的管理范围。

为实现上述目的,根据本发明实施例的又一个方面,提供了一种基于权限管理的认证方法。

本发明实施例的一种基于权限管理的认证方法,包括:接收用户的认证请求,根据所述认证请求的渠道编码,为所述认证请求匹配认证渠道;根据所述认证渠道,调用相应的认证方法,以使用所述认证方法对所述认证请求进行校验,得到相应的用户信息;根据所述用户信息,生成令牌和用户登录态信息并保存;其中,所述登录态信息包括相应用户的数据权限,所述数据权限基于权限管理方法生成;返回所述令牌,以使得在接收到携带所述令牌的用户请求后,根据保存的令牌和用户登录态信息,对所述用户请求进行鉴权。

可选地,所述根据所述认证请求的渠道编码,为所述认证请求匹配认证渠道,包括:将所述认证请求的渠道编码与预定义的认证渠道集的渠道编码进行匹配;将所述认证渠道集中匹配成功的认证渠道作为所述认证请求的认证渠道。

可选地,根据所述用户信息,生成用户登录态信息,包括:根据所述用户信息,查询相应用户关联的角色信息;根据所述角色信息,查询所述用户关联的菜单节点信息和功能节点信息,得到所述用户的数据权限;将所述用户信息和所述用户的数据权限作为用户登录态信息。

可选地,所述使用所述认证方法对所述认证请求进行校验的步骤之后,所述方法还包括:对所述用户信息进行用户状态、相应用户所属机构的机构状态的校验。

可选地,所述方法还包括:使用认证服务接口定义至少一个认证渠道;其中,所述认证服务接口包括渠道命名方法、渠道匹配方法和所述认证方法;使用抽象类实现所述认证服务接口,在所述抽象类中增加注册方法;其中,所述注册方法用于在应用启动时,注册自身信息。

为实现上述目的,根据本发明实施例的另一方面,提供了一种权限管理装置。

本发明实施例的一种权限管理装置,包括:机构树构建模块,用于根据目标机构所隶属的上级机构,构建机构树;其中,所述机构树包括由完成业务交易所需的机构抽象形成的多个节点以及所述节点的数据权限,所述多个节点包括所述目标机构抽象形成的目标节点;信息配置模块,用于根据所述目标机构的用户信息,在所述机构树的目标节点下添加相应的用户节点,为所述用户节点配置角色信息,确定所述角色信息具有访问权限的第一资源信息;权限确定模块,用于根据所述目标节点的数据权限,确定所述目标节点具有访问权限的第二资源信息,将所述第一资源信息和所述第二资源信息求交集,得到所述用户节点的数据权限。

可选地,所述机构树构建模块,还用于根据目标机构所在地的管理模式,对预构建的初始机构树进行调整,得到中间机构树;其中,所述初始机构树基于行政区划得到;以所述目标机构所隶属的上级机构对应节点作为所述目标节点的父节点,将所述目标节点添加到所述中间机构树,为所述目标节点配置数据权限,得到最终的机构树。

可选地,所述信息配置模块,还用于根据所述角色信息的角色编号,查询角色资源关联表,得到所述角色信息具有访问权限的第一菜单节点信息;其中,所述角色资源关联表记录所述角色编号和所述第一菜单节点信息的第一菜单节点编号的关联关系;根据所述第一菜单节点编号,查询功能节点信息表,得到归属于相应菜单节点的第一功能节点信息;其中,所述功能节点信息表记录菜单页面的功能节点信息;将所述第一菜单节点信息和所述第一功能节点信息作为所述角色信息具有访问权限的第一资源信息。

可选地,所述数据权限包括数据权限编码;所述权限确定模块,还用于根据所述目标节点的数据权限编码,查询机构菜单关联表,得到所述目标节点具有访问权限的第二菜单节点信息;其中,所述机构菜单关联表记录所述数据权限编码和所述第二菜单节点信息的第二菜单节点编号的关联关系;根据所述第二菜单节点编号,查询功能节点信息表,得到归属于相应菜单节点的第二功能节点信息;其中,所述功能节点信息表记录菜单页面的功能节点信息;将所述第二菜单节点信息和所述第二功能节点信息作为所述目标节点具有访问权限的第二资源信息。

可选地,所述装置还包括:初始机构树构建模块,用于将完成业务交易所需的机构划分为多种机构类型;其中,所述机构类型包括对所述业务交易的业务数据进行汇总上报的监管机构、作为所述业务交易的承办主体的中心机构、具体承办所述业务交易的内部机构和通过渠道端接入的外部机构;将所述中心机构对应的节点挂载于所述监管机构对应的节点下,将所述内部机构对应的节点挂载于所述中心机构对应的节点下,将所述外部机构对应的节点挂载于所述中心机构对应的节点下;根据所述机构的机构类型,为各所述节点分别配置数据权限,得到所述初始机构树。

可选地,所述管理模式包括市级统管;所述初始机构树构建模块,还用于在目标机构所在地的管理模式为市级统管的情况下,将承办所述业务交易的市级部门作为中心机构,将所述市级部门对应节点的数据权限配置为本市范围;将承办所述业务交易的区县部门作为内部机构,将所述区县部门对应节点的数据权限配置为区县范围;将通过渠道端接入的接入方作为外部机构,将所述接入方对应节点的数据权限配置为所述接入方的管理范围。

可选地,所述管理模式包括区中心自治;所述初始机构树构建模块,还用于在目标机构所在地的管理模式为区中心自治的情况下,将承办所述业务交易的区县部门作为中心机构,将所述区县部门对应节点的数据权限配置为区县范围;将通过渠道端接入的接入方作为外部机构,将所述接入方对应节点的数据权限配置为所述接入方的管理范围。

为实现上述目的,根据本发明实施例的再一个方面,提供了一种基于权限管理的认证装置。

本发明实施例的一种基于权限管理的认证装置,包括:渠道匹配模块,用于接收用户的认证请求,根据所述认证请求的渠道编码,为所述认证请求匹配认证渠道;请求校验模块,用于根据所述认证渠道,调用相应的认证方法,以使用所述认证方法对所述认证请求进行校验,得到相应的用户信息;信息生成模块,用于根据所述用户信息,生成令牌和用户登录态信息并保存;其中,所述登录态信息包括相应用户的数据权限,所述数据权限基于权限管理方法生成;信息返回模块,用于返回所述令牌,以使得在接收到携带所述令牌的用户请求后,根据保存的令牌和用户登录态信息,对所述用户请求进行鉴权。

可选地,所述渠道匹配模块,还用于将所述认证请求的渠道编码与预定义的认证渠道集的渠道编码进行匹配;将所述认证渠道集中匹配成功的认证渠道作为所述认证请求的认证渠道。

可选地,所述信息生成模块,还用于根据所述用户信息,查询相应用户关联的角色信息;根据所述角色信息,查询所述用户关联的菜单节点信息和功能节点信息,得到所述用户的数据权限;将所述用户信息和所述用户的数据权限作为用户登录态信息。

可选地,所述装置还包括:状态校验模块,用于对所述用户信息进行用户状态、相应用户所属机构的机构状态的校验。

可选地,所述装置还包括:接口实现模块,用于使用认证服务接口定义至少一个认证渠道;其中,所述认证服务接口包括渠道命名方法、渠道匹配方法和所述认证方法;使用抽象类实现所述认证服务接口,在所述抽象类中增加注册方法;其中,所述注册方法用于在应用启动时,注册自身信息。

为实现上述目的,根据本发明实施例的又一方面,提供了一种电子设备。

本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种权限管理方法。

为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质。

本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种权限管理方法。

为实现上述目的,根据本发明实施例的又一方面,提供了一种计算机程序产品。

本发明实施例的一种计算机程序产品,包括计算机程序,所述程序被处理器执行时实现本发明实施例的一种权限管理方法。

上述发明中的一个实施例具有如下优点或有益效果:通过构建机构树,在机构树上配置各机构的数据权限,并在机构树的相应机构上为用户配置角色信息,进而通过该角色信息关联的菜单权限来控制用户的权限范围,实现了一套基于机构-用户-角色-菜单模式的权限控制,兼容各地市对业务交易的不同管理模式,满足业务需求。

根据目标机构所在地的管理模式,对预构建的初始机构树进行调整,可以快速定制用户权限管理方案,便于后续业务系统的推广工作。利用机构树的监管机构实现业务数据的汇总上报,实现了业务系统与其它系统的整合,便于多系统的统一使用和联合推广。

通过集成微服务网关Zuul的过滤链,对接不同渠道的认证请求,实现了多种登录方式的接入。通过为认证服务接口提供抽象类的方式,可以快速地扩展不同的认证方式,接入不同的渠道,易于拓展。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是本发明实施例的权限管理方法的主要步骤的示意图;

图2是本发明实施例的权限管理方法的主要流程的示意图;

图3是本发明实施例的初始机构树的结构示意图;

图4是本发明实施例的市级统管模式下的中间机构树的结构示意图;

图5是本发明实施例的区中心自治模式下的中间机构树的结构示意图;

图6是本发明实施例的用户、机构和角色的关联关系示意图;

图7是本发明实施例的基于权限管理的认证方法的主要步骤的示意图;

图8是本发明实施例的基于权限管理的认证方法的主要流程的示意图;

图9是本发明实施例的权限管理装置的主要模块的示意图;

图10是本发明实施例的基于权限管理的认证装置的主要模块的示意图;

图11是本发明实施例可以应用于其中的示例性系统架构图;

图12是适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。

图1是本发明实施例的权限管理方法的主要步骤的示意图。如图1所示,本发明实施例的权限管理方法,主要包括如下步骤:

步骤S101:根据目标机构所隶属的上级机构,构建机构树。其中,所述机构树包括由完成业务交易所需的机构抽象形成的多个节点以及所述节点的数据权限,所述多个节点包括所述目标机构抽象形成的目标节点。节点的数据权限即相应机构的角色权限、访问页面菜单的权限(可称为菜单权限),以及菜单中功能节点的权限(可称为交易权限)。

业务交易即业务系统所能够实现的交易,比如业务系统为维修资金系统,其所能实现的交易为维修资金业务交易。将完成业务交易所需的机构(包括目标机构)分别抽象为对应的节点,基于各机构之间的隶属关系,建立各节点之间的连接关系,并为各节点配置数据权限,得到机构树。

步骤S102:根据所述目标机构的用户信息,在所述机构树的目标节点下添加相应的用户节点,为所述用户节点配置角色信息,确定所述角色信息具有访问权限的第一资源信息。每个用户有其所属的机构,比如用户1属于机构1的员工,用户2属于机构2的员工。通常情况下,一个用户在机构树中有一个所属的机构。

目标机构的用户信息即归属于该机构的用户的信息,可以包括用户编号、用户姓名、用户性别、所属机构编号等。本步骤中将目标机构的用户信息抽象为对应的用户节点,并将目标节点作为该用户节点的父节点,以将用户节点添加到机构树中,之后为用户节点配置角色信息。

角色信息直接关联菜单权限和交易权限,故可以基于上述关联关系,确定该角色信息具有访问权限的第一资源信息。其中,第一资源信息包括角色信息具有访问权限的菜单节点信息和功能节点信息。

步骤S103:根据所述目标节点的数据权限,确定所述目标节点具有访问权限的第二资源信息,将所述第一资源信息和所述第二资源信息求交集,得到所述用户节点的数据权限。第二资源信息包括目标节点具有访问权限的菜单节点信息和功能节点信息。将第一资源信息和第二资源信息求交集,即可得到同时满足目标节点的数据权限要求以及所配置的角色信息的数据权限要求的权限范围。

图2是本发明实施例的权限管理方法的主要流程的示意图。如图2所示,本发明实施例的权限管理方法,主要包括如下步骤:

步骤S201:构建初始机构树。初始机构树基于行政区划得到,实施例中,可以以全国行政区划树为初始机构树。后续机构信息的调整均在初始机构树上实现。

机构可以划分为多种机构类型,比如虚拟机构、监管机构、中心机构、内部机构(比如区机构、经办机构、街道办等)、外部机构(比如开发商、承办银行、物业服务公司等),不同类型的机构具有不同的数据权限。

各种机构类型的功能以及隶属关系如下:虚拟机构:通常不承担业务交易;监管机构:承担部分业务交易,以及统计分析数据的汇总上报;中心机构,业务交易的承办主体,通常挂载于监管机构下;内部机构:业务交易的具体承办机构,直接归属于中心机构下;外部机构:通过渠道端接入,不同于内部机构办理业务交易,外部机构通常更关注业务系统中归属自身的业务数据,同样直接归属于中心机构下。

实施例中,初始机构树的构建过程可以为:将完成业务交易所需的机构划分为多种机构类型;其中,机构类型包括对业务交易的业务数据进行汇总上报的监管机构、作为业务交易的承办主体的中心机构、具体承办业务交易的内部机构和通过渠道端接入的外部机构;之后将中心机构对应的节点挂载于监管机构对应的节点下,将内部机构对应的节点挂载于中心机构对应的节点下,将外部机构对应的节点挂载于中心机构对应的节点下;以及根据机构的机构类型,为各节点分别配置数据权限,得到初始机构树。

图3是本发明实施例的初始机构树的结构示意图。如图3所示,以维修资金这一业务交易为例,其根节点为全国监管机构,全国监管机构下挂载有多个XX省级监管机构,XX省级监管机构下挂载有多个XX市级中心机构,XX市级中心机构下挂载有外部机构和内部机构,外部机构包括XX开发商、XX承办银行和XX物业服务公司,内部机构包括XX区县级区机构和XX经办机构。

步骤S202:根据目标机构所在地的管理模式,对初始机构树进行调整,得到中间机构树。以维修资金这一业务交易为例,根据推广的实际情况来看,维修资金的管理通常以市级为最大单位,管理模式有两种类型,分别为市级统管和区中心自治。

对于市级统管模式,全市作为一个维修资金管理中心,各个区县作为区机构、经办机构等下属机构,各自承办管辖范围的业务;市级中心同样需要承办相应的业务,管理整个市的维修资金数据。

如果目标机构所在地的管理模式为市级统管,则对初始机构树的调整过程可以为:将承办业务交易的市级部门作为中心机构,将市级部门对应节点的数据权限配置为本市范围;将承办业务交易的区县部门作为内部机构,将区县部门对应节点的数据权限配置为区县范围;将通过渠道端接入的接入方作为外部机构,将接入方对应节点的数据权限配置为接入方的管理范围。

图4是本发明实施例的市级统管模式下的中间机构树的结构示意图。如图4所示,以维修资金这一业务交易为例,市级统管模式下资金归市级统管,区机构存在部分自治权限。市级部门(即XX市级维修资金管理中心)作为中心类型操作机构,通办中心业务。

区县部门(即XX区县维修资金管理部门、XX街道办、XX市直维修资金管理部门、XX区县经办机构)作为区县类型操作机构,数据权限控制在区县范围。另外,单独为每一个开发商创建开发商类型操作机构,数据权限控制在开发商管理的楼幢范围;单独为每一个物业服务企业创建物业服务企业类型操作机构,数据权限控制在企业管理的小区范围;单独为每一个承办银行创建承办银行类型操作机构,数据权限控制在银行管理的小区范围。

对于区中心自治模式,各个区机构之间相互独立,均作为中心机构存在,单独管理本区的维修资金数据;市级机构仅作为监管机构,负责统计分析数据的汇总上报,不承担相应的维修资金业务。

如果目标机构所在地的管理模式为区中心自治,则对初始机构树的调整过程可以为:将承办业务交易的区县部门作为中心机构,将区县部门对应节点的数据权限配置为区县范围;将通过渠道端接入的接入方作为外部机构,将接入方对应节点的数据权限配置为接入方的管理范围。

图5是本发明实施例的区中心自治模式下的中间机构树的结构示意图。如图5所示,以维修资金这一业务交易为例,区中心自治模式下,资金归区县级自管,市级只做查询统计。区县部门(即XX区县维修资金管理中心、XX市直维修资金管理中心)作为中心类型操作机构,数据权限控制在区县范围,通办中心业务。

另外,单独为每一个开发商创建开发商类型操作机构,数据权限控制在开发商管理的楼幢范围;单独为每一个物业服务企业创建物业服务企业类型操作机构,数据权限控制在企业管理的小区范围;单独为每一个承办银行创建承办银行类型操作机构,数据权限控制在银行管理的小区范围。

步骤S203:以目标机构所隶属的上级机构对应节点作为目标节点的父节点,将目标节点添加到中间机构树,为目标节点配置数据权限,得到最终的机构树。假设目标机构为开发商B,管理模式为市级统管,则可以在图4所示的中间机构树的XX市级维修资金管理中心下添加开发商B这一节点,并为开发商B这一节点配置数据权限为开发商B管理的楼幢范围。

假设目标机构为开发商B,管理模式为区中心自治,则可以在图5所示的中间机构树的XX区县维修资金管理中心下添加开发商B这一节点,并为开发商B这一节点配置数据权限为开发商B管理的楼幢范围。

步骤S204:根据目标机构的用户信息,在机构树的目标节点下添加相应的用户节点,为用户节点配置角色信息,确定角色信息具有访问权限的第一资源信息。实施例中,角色直接关联菜单权限和交易权限,对于用户直接可见的只有角色,通过配置不同的角色来控制用户的权限范围。

本步骤中,将目标机构的用户信息抽象为对应的用户节点,并将目标节点作为该用户节点的父节点,以将用户节点添加到机构树中;之后为用户节点配置角色信息,进而基于该角色信息所关联的菜单权限和交易权限,确定该角色信息具有访问权限的第一资源信息。

为了便于处理,实施例中将用户信息存储在用户信息表,机构树信息存储在机构信息表,角色信息存储在角色信息表,全量的页面菜单资源存储在菜单节点信息表,菜单中的功能节点存储在功能节点信息表,用户拥有的角色信息存储在用户角色关联表,角色关联的菜单权限和交易权限存储在角色资源关联表,不同数据中心拥有的菜单资源树存储在机构菜单关联表。各表的功能说明见表1。

表1

其中,用户信息表的数据字段可以包括用户编号、用户姓名、登录账号、用户类型、用户状态、用户性别、所属机构编号等。用户角色关联表的数据字段可以包括用户编号、角色编号。角色信息表的数据字段可以包括角色编号、角色名称、数据权限编码、角色类型。角色资源关联表的数据字段可以包括角色编号、节点编号、关联类型。机构信息表的数据字段可以包括机构编号、机构名称、上级机构编号、机构类型、行政区划代码、数据权限编码。

菜单节点信息表的数据字段可以包括菜单节点编号、菜单节点名称、菜单节点类型、备注信息、上级菜单节点编号、展示顺序。功能节点信息表的数据字段可以包括功能节点编号、功能节点名称、功能编号、所属菜单节点编号。机构菜单关联表的数据字段可以包括数据权限编码、菜单节点编号。

图6是本发明实施例的用户、机构和角色的关联关系示意图。如图6所示,可以基于用户信息表,确定用户所属机构的机构信息表,以及用户角色关联表;之后基于用户角色关联表确定该用户可以拥有的角色,进而基于角色资源关联表和菜单资源表(包括菜单节点信息表和功能节点信息表),确定该角色具有的菜单权限和交易权限;同时基于机构信息表确定该机构的数据权限编码,进而查找机构菜单关联表,得到该机构具有的菜单权限和交易权限;最终基于角色具有的菜单权限和交易权限以及机构具有的菜单权限和交易权限,确定用户具有的菜单权限和交易权限。

结合图6以及上述各表的功能说明以及数据字段说明,在确定角色信息具有访问权限的第一资源信息时,可以先根据角色信息的角色编号,查询角色资源关联表,得到角色信息具有访问权限的第一菜单节点信息;其中,角色资源关联表记录角色编号和第一菜单节点信息的第一菜单节点编号的关联关系;

之后根据第一菜单节点编号,查询功能节点信息表,得到归属于相应菜单节点的第一功能节点信息;其中,功能节点信息表记录菜单页面的功能节点信息;进而将第一菜单节点信息和第一功能节点信息作为角色信息具有访问权限的第一资源信息。

在一优选的实施例中,对于角色和菜单的数据权限范围,可以通过“数据权限编码”这一字段进行控制,保证角色和菜单在同一个中心内部共享,即中心机构及其下属的内、外部机构的数据权限编码字段相同。而对于监管机构,其独立管理数据,拥有单独的数据权限编码。

步骤S205:根据目标节点的数据权限,确定目标节点具有访问权限的第二资源信息,将第一资源信息和第二资源信息求交集,得到用户节点的数据权限。

结合图6以及上述各表的功能说明以及数据字段说明,在确定目标节点具有访问权限的第二资源信息时,可以先根据目标节点的数据权限编码,查询机构菜单关联表,得到目标节点具有访问权限的第二菜单节点信息;其中,机构菜单关联表记录数据权限编码和第二菜单节点信息的第二菜单节点编号的关联关系;

之后根据第二菜单节点编号,查询功能节点信息表,得到归属于相应菜单节点的第二功能节点信息;其中,功能节点信息表记录菜单页面的功能节点信息;进而将第二菜单节点信息和第二功能节点信息作为目标节点具有访问权限的第二资源信息。

将第一资源信息和第二资源信息求交集,即可得到同时满足目标机构的数据权限要求以及所配置的角色信息的数据权限要求的权限范围。

图7是本发明实施例的基于权限管理的认证方法的主要步骤的示意图。如图7所示,本发明实施例的基于权限管理的认证方法,主要包括以下步骤:

步骤S701:接收用户的认证请求,根据所述认证请求的渠道编码,为所述认证请求匹配认证渠道。认证请求中携带有渠道编码和认证信息,渠道编码即用户发送认证请求所使用渠道的编码,认证信息比如为用户名+密码、人脸信息、指纹信息等。

预先为业务系统允许接入的渠道进行编码,并将这些带有渠道编码的渠道添加到认证渠道集。基于认证请求的渠道编码,查找认证渠道集中是否存在相匹配的渠道编码,将匹配成功的渠道编码对应的认证渠道作为认证请求的认证渠道。

步骤S702:根据所述认证渠道,调用相应的认证方法,以使用所述认证方法对所述认证请求进行校验,得到相应的用户信息。预先为不同的认证渠道配置相应的认证方法,该认证方法用于校验认证请求,得到相应的用户信息。

步骤S703:根据所述用户信息,生成令牌和用户登录态信息并保存。令牌中包括用户编号等信息,生成令牌的方式比如为账号和时间戳的加密结果,再比如为JWT(JSON WebToken)方式生成令牌。一个JWT实际上就是一个字符串,可以包括头部、载荷与签名三部分。

登录态信息包括用户信息以及相应用户的数据权限(包括菜单权限和交易权限),数据权限基于权限管理方法生成。实施例中,数据权限需要根据用户信息,查询用户关联的角色信息,并由角色信息查询其关联的菜单节点信息和功能节点信息,最终获得用户的数据权限。

在一实施例中,用户的菜单权限以一棵菜单树的形式组成,交易权限以交易码集合的形式组成,共同组成用户的数据权限。

步骤S704:返回所述令牌,以使得在接收到携带所述令牌的用户请求后,根据保存的令牌和用户登录态信息,对所述用户请求进行鉴权。将令牌返回至客户端,以使得服务端在接收到该客户端发送的,携带令牌的用户请求后,根据自身保存的令牌和用户登录态信息,对用户请求进行鉴权。在鉴权通过后,返回用户请求对应的请求数据。

在一优选的实施例中,使用认证方法对认证请求进行校验的步骤之后,还可以对校验成功的用户信息进行校验,具体校验内容可以为用户状态、机构状态等,以确定是否已被禁用或注销。

图8是本发明实施例的基于权限管理的认证方法的主要流程的示意图。如图8所示,本发明实施例的基于权限管理的认证方法,为了对接不同渠道的认证请求,可以将认证过程拆解为如下六个步骤:选择认证方式(对应步骤S803)、认证信息的验证(对应步骤S804)、判断用户相关信息的有效性(对应步骤S804)、构造访问令牌和用户登录态信息(对应步骤S805)、缓存令牌以及用户的数据权限(对应步骤S805)、返回令牌(对应步骤S806),具体包括:

步骤S801:接收用户的认证请求。

步骤S802:为认证请求匹配认证渠道,判断是否匹配成功,如果匹配成功,则执行步骤S803;如果匹配失败,则执行步骤S807。将认证请求的渠道编码与预定义的认证渠道集的渠道编码进行匹配,如果认证渠道集存在渠道编码与认证请求的渠道编码相同,则认为匹配成功;如果认证渠道集不存在渠道编码与认证请求的渠道编码相同,则认为匹配失败。

步骤S803:根据认证渠道,选择对应的抽象类。将认证渠道集中匹配成功的认证渠道作为认证请求的认证渠道。实施例中,使用认证服务接口(AuthenticationService)定义至少一个认证渠道;其中,认证服务接口包括渠道命名方法、渠道匹配方法和认证方法;之后使用抽象类实现认证服务接口,并在抽象类中增加注册方法;其中,注册方法用于在应用启动时,注册自身信息。

在一实施例中,渠道命名方法可以为getChannelName()方法,用于为不同渠道命名,便于区分记录;渠道匹配方法可以为match()方法,用于判断认证请求是否匹配当前认证渠道;认证方法可以为doAuthenticate()方法,用于校验认证请求,得到相应的用户信息。另外,认证服务接口还可以包括格式转换方法,比如conventToCustomLoginResult()方法,用于将认证结果转换为自定义的返回数据格式。

为上述认证服务接口提供抽象类,并在抽象类中增加注册方法,在应用启动时向工具类AuthServiceUtils注册自身信息,注册的key值为自身的认证渠道名,工具类可以提供认证渠道的注册和匹配功能。上述设置使得具体需要实现对接的认证渠道只需继承该抽象类,提供其中方法的实现即可完成认证渠道的对接和拓展。

步骤S804:通过抽象类调用相应的认证方法,以使用该认证方法对认证请求进行校验,得到相应的用户信息,之后对用户信息进行校验。校验认证请求只需要调用相应认证方式的doAuthenticate()方法即可。

认证请求的校验通过后,再对校验成功的用户信息进行校验,具体校验内容可以为用户状态、机构状态等,以确定是否已被禁用或注销。

步骤S805:根据用户信息,生成令牌和用户登录态信息,缓存令牌和用户的数据权限。该步骤采用JWT的方式构造令牌token,提供token相关的工具类TokenUtils,包含token的生成以及校验认证方法。用户登录态信息包含用户信息和用户的菜单权限及交易权限,用户的菜单权限及交易权限共同构成用户的数据权限。

采用JWT的方式构造的令牌token可以实现自验证,但已经颁发的token无法主动使其失效,因此需要在服务端缓存令牌信息,后续接收到用户请求后,在用户请求中的令牌信息自校验通过后,还需要和服务端缓存的令牌信息比对。

缓存用户的菜单权限及交易权限是为了实现对后续接收到的用户请求的鉴权,可以以菜单树和交易集合的形式缓存用户的菜单权限及交易权限。在一实施例中,可以将令牌和用户的数据权限缓存到Redis数据库。

步骤S806:按照认证渠道的响应格式,组装令牌,得到返回数据并返回至相应客户端,结束。调用conventToCustomLoginResult()方法组装令牌即可。

步骤S807:重定向到默认登录页。

上述实施例,通过集成微服务网关Zuul的过滤链(即步骤S802至步骤S807),对接不同渠道的认证请求,实现了多种登录方式的接入。其中,Zuul是开源的微服务网关,其核心是一系列的过滤器,这些过滤器可以完成动态路由、压力测试、负载分配、身份认证等功能。

图9是本发明实施例的权限管理装置的主要模块的示意图。如图9所示,本发明实施例的权限管理装置900,主要包括:

机构树构建模块901,用于根据目标机构所隶属的上级机构,构建机构树。其中,所述机构树包括由完成业务交易所需的机构抽象形成的多个节点以及所述节点的数据权限,所述多个节点包括所述目标机构抽象形成的目标节点。节点的数据权限即相应机构的角色权限、访问页面菜单的权限(可称为菜单权限),以及菜单中功能节点的权限(可称为交易权限)。

业务交易即业务系统所能够实现的交易,比如业务系统为维修资金系统,其所能实现的交易为维修资金业务交易。将完成业务交易所需的机构(包括目标机构)分别抽象为对应的节点,基于各机构之间的隶属关系,建立各节点之间的连接关系,并为各节点配置数据权限,得到机构树。

信息配置模块902,用于根据所述目标机构的用户信息,在所述机构树的目标节点下添加相应的用户节点,为所述用户节点配置角色信息,确定所述角色信息具有访问权限的第一资源信息。每个用户有其所属的机构,比如用户1属于机构1的员工,用户2属于机构2的员工。通常情况下,一个用户在机构树中有一个所属的机构。

目标机构的用户信息即归属于该机构的用户的信息,可以包括用户编号、用户姓名、用户性别、所属机构编号等。本模块中将目标机构的用户信息抽象为对应的用户节点,并将目标节点作为该用户节点的父节点,以将用户节点添加到机构树中,之后为用户节点配置角色信息。

角色信息直接关联菜单权限和交易权限,故可以基于上述关联关系,确定该角色信息具有访问权限的第一资源信息。其中,第一资源信息包括角色信息具有访问权限的菜单节点信息和功能节点信息。

权限确定模块903,用于根据所述目标节点的数据权限,确定所述目标节点具有访问权限的第二资源信息,将所述第一资源信息和所述第二资源信息求交集,得到所述用户节点的数据权限。第二资源信息包括目标节点具有访问权限的菜单节点信息和功能节点信息。将第一资源信息和第二资源信息求交集,即可得到同时满足目标节点的数据权限要求以及所配置的角色信息的数据权限要求的权限范围。

从以上描述可以看出,通过构建机构树,在机构树上配置各机构的数据权限,并在机构树的相应机构上为用户配置角色信息,进而通过该角色信息关联的菜单权限来控制用户的权限范围,实现了一套基于机构-用户-角色-菜单模式的权限控制,兼容各地市对业务交易的不同管理模式,满足业务需求。

图10是本发明实施例的基于权限管理的认证装置的主要模块的示意图。如图10所示,本发明实施例的基于权限管理的认证装置1000,主要包括:

渠道匹配模块1001,用于接收用户的认证请求,根据所述认证请求的渠道编码,为所述认证请求匹配认证渠道。认证请求中携带有渠道编码和认证信息,渠道编码即用户发送认证请求所使用渠道的编码,认证信息比如为用户名+密码、人脸信息、指纹信息等。

预先为业务系统允许接入的渠道进行编码,并将这些带有渠道编码的渠道添加到认证渠道集。基于认证请求的渠道编码,查找认证渠道集中是否存在相匹配的渠道编码,将匹配成功的渠道编码对应的认证渠道作为认证请求的认证渠道。

请求校验模块1002,用于根据所述认证渠道,调用相应的认证方法,以使用所述认证方法对所述认证请求进行校验,得到相应的用户信息。预先为不同的认证渠道配置相应的认证方法,该认证方法用于校验认证请求,得到相应的用户信息。

信息生成模块1003,用于根据所述用户信息,生成令牌和用户登录态信息并保存。令牌中包括用户编号等信息,生成令牌的方式比如为账号和时间戳的加密结果,再比如为JWT方式生成令牌。

登录态信息包括用户信息以及相应用户的数据权限(包括菜单权限和交易权限),数据权限基于权限管理方法生成。实施例中,数据权限需要根据用户信息,查询用户关联的角色信息,并由角色信息查询其关联的菜单节点信息和功能节点信息,最终获得用户的数据权限。

信息返回模块1004,用于返回所述令牌,以使得在接收到携带所述令牌的用户请求后,根据保存的令牌和用户登录态信息,对所述用户请求进行鉴权。将令牌返回至客户端,以使得服务端在接收到该客户端发送的,携带令牌的用户请求后,根据自身保存的令牌和用户登录态信息,对用户请求进行鉴权。在鉴权通过后,返回用户请求对应的请求数据。

从以上描述可以看出,通过集成微服务网关Zuul的过滤链,对接不同渠道的认证请求,实现了多种登录方式的接入。通过为认证服务接口提供抽象类的方式,可以快速地扩展不同的认证方式,接入不同的渠道,易于拓展。

图11示出了可以应用本发明实施例的权限管理方法或权限管理装置的示例性系统架构1100。

如图11所示,系统架构1100可以包括终端设备1101、1102、1103,网络1104和服务器1105。网络1104用以在终端设备1101、1102、1103和服务器1105之间提供通信链路的介质。网络1104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备1101、1102、1103通过网络1104与服务器1105交互,以接收或发送消息等。终端设备1101、1102、1103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器1105可以是提供各种服务的服务器,例如对用户利用终端设备1101、1102、1103所发送的权限管理请求支持的后台管理服务器。后台管理服务器可以构建机构树、添加用户节点、配置角色信息、确定用户节点的数据权限,并将处理结果(例如用户节点的数据权限)反馈给终端设备。

需要说明的是,本发明实施例所提供的权限管理方法一般由服务器1105执行,相应地,权限管理装置一般设置于服务器1105中。

应该理解,图11中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

根据本发明的实施例,本发明还提供了一种电子设备、一种计算机可读介质和一种计算机程序产品。

本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种权限管理方法。

本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种权限管理方法。

本发明的计算机程序产品,包括计算机程序,所述程序被处理器执行时实现本发明实施例的一种权限管理方法。

下面参考图12,其示出了适于用来实现本发明实施例的电子设备的计算机系统1200的结构示意图。图12示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图12所示,计算机系统1200包括中央处理单元(CPU)1201,其可以根据存储在只读存储器(ROM)1202中的程序或者从存储部分1208加载到随机访问存储器(RAM)1203中的程序而执行各种适当的动作和处理。在RAM 1203中,还存储有系统1200操作所需的各种程序和数据。CPU 1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。

以下部件连接至I/O接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1207;包括硬盘等的存储部分1208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至I/O接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。

特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被中央处理单元(CPU)1201执行时,执行本发明的系统中限定的上述功能。

描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括机构树构建模块、信息配置模块和权限确定模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,机构树构建模块还可以被描述为“根据目标机构所隶属的上级机构,构建机构树的模块”。

作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据目标机构所隶属的上级机构,构建机构树;其中,所述机构树包括由完成业务交易所需的机构抽象形成的多个节点以及所述节点的数据权限,所述多个节点包括所述目标机构抽象形成的目标节点;根据所述目标机构的用户信息,在所述机构树的目标节点下添加相应的用户节点,为所述用户节点配置角色信息,确定所述角色信息具有访问权限的第一资源信息;根据所述目标节点的数据权限,确定所述目标节点具有访问权限的第二资源信息,将所述第一资源信息和所述第二资源信息求交集,得到所述用户节点的数据权限。

根据本发明实施例的技术方案,通过构建机构树,在机构树上配置各机构的数据权限,并在机构树的相应机构上为用户配置角色信息,进而通过该角色信息关联的菜单权限来控制用户的权限范围,实现了一套基于机构-用户-角色-菜单模式的权限控制,兼容各地市对业务交易的不同管理模式,满足业务需求。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

相关技术
  • 一种权限管理方法、认证方法及装置
  • 一种基于身份认证的文本查阅权限管理方法及系统
技术分类

06120114692707