公开/公告号CN112291221A
专利类型发明专利
公开/公告日2021-01-29
原文格式PDF
申请/专利权人 北京神州数字科技有限公司;
申请/专利号CN202011141903.3
申请日2020-10-22
分类号H04L29/06(20060101);H04L29/08(20060101);
代理机构11303 北京方韬法业专利代理事务所(普通合伙);
代理人党小林
地址 100000 北京市西城区阜成门外大街31号5层525B
入库时间 2023-06-19 09:43:16
技术领域
本发明涉及微服务架构技术领域,特别是涉及一种微服务间服务访问认证方法及系统。
背景技术
微服务体系是目前比较流行的分布式框架,其是在云中部署应用和服务的新技术。微服务可以在"自己的系统"中运行应用,并通过"轻量级设备与HTTP型API进行沟通"。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有系统中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要在特定的某种服务中增加所需功能,而不影响整体进程。
在微服务框架中,外部请求在进入微服务系统中时,在通过API网关时,网关作为入口对该请求进行认证与鉴权,请求认证鉴权成功进入网关后,分发请求在进入各个微服务应用时,微服务不再进行有效的安全认证与授权,由于无法鉴权,使得有些私密的API接口直接暴露在外,降低了整个系统安全性大大的降低
在中国发明专利申请CN110022279A中,本发明的目的在于解决现有技术的不足,提供一种在微服务架构下,基于公私钥证书的身份认证机制,扩展基于授权的服务权限控制以及跨域跨中心的安全认证。
对于中国发明专利申请CN110022279A中,觉得还存在以下缺点:1)缺少一套完善的基于授权的服务权限控制;2)没有跨域跨中心的安全认证体系。
发明内容
本发明要解决的技术问题是提供一种微服务间服务访问认证方法及系统,能够提供一种在微服务架构下,基于公私钥证书的身份认证机制,扩展基于授权的服务权限控制以及跨域跨中心的安全认证。
为解决上述技术问题,本发明提供了一种微服务间服务访问认证方法,所述方法包括:网关设备接收到发往微服务系统中的服务请求时,根据权限路由将该服务请求分配到调用方微服务的服务器上;运行调用方微服务的服务器处理该服务请求时,确定需要调用提供方微服务,则由调用方微服务的服务器与提供方微服务的服务器进行基于JWT的微服务权限同步;根据同步后的微服务权限调用提供方微服务。
在一些实施方式中,基于JWT的微服务权限同步包括:正常交易过程的微服务权限同步,以及异常交易的微服务权限同步。
在一些实施方式中,正常交易过程的微服务权限同步包括:微服务从配置中心同步服务调用权限并保存到本地上下文;调用方微服务使用本地JWT访问提供方微服务;提供方微服务使用安全中心公钥验证并解开JWT;提供方微服务获取JWT中的请求方信息和JWT时间信息;提供方微服务判断请求方合法性、服务调用权限、JWT过期;访问提供方微服务。
在一些实施方式中,异常交易过程的微服务权限同步包括:微服务从配置中心同步服务调用权限并保存到本地上下文;提供方微服务验证合法性或调用权限失败,返回错误信息;提供方微服务验证无JWT信息或JWT信息不合法,返回错误信息;提供方微服务判断JWT过期,返回错误信息,消费方刷新JWT,并重新访问。
在一些实施方式中,还包括:执行跨域跨中心的安全认证。
在一些实施方式中,执行跨域跨中心的安全认证,包括:跨中心访问服务的注册地址为当前中心的网关地址,由网关负责注册到当前中心的注册中心。
在一些实施方式中,还包括:执行调用方微服务的JWT更新。
在一些实施方式中,执行调用方微服务的JWT更新,包括:调用方微服务在本地JWT超时前认证发起异步刷新JWT;认证中心验证调用方身份;若身份验证失败,则返回错误信息;若身份认证中心用验证成功,获取Redis中缓存的JWT;缓存未命中或JWT将过期,则私钥加签JWT存储到Redis并返回;认证中心将JWT返回给调用方微服务,调用方微服务保存到本地上下文。
此外,本发明还提供了一种微服务间服务访问认证系统,所述系统包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据前文所述的微服务间服务访问认证方法。
采用这样的设计后,本发明至少具有以下优点:
1.灵活扩展,支持微服务应用维度、接口API维度的访问认证控制;
2.提供基于授权的服务权限控制;
3.支持跨域跨中心的微服务间访问的认证机制,保证系统的高可靠架构。
附图说明
上述仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,以下结合附图与具体实施方式对本发明作进一步的详细说明。
图1是现有技术提供的微服务间服务访问认证的流程图;
图2是本发明实施例提供的服务安全认证过程的流程图;
图3是本发明实施例提供的跨域跨中心安全认证的流程图;
图4是本发明实施例提供的微服务间服务访问认证系统的结构图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
在本发明实施例提供的技术方案中,JWT英文名是Json Web Token,是一种用于通信双方之间传递安全信息的简洁的、URL安全的表述性声明规范,经常用在跨域身份验证。
Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。
SOA:(Service-Oriented Architecture)-面向服务的体系架构。
服务认证:微服务间的访问认证,包含权限控制与授权。
参见图1,微服务间服务访问认证的流程包括:网关设备接收到发往微服务系统中的服务请求时,进行认证鉴权;并在认证鉴权成功时,根据权限路由将该服务请求分配到对应的运行第一个微服务的服务器上;运行第一个微服务的服务器处理该服务请求时,若确定需要与运行第二个微服务的服务器通信,则向认证鉴权服务器发送获取令牌TOKEN的请求;运行第一个微服务的服务器在接收到认证鉴权服务器响应的TOKEN时,携带TOKEN向运行第二个微服务的服务器发送服务请求;运行第二个微服务的服务器接收到运行第一个微服务的服务器发送的服务请求时,向认证鉴权服务器验证该服务请求携带的TOKEN;运行第二个微服务的服务器在接收到验证服务器响应的所述TOKEN对应的权限信息时,若根据接收到权限信息确定服务请求对应的用户有权限访问,则处理所述服务请求,并向运行第一个微服务的服务器响应处理结果。
参见图2,客户端Token刷新过程为:调用方微服务在本地JWT超时前认证发起异步刷新JWT;认证中心验证调用方身份;若身份验证失败,则返回错误信息;若身份认证中心用验证成功,获取Redis中缓存的JWT;缓存未命中或JWT将过期,则私钥加签JWT存储到Redis并返回;认证中心将JWT返回给调用方微服务,调用方微服务保存到本地上下文。
微服务权限同步过程如下:微服务从配置中心同步服务调用权限并保存到本地上下文。之后的执行过程分为正常交易过程及异常交易过程。
正常交易过程如下:调用方微服务使用本地JWT访问提供方微服务;提供方微服务使用安全中心公钥验证并解开JWT;提供方微服务获取JWT中的请求方信息和JWT时间信息;提供方微服务判断请求方合法性、服务调用权限、JWT过期;访问提供方微服务。
异常交易过程如下:提供方微服务验证合法性或调用权限失败,返回错误信息;提供方微服务验证无JWT信息或JWT信息不合法,返回错误信息;提供方微服务判断JWT过期,返回错误信息,消费方刷新JWT,并重新访问。
参见图3,跨域跨中心安全认证的执行过程为:跨中心访问服务的注册地址为当前中心的网关地址,由网关负责注册到当前中心的注册中心。(如微服务B在DC1的注册由DC1网关完成,地址为DC1网关地址)。
DC1和DC2的认证中心使用同一套公私钥对体系;两个区之间网络打通。
图4示出了微服务间服务访问认证系统的结构。参见图4,例如,所述微服务间服务访问认证系统400可以用于充当微服务系统中的微服务互访认证系统。如本文所述,微服务间服务访问认证系统400可以用于在微服务系统中实现对微服务间调用的安全认证功能。微服务间服务访问认证系统400可以在单个节点中实现,或者微服务间服务访问认证系统400的功能可以在网络中的多个节点中实现。本领域的技术人员应意识到,术语微服务间服务访问认证系统包括广泛意义上的设备,图4中示出的微服务间服务访问认证系统400仅是其中一个示例。包括微服务间服务访问认证系统400是为了表述清楚,并不旨在将本发明的应用限制为特定的微服务间服务访问认证系统实施例或某一类微服务间服务访问认证系统实施例。本发明所述的至少部分特征/方法可以在网络装置或组件,例如,微服务间服务访问认证系统400中实现。例如,本发明中的特征/方法可以采用硬件、固件和/或在硬件上安装运行的软件实现。微服务间服务访问认证系统400可以是任何通过网络处理,存储和/或转发数据帧的设备,例如,服务器,客户端,数据源等。如图4所示,微服务间服务访问认证系统400可以包括收发器(Tx/Rx)410,其可以是发射器,接收器,或其组合。Tx/Rx 410可以耦合到多个端口450(例如上行接口和/或下行接口),用于从其他节点发送和/或接收帧。处理器430可耦合至Tx/Rx 410,以处理帧和/或确定向哪些节点发送帧。处理器430可以包括一个或多个多核处理器和/或存储器设备432,其可以用作数据存储器,缓冲区等。处理器430可以被实现为通用处理器,或者可以是一个或多个专用集成电路(applicationspecific integrated circuit,简称ASIC)和/或数字信号处理器(digital signalprocessor,简称DSP)的一部分。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,本领域技术人员利用上述揭示的技术内容做出些许简单修改、等同变化或修饰,均落在本发明的保护范围内。
机译: 用于管理用户的认证和授权并支持用户的系统,用于管理用户的认证和授权以访问多个网络的服务的方法,用于认证的控制器处理请求消息认证。选择搜索结果身份验证控制器的组合以对用户进行身份验证,并找出通往与dom有业务关系的dom的方法,该方法是授权控制器处理请求消息服务授权的地方,以及为身份验证和授权的控制器执行服务授权,以执行Tion和服务授权的身份验证,以保护用户的身份,并向国内dom u00ecnio用户身份验证的访问控制权限提供控制器的配置文件信息用户签名受限制,以实现快速的身份验证和授权,并仅以访问权限进行注册
机译: 通过第一网络提供对由第二网络促进的服务的访问的方法,用于提供认证机制的认证服务器设备,用于提供对网络服务的访问的终端设备以及用于提供从第一网络对网络的服务的访问的系统第二个网络
机译: 用于自动向请求网络访问提供访问凭证的方法,该访问凭证用于访问服务在线服务系统,以自动提供给通信终端,适用于通信网络中用于Aces的访问凭证使用在线服务提供商,实体认证,在线服务,和通讯终端。