本申请涉及计算机,特别地涉及一种跨租户多终端鉴权方法及系统。
背景技术:
1、在商品的渠道分销场景中,上游厂商(租户)之间有数据隔离的需求,下游同一个流通商对应上游多个厂商采购时有数据交换的需求。每一个上游厂家都有很多下游的流通商,站在厂商的角度,需要确保自己体系的业务数据是封闭和独立的,但站在下游流通商的角度,每个流通商都又会和多个上游厂商有采购关系,流通商希望能将多个厂商的采购业务进行统一管理。这种上下游需求的矛盾,往往只能牺牲流通商的需求,满足上游厂商的需求,从而造成流通商需要在多个独立的业务体系(租户)内完成自己的采购业务,效率低、难统计、难管理。
2、常规的多租户管理技术中,其用户和权限管理体系都是绑定某个固定租户的,如果一个用户想要跨租户操作,需要在每个租户下建立附属帐号并手动切换租户,系统根据选定的租户重新验证用户身份权限,然后根据新选择的租户重新加载界面和数据。当用户需要将多个租户的数据进行汇总统计时,常规的多租户管理技术是无法跨租户调取数据的。
技术实现思路
1、针对上述问题,本申请提供一种跨租户多终端鉴权方法及系统,基于微服务架构建立了多终端鉴权体系,实现了多终端统一鉴权,不再需要对不同终端上的同一个功能分别进行授权和鉴权,只需一次授权即可在多终端上完成鉴权,使业务系统管理人员的工作变得简化和清晰。
2、一种跨租户多终端鉴权方法,步骤如下:
3、s1、获取租户数据信息和租户业务数据信息,建立租户数据库对租户数据信息和租户业务数据信息进行储存;
4、s2、根据租户的租户数据信息和租户业务数据信息设置租户业务权限范围;
5、s3、获取用户数据信息,用户数据信息包括用户对租户的订阅信息和用户身份信息,建立用户数据信息数据库和用户被授权业务数据库;
6、s4、租户给订阅用户分配业务数据信息权限和用户终端权限,将租户给订阅用户分配的业务数据信息权限和用户终端权限存入用户被授权业务数据库;
7、s5、建立多终端鉴权体系;
8、s6、获取用户终端的登录请求,基于微服务架构多终端鉴权体系对用户终端进行鉴权处理。
9、进一步地,步骤s5中建立多终端鉴权体系的具体方法为:
10、创建类jwt gate way filter实现gateway filter接口,gateway filter接口是来自于微服务架构中的网关组件,目的是对用户发起的请求中jwt token信息进行验证;用host authentication token接口定义jwt token类,用于按照jwt数据标准标识用户身份信息;为每一个微服务创建jwt filter类继承basic http authentication filter类,创建jwt realm类继承authorizing realm类。
11、进一步地,s6中具体鉴权步骤为:
12、判断用户终端的登录是否登录成功,若未登录成功,无操作;若登录成功,则发放token;
13、获取用户终端的数据交互请求,网关使用jwt gateway filter对token进行验证,如果验证通过放行用户终端的数据交互请求;
14、业务集群使用shiro和jwt对token进行验证并授权,放行用户终端的数据交互请求至受限资源,返回受限资源信息至用户终端。
15、进一步地,还包括有对已授权租户业务数据进行实时调取的跨租户业务数据库,具体实现方法如下:
16、响应用户的跨租户业务数据调取的请求,根据用户被授权业务数据库获取用户请求调取的租户数据信息和被分配的业务数据信息权限,逐一对用户的跨租户业务数据调取的请求和被分配的业务数据信息权限进行匹配,判断用户的跨租户业务数据调取的请求是否位于被分配的业务数据信息权限内,若位于,则对用户的跨租户业务数据调取的请求内的业务数据进行调取,将调取的业务数据添加进跨租户业务数据库;若不位于,则拒绝该用户的跨租户业务数据调取的请求。
17、进一步地,还包括有在用户结束对跨租户业务数据调取的请求后,将实时监测用户操作,判断用户是否关闭调取的跨租户业务数据的查看窗口,若未关闭,无操作;若关闭,则将跨租户业务数据库内数据进行清空。
18、进一步地,采用mysql数据库存储租户数据信息和租户业务数据信息。
19、进一步地,本方法采用基于java语言的集成开发环境eclipse进行开发。
20、一种跨租户多终端鉴权系统,所述系统应用于所述的一种跨租户多终端鉴权方法,包括有:
21、租户业务数据管理中心,用于储存和管理租户业务数据信息;
22、用户订阅模块,用于用户订阅租户业务数据信息;
23、租户授权模块,用于租户给订阅用户分配业务数据信息权限和用户终端权限;
24、注册中心,用户和租户进行注册和登录系统的平台,并用于储存用户数据信息和租户数据信息;
25、用户终端鉴权模块,用于获取用户终端的登录请求,对用户终端进行鉴权处理;
26、跨租户数据调取模块,对已授权租户业务数据进行实时调取,并将调取的业务数据储存进跨租户业务数据库;
27、跨租户业务数据库清理模块,用于在用户使用完跨租户业务数据库后对跨租户业务数据库进行清理。
28、本申请具有以下优点:
29、1、本发明突破了租户和终端的权限设计造成的使用障碍,在保障安全的同时,用户跨租户操作不再需要进行切换和二次验证,非常顺畅。
30、2、本发明简化了跨租户的数据统计工作,不再需要搭建单独的数据报表系统,可以直接使用业务系统中现有的数据统计功能,直接进行跨租户数据统计。
31、3、本发明基于微服务架构建立了多终端鉴权体系,实现了多终端统一鉴权,不再需要对不同终端上的同一个功能分别进行授权和鉴权,只需一次授权即可在多终端上完成鉴权,使业务系统管理人员的工作变得简化和清晰。
1.一种跨租户多终端鉴权方法,其特征在于,步骤如下:
2.如权利要求1所述的一种跨租户多终端鉴权方法,其特征在于,步骤s5中建立多终端鉴权体系的具体方法为:
3.如权利要求2所述的一种跨租户多终端鉴权方法,其特征在于,s6中具体鉴权步骤为:
4.如权利要求3所述的一种跨租户多终端鉴权方法,其特征在于,还包括有对已授权租户业务数据进行实时调取的跨租户业务数据库,具体实现方法如下:
5.如权利要求4所述的一种跨租户多终端鉴权方法,其特征在于,还包括有在用户结束对跨租户业务数据调取的请求后,将实时监测用户操作,判断用户是否关闭调取的跨租户业务数据的查看窗口,若未关闭,无操作;若关闭,则将跨租户业务数据库内数据进行清空。
6.如权利要求5所述的一种跨租户多终端鉴权方法,其特征在于,采用mysql数据库存储租户数据信息和租户业务数据信息。
7.如权利要求6所述的一种跨租户多终端鉴权方法,其特征在于,本方法采用基于java语言的集成开发环境eclipse进行开发。
8.一种跨租户多终端鉴权系统,所述系统应用于上述权利要求1-7任一项所述的一种跨租户多终端鉴权方法,其特征在于,包括有: