H04L67/60 H04L9/40 H04L9/08
1.一种多租户的微服务调用鉴权的方法,其特征在于,包括以下步骤:
构建鉴权服务,该鉴权服务实时接收授权申请,并对该授权申请进行授权申请审核,若审核通过,则生成授权码,并生成第一授权信息推送至微服务系统的网关;
微服务系统的网关接收携带授权码的请求信息,从该请求信息中获取第二授权信息,将该第二授权信息与所述第一授权信息进行匹配,进行鉴权,若鉴权通过,则根据所述请求信息进行处理,并响应。
2.根据权利要求1所述的一种多租户的微服务调用鉴权的方法,其特征在于,若所述鉴权服务生成授权码,则判断是否发生授权信息变动事件,若发生,则将变动的第一授权信息推送至微服务系统的网关。
3.根据权利要求1所述的一种多租户的微服务调用鉴权的方法,其特征在于,所述微服务系统的网关接收到所述第一授权信息后,返回推送信息至鉴权服务;
若所述鉴权服务未收到所述推送信息,则根据预先设置的推送间隔频率向所述微服务系统的网关重复推送所述第一授权信息。
4.根据权利要求1所述的一种多租户的微服务调用鉴权的方法,其特征在于,所述请求信息包括系统标识、提供服务的微服务系统标识、提供服务的接口和授权码。
5.一种多租户的微服务调用鉴权的设备,其特征在于,包括:
鉴权服务模块,被配置为,实时接收授权申请,并对该授权申请进行授权申请审核,若审核通过,则生成授权码,并生成第一授权信息推送至微服务系统的网关;
外部系统,被配置为,生成并向所述鉴权服务模块发送授权申请;接收授权码,并根据该授权码生成请求信息;
微服务系统,该微服务系统配置有微服务网关鉴权模块,该微服务网关鉴权模块被配置为,接收携带授权码的请求信息,从该请求信息中获取第二授权信息,将该第二授权信息与所述第一授权信息进行匹配,进行鉴权,若鉴权通过,则根据所述请求信息通过微服务系统进行处理,并将处理结果反馈给外部系统。
6.根据权利要求5所述的一种多租户的微服务调用鉴权的设备,其特征在于,所述鉴权服务还被配置为,生成授权码后,则判断是否发生授权信息变动事件,若发生,则将变动的第一授权信息推送至微服务系统的网关。
7.根据权利要求5所述的一种多租户的微服务调用鉴权的设备,其特征在于,所述微服务系统的网关接收到所述第一授权信息后,返回推送信息至鉴权服务;
若所述鉴权服务未收到所述推送信息,则根据预先设置的推送间隔频率向所述微服务系统的网关重复推送所述第一授权信息。
8.根据权利要求5所述的一种多租户的微服务调用鉴权的设备,其特征在于,所述请求信息包括系统标识、提供服务的微服务系统标识、提供服务的接口和授权码。
9.根据权利要求5所述的一种多租户的微服务调用鉴权的设备,其特征在于,所述微服务网关鉴权模块接收请求信息后,还生成请求状态信息,并将该请求状态信息反馈给鉴权服务模块;所述鉴权服务模块对所述请求状态信息进行可视化展示,所述请求状态信息包括系统标识、提供服务的接口、是否授权访问和接口响应时长。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上储存有计算机程序,所述计算机程序被处理器执行如权利要求1至4中任一项所述的方法。
本发明涉及数据处理技术领域,尤其是涉及一种多租户的微服务调用鉴权的方法、设备及存储介质。
随着互联网技术的发展,系统的架构已经由单体架构逐步被微服务架构所替代,微服务架构以其独立部署、快速迭代、扩展性良好等优势得到了广泛应用。通常情况下,一个外部系统发起对微服务系统的调用,调用请求首先到达微服务网关,再由网关转发至下游的微服务提供方,微服务提供方处理完请求后,把响应数据返回外部系统。一般地,对服务调用的鉴权逻辑通常由各个系统单独实现,随着企业的业务发展,一个大型的互联网企业拥有的系统数量通常在几十个以上,各个系统都有若干微服务。当企业的微服务数量成百上千后,各个系统独立的鉴权逻辑不具备良好的扩展性及维护性。
本发明的目的就是为了克服上述现有技术存在当企业的微服务数量成百上千后,各个系统独立的鉴权逻辑不具备良好的扩展性及维护性的缺陷而提供一种多租户的微服务调用鉴权的方法、设备及存储介质。
本发明的目的可以通过以下技术方案来实现:
一种多租户的微服务调用鉴权的方法,包括以下步骤:
构建鉴权服务,该鉴权服务实时接收授权申请,并对该授权申请进行授权申请审核,若审核通过,则生成授权码,并生成第一授权信息推送至微服务系统的网关;
微服务系统的网关接收携带授权码的请求信息,从该请求信息中获取第二授权信息,将该第二授权信息与所述第一授权信息进行匹配,进行鉴权,若鉴权通过,则根据所述请求信息进行处理,并响应。
进一步地,若所述鉴权服务生成授权码,则判断是否发生授权信息变动事件,若发生,则将变动的第一授权信息推送至微服务系统的网关。
进一步地,所述微服务系统的网关接收到所述第一授权信息后,返回推送信息至鉴权服务;
若所述鉴权服务未收到所述推送信息,则根据预先设置的推送间隔频率向所述微服务系统的网关重复推送所述第一授权信息。
进一步地,所述请求信息包括系统标识、提供服务的微服务系统标识、提供服务的接口和授权码。
本发明还提供一种多租户的微服务调用鉴权的设备,包括:
鉴权服务模块,被配置为,实时接收授权申请,并对该授权申请进行授权申请审核,若审核通过,则生成授权码,并生成第一授权信息推送至微服务系统的网关;
外部系统,被配置为,生成并向所述鉴权服务模块发送授权申请;接收授权码,并根据该授权码生成请求信息;
微服务系统,该微服务系统配置有微服务网关鉴权模块,该微服务网关鉴权模块被配置为,接收携带授权码的请求信息,从该请求信息中获取第二授权信息,将该第二授权信息与所述第一授权信息进行匹配,进行鉴权,若鉴权通过,则根据所述请求信息通过微服务系统进行处理,并将处理结果反馈给外部系统。
进一步地,所述鉴权服务还被配置为,生成授权码后,则判断是否发生授权信息变动事件,若发生,则将变动的第一授权信息推送至微服务系统的网关。
进一步地,所述微服务系统的网关接收到所述第一授权信息后,返回推送信息至鉴权服务;
若所述鉴权服务未收到所述推送信息,则根据预先设置的推送间隔频率向所述微服务系统的网关重复推送所述第一授权信息。
进一步地,所述请求信息包括系统标识、提供服务的微服务系统标识、提供服务的接口和授权码。
进一步地,所述微服务网关鉴权模块接收请求信息后,还生成请求状态信息,并将该请求状态信息反馈给鉴权服务模块;所述鉴权服务模块对所述请求状态信息进行可视化展示,所述请求状态信息包括系统标识、提供服务的接口、是否授权访问和接口响应时长。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上储存有计算机程序,所述计算机程序被处理器执行如上任一项所述的方法。
与现有技术相比,本发明提供了一种支持多租户的微服务调用鉴权方案,本技术方案包含auth server、gateway-auth-sdk。其中auth server作为独立部署的认证服务,提供多租户授权管理;gateway-auth-sdk是微服务网关认证sdk,网关集成,提供微服务访问鉴权功能。通过auth server和gateway-auth-sdk结合的方式,验证微服务消费者是否具有访问系统的权力,提高系统安全性;具体具有以下优点:
(1)安全性:本发明为微服务系统提供了接口维度的鉴权解决方案,提供了微服务接口及微服务系统的安全性。本发明提供了多租户的鉴权方案,各租户之间的数据和配置隔离,保证每位租户数据的隐私和安全。
(2)模块化、易用性:本发明为租户提供软件开发包,各个微服务系统可通过集成gateway-auth-sdk的方式实现接口鉴权,无需各系统额外实现鉴权逻辑,减少了各系统的编码工作及鉴权逻辑的维护工作。
(3)流量可视化:本发明通过软件开发包采集微服务的调用请求,为租户提供全局的微服务调用流量统计,并进行图形化展示。
图1为本发明实施例中提供的一种微服务调用流程示意图;
图2为本发明实施例中提供的一种多租户的微服务调用鉴权的方法的流程示意图。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
实施例1
本实施例提供一种多租户的微服务调用鉴权的方法,包括以下步骤:
构建鉴权服务,该鉴权服务实时接收授权申请,并对该授权申请进行授权申请审核,若审核通过,则生成授权码,并生成第一授权信息推送至微服务系统的网关;
微服务系统的网关接收携带授权码的请求信息,从该请求信息中获取第二授权信息,将该第二授权信息与第一授权信息进行匹配,进行鉴权,若鉴权通过,则根据请求信息进行处理,并响应。
作为一种优选的实施方式,为实现授权信息的更新,若鉴权服务生成授权码,则判断是否发生授权信息变动事件,若发生,则将变动的第一授权信息推送至微服务系统的网关。
作为一种优选的实施方式,为保证推送信息的可靠传输,微服务系统的网关接收到第一授权信息后,返回推送信息至鉴权服务;
若鉴权服务未收到推送信息,则根据预先设置的推送间隔频率向微服务系统的网关重复推送第一授权信息。
可选地,请求信息包括系统标识、提供服务的微服务系统标识、提供服务的接口和授权码。
以上是关于方法实施例的介绍,以下通过设备实施例,对本发明方案进行进一步说明。
本实施例还提供一种多租户的微服务调用鉴权的设备,包括:
鉴权服务模块,被配置为,实时接收授权申请,并对该授权申请进行授权申请审核,若审核通过,则生成授权码,并生成第一授权信息推送至微服务系统的网关;
外部系统,被配置为,生成并向鉴权服务模块发送授权申请;接收授权码,并根据该授权码生成请求信息;
微服务系统,该微服务系统配置有微服务网关鉴权模块,该微服务网关鉴权模块被配置为,接收携带授权码的请求信息,从该请求信息中获取第二授权信息,将该第二授权信息与第一授权信息进行匹配,进行鉴权,若鉴权通过,则根据请求信息通过微服务系统进行处理,并将处理结果反馈给外部系统。
作为一种优选的实施方式,微服务网关鉴权模块接收请求信息后,还生成请求状态信息,并将该请求状态信息反馈给鉴权服务模块;鉴权服务模块对请求状态信息进行可视化展示,请求状态信息包括系统标识、提供服务的接口、是否授权访问和接口响应时长。
需要说明的是,本申请的装置具体内容和有益效果可参见上述方法实施例,在此不再赘述。
下面提供本发明方案的一种具体的实时过程。
本方案包括鉴权服务auth server和微服务网关鉴权软件开发包gateway-auth-sdk,其中auth server为单独部署的Web应用,gateway-auth-sdk为集成在微服务网关的sdk。本技术方案为微服务调用的鉴权提供了集中解决方案,如表1所示,要解决的技术问题如下:
1.多租户的微服务调用鉴权
本技术方案通过auth server与gateway-auth-sdk相结合的方式,多租户的微服务调用鉴权。企业的各个微服务系统作为租户,本技术方案为各租户的接口提供独立的权限控制,从而保证每个租户的安全与隐私。
2.流量统计
现有情况下,各个系统的微服务调用流量由各个系统独立记录,缺乏统一的全局统计。本技术方案采用gateway-auth-sdk记录微服务调用请求,并将调用请求汇总到authserver,通过图形化页面进行多维度的展示,以便可以全局的了解到微服务的接口调用状态。
表1
具体过程如下:
正常情况下,外部系统发起对微服务系统的调用请求,请求首先到达系统的微服务网关,再由微服务网关转发到下游的微服务,下游的微服务将处理后将响应返回外部系统,流程见图1。
为了保护下游微服务的安全,微服务系统需要对外部系统的调用请求进行鉴权,校验外部系统是否拥有访问该服务的权限。一般地,如果调用请求没有获得授权,微服务网关将该调用请求拦截,不转发该调用请求。
本技术方案包括auth server和gateway-auth-sdk,其中的auth server为独立部署的Web应用,gateway-auth-sdk为集成在各个微服务系统的微服务网关中的SDK,通过两者相结合的方式提供了一种多租户的微服务调用鉴权方法。
授权服务auth server的功能如下:
授权申请。外部系统在auth server填写申请表单,申请调用微服务系统的微服务接口,申请表单的参数包括:系统标识(SYSTEM_CODE)、提供服务的微服务系统标识(CONSUMER_SYSTEM_CODE)、提供服务的接口(CONSUMER_API)。
授权审核。服务提供系统在auth server审核授权申请,审核通过后,生成接口维度的授权码(AUTH_CODE)。
授权推送。当授权码生成或者发生变动时,auth server将新的授权码和授权码关联授权信息推送至提供服务的微服务系统的网关。auth server提供推送失败的推送间隔频率配置,支持
流量统计。接收gateway-auth-sdk采集到的接口流量,进行吞吐量、请求总数、请求成功数/失败数占比等多维度的可视化展示。
外部系统的授权申请通过后,发起接口调用请求时,在请求头中携带SYSTEM_CODE、CONSUMER_SYSTEM_CODE及授权码(AUTH_CODE)。
gateway-auth-sdk集成在微服务系统的微服务网关中,网关收到外部系统的请求时,从调用请求的请求头中获取到SYSTEM_CODE、CONSUMER_SYSTEM_CODE和AUTH_CODE等请求数据,把请求数据与auth server推送的授权信息进行对比,如果请求头中的数据与推送的授权信息不匹配,则将请求拦截,返回外部系统“未授权”。
本技术方案下,外部系统对微服务的调用请求流程见图2。
如图2所示:
1.外部系统在auth server填写申请表单,申请微服务接口的调用权限。
2.微服务系统即租户在auth server进行授权申请审核。
3.授权审核通过后,auth server生成授权码,将授权码交由外部系统。
4.授权信息变动事件发生时,auth server将变动的授权信息推送租户,即推送至集成了gateway-auth-sdk的微服务网关。
5.微服务网关收到推送后,返回收到推送给auth server。auth server在未收到该授权信息变动事件的反馈前,会按照事先由租户配置好的推送间隔频率进行多次推送。
6.外部系统拿到授权码后,调用微服务接口时,在请求头中携带SYSTEM_CODE、CONSUMER_SYSTEM_CODE和AUTH_CODE等授权信息。
7.微服务网关收到请求后,从请求头中获取SYSTEM_CODE、CONSUMER_SYSTEM_CODE和AUTH_CODE,将请求携带的授权信息与auth server推送的授权信息进行匹配。
8.鉴权通过后,微服务网关将该调用请求转发至下游微服务。
9.微服务对该调用请求进行处理,处理后响应外部系统。
微服务网关在收到外部系统的调用请求时,gateway-auth-sdk采集调用请求的SYSTEM_CODE、CONSUMER_API、是否授权访问、接口响应时长等信息,并将信息发送给authserver,auth server将收到的信息进行处理,将微服务调用流量以吞吐量、请求总数、请求成功数/失败数占比等多维度的可视化展示,供租户查看和分析。
本实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上储存有计算机程序,所述计算机程序被处理器执行如上任一项所述的方法。
在本发明的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
本文发布于:2023-04-14 06:52:31,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/3/86475.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |