CN113676336A - 微服务访问代理方法、设备及存储介质 - Google Patents

微服务访问代理方法、设备及存储介质 Download PDF

Info

Publication number
CN113676336A
CN113676336A CN202111230033.1A CN202111230033A CN113676336A CN 113676336 A CN113676336 A CN 113676336A CN 202111230033 A CN202111230033 A CN 202111230033A CN 113676336 A CN113676336 A CN 113676336A
Authority
CN
China
Prior art keywords
micro
service
signature
access
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111230033.1A
Other languages
English (en)
Other versions
CN113676336B (zh
Inventor
刘秀聪
陈伟锐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Mingyuanyun Procurement Technology Co ltd
Original Assignee
Shenzhen Mingyuanyun Procurement Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Mingyuanyun Procurement Technology Co ltd filed Critical Shenzhen Mingyuanyun Procurement Technology Co ltd
Priority to CN202111230033.1A priority Critical patent/CN113676336B/zh
Publication of CN113676336A publication Critical patent/CN113676336A/zh
Application granted granted Critical
Publication of CN113676336B publication Critical patent/CN113676336B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Abstract

本发明公开了一种微服务访问代理方法、设备及存储介质,所述方法为:在通过代理平台的签名验证后,生成代理平台访问令牌并返回给客户端;在接收到客户端提交的微服务访问参数以及代理平台访问令牌后,校验客户端IP和代理平台访问令牌是否合法,所述客户端提交的微服务访问参数包括微服务名、微服务接口的url、微服务接口的请求参数;若均合法,则在通过微服务的签名验证后,获取微服务认证令牌;转发客户端提交的微服务访问参数和微服务认证令牌至微服务的gRPC网关服务,在验证微服务认证令牌为合法后,接收微服务根据客户端提交的微服务访问参数进行处理后的数据并转发回客户端,完成对微服务的访问。从而使安全性更高、测试效率更高。

Description

微服务访问代理方法、设备及存储介质
技术领域
本发明涉及计算机网络领域,尤其涉及一种微服务访问代理方法、设备及存储介质。
背景技术
在目前的gRPC微服务的接口测试中,存在以下问题:
1、将微服务暴露在公网,通过公网IP和微服务端口号进行接口测试,而微服务是基于在服务器内网使用,暴露在公网有重大安全隐患。
2、测试人员登录到服务器内进行接口测试的方式,其测试效率低,且对测试人员的服务器相关知识要求高。
发明内容
本发明的主要目的在于提供一种微服务访问代理方法,旨在解决现有技术中gRPC微服务的接口测试存在不够安全、效率低的技术问题。
为实现上述目的,本发明提供一种微服务访问代理方法,所述微服务访问代理方法包括:
在通过代理平台的签名对比授权验证后,使用JWT算法生成代理平台访问令牌并返回给客户端;
在接收到客户端提交的微服务访问参数以及所述代理平台访问令牌后,校验客户端IP是否合法并根据JWT签名算法验证所述代理平台访问令牌是否合法,所述客户端提交的微服务访问参数包括微服务名、微服务接口的url、微服务接口的请求参数;
若均合法,则在通过微服务的签名对比授权验证后,获取微服务使用JWT算法生成的微服务认证令牌;
转发所述客户端提交的微服务访问参数和所述微服务认证令牌至微服务的gRPC网关服务,在微服务根据JWT签名算法验证所述微服务认证令牌为合法后,接收微服务根据所述客户端提交的微服务访问参数进行处理后的数据并转发回客户端,完成对微服务的访问。
可选地,在所述通过代理平台的签名对比授权验证的步骤之前,还包括:
接收客户端上传的用户名和secret,根据所述用户名自动生成用户ID,将所述用户名、所述用户ID和所述secret保存在代理平台数据库中。
可选地,所述代理平台的签名对比授权验证的步骤包括:
使用MD5加密算法根据由所述用户ID、所述secret和时间戳参数拼接成的字符串生成代理平台的第一签名;
根据请求访问微服务的用户ID在代理平台数据库中进行查询,得到与所述请求访问微服务的用户ID对应的secret,使用MD5加密算法根据所述请求访问微服务的用户ID、所述对应的secret和所述时间戳参数拼接成的字符串生成代理平台的第二签名;
将第一签名和第二签名进行对比,若相同则通过代理平台的签名对比授权验证,使用JWT算法生成代理平台访问令牌并返回给客户端。
可选地,所述微服务的签名对比授权验证的步骤包括:
上传所述用户名、所述用户ID和所述secret至微服务,将所述用户名、所述用户ID和所述secret保存在微服务数据库中;
接收在第三签名和第四签名对比相同后,即在通过微服务的签名对比授权验证后,使用JWT算法生成的微服务认证令牌;
所述第三签名为微服务使用MD5加密算法根据所述用户ID、所述secret和时间戳参数拼接成的字符串生成;
所述第四签名为微服务根据所述用户ID在微服务数据库中进行查询,得到与所述用户ID对应的secret后,使用MD5加密算法根据用户ID、所述对应的secret和所述时间戳参数拼接成的字符串生成。
可选地,所述微服务访问代理方法,还包括:
在所述将第一签名和第二签名进行对比之后,若第一签名和第二签名不相同,则代理平台的签名对比授权验证失败,提示代理平台的签名对比授权验证验证失败信息;
或者在所述第三签名和第四签名对比之后,若第三签名和第四签名不相同,则微服务的签名对比授权验证失败,提示微服务的签名对比授权验证失败信息。
可选地,所述接收微服务根据所述客户端提交的微服务访问参数进行处理后的数据的步骤包括:
接收微服务响应gRPC网关服务发起的gRPC请求的数据,所述gRPC请求为gRPC网关服务根据所述微服务接口的url确定对应的gRPC接口,根据映射规则将http参数转换为gRPC参数后发起的gRPC请求,即将http协议转换为gRPC协议后的请求。
可选地,生成所述映射规则的步骤包括:
根据gRPC协议文件的url生成对应的http接口的url,将gRPC接口的输入输出参数与http接口的输入输出参数生成所述映射规则。
可选地,在所述接收微服务根据所述客户端提交的微服务访问参数进行处理后的数据的步骤之后,还包括:
将用户ID、客户端提交的微服务访问参数以及请求时间戳参数记录在日志系统中,以进行后续的日志审计。
此外,为实现上述目的,本发明还提供一种微服务访问代理设备,所述微服务访问代理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的微服务访问代理程序,所述微服务访问代理程序被所述处理器执行时实现如上述的微服务访问代理方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有微服务访问代理程序,所述微服务访问代理程序被处理器执行时实现如上所述的微服务访问代理方法的步骤。
本发明实施例提出的一种微服务访问代理方法、设备及计算机可读存储介质,在所述方法中,代理系统作为K8S的测试网关,部署在K8S中,并对外暴露HTTP服务。测试人员申请代理系统账号,代理系统创建账号并生成secret返回给测试人员。测试人员根据约定的签名算法MD5(user_id+secret+time)生成签名,+表示字符串连接。测试人员通过提交user_id(用户名)、签名(并非前述secret)、时间戳参数,换取代理平台的access_token(访问令牌)。代理服务器接收到请求后,验证签名,验证通过返回access_token。
在请求访问微服务阶段,提交微服务名、微服务接口的url、对应的微服务接口的请求参数以及授权access_token(访问令牌)到代理平台。代理平台接收到请求后,校验客户端ip及根据签名算法验证授权access_token是否合法。代理平台根据微服务名及签名(MD5(app_id+secret+time))请求微服务的访问授权auth_token(微服务认证令牌),其过程与上述客户端换取代理平台的访问令牌相似,代理平台换取到微服务的认证令牌。然后将微服务访问参数包括微服务名、微服务接口的url、微服务接口的请求参数,连同微服务授权auth_token一并转发给微服务的gRPC-gateway服务、即网关服务,gRPC-gateway服务将http协议转换为gRPC协议,微服务响应处理gRPC请求后将数据返回给代理平台,代理平台再将返回的数据转发给测试人员、即客户端,从而完成对微服务的代理访问和测试。
因此,针对内部微服务gRPC接口的测试,通过可在公网访问的代理系统,利用gRPC-gateway服务将gRPC协议转换为http协议,使得测试人员或访问人员使用http请求即可,降低了学习成本,测试效率更高。从而测试人员既可以通过http方式测试验证微服务接口,将微服务接口测试用例集成传统的自动化测试工具或平台,也可以通过代理服务进行测试。在安全方面,访问代理系统通过客户端IP校验与用户授权验证的双重校验方式,而且代理系统调用微服务使用JWT应用授权验证,从而形成三重安全校验,使得访问安全性更高、测试效率更高。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图;
图2为本发明微服务访问代理方法一实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。
本发明实施例运行设备可以是PC,也可以是智能手机、平板电脑、电子书阅读器、便携计算机等具有显示功能的可移动式终端设备。
如图1所示,该运行设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,运行设备还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动运行设备姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,移动运行设备还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的运行设备结构并不构成对运行设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及微服务访问代理程序。
在图1所示的运行设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的微服务访问代理程序,并执行以下操作:
在通过代理平台的签名对比授权验证后,使用JWT算法生成代理平台访问令牌并返回给客户端;
在接收到客户端提交的微服务访问参数以及所述代理平台访问令牌后,校验客户端IP是否合法并根据JWT签名算法验证所述代理平台访问令牌是否合法,所述客户端提交的微服务访问参数包括微服务名、微服务接口的url、微服务接口的请求参数;
若均合法,则在通过微服务的签名对比授权验证后,获取微服务使用JWT算法生成的微服务认证令牌;
转发所述客户端提交的微服务访问参数和所述微服务认证令牌至微服务的gRPC网关服务,在微服务根据JWT签名算法验证所述微服务认证令牌为合法后,接收微服务根据所述客户端提交的微服务访问参数进行处理后的数据并转发回客户端,完成对微服务的访问。
进一步地,处理器1001可以调用存储器1005中存储的微服务访问代理程序,还执行以下操作:
接收客户端上传的用户名和secret,根据所述用户名自动生成用户ID,将所述用户名、所述用户ID和所述secret保存在代理平台数据库中。
进一步地,处理器1001可以调用存储器1005中存储的微服务访问代理程序,还执行以下操作:
使用MD5加密算法根据由所述用户ID、所述secret和时间戳参数拼接成的字符串生成代理平台的第一签名;
根据请求访问微服务的用户ID在代理平台数据库中进行查询,得到与所述请求访问微服务的用户ID对应的secret,使用MD5加密算法根据所述请求访问微服务的用户ID、所述对应的secret和所述时间戳参数拼接成的字符串生成代理平台的第二签名;
将第一签名和第二签名进行对比,若相同则通过代理平台的签名对比授权验证,使用JWT算法生成代理平台访问令牌并返回给客户端。
进一步地,处理器1001可以调用存储器1005中存储的微服务访问代理程序,还执行以下操作:
上传所述用户名、所述用户ID和所述secret至微服务,将所述用户名、所述用户ID和所述secret保存在微服务数据库中;
接收在第三签名和第四签名对比相同后,即在通过微服务的签名对比授权验证后,使用JWT算法生成的微服务认证令牌;
所述第三签名为微服务使用MD5加密算法根据所述用户ID、所述secret和时间戳参数拼接成的字符串生成;
所述第四签名为微服务根据所述用户ID在微服务数据库中进行查询,得到与所述用户ID对应的secret后,使用MD5加密算法根据用户ID、所述对应的secret和所述时间戳参数拼接成的字符串生成。
进一步地,处理器1001可以调用存储器1005中存储的微服务访问代理程序,还执行以下操作:
在所述将第一签名和第二签名进行对比之后,若第一签名和第二签名不相同,则代理平台的签名对比授权验证失败,提示代理平台的签名对比授权验证验证失败信息;
或者在所述第三签名和第四签名对比之后,若第三签名和第四签名不相同,则微服务的签名对比授权验证失败,提示微服务的签名对比授权验证失败信息。
进一步地,处理器1001可以调用存储器1005中存储的微服务访问代理程序,还执行以下操作:
接收微服务响应gRPC网关服务发起的gRPC请求的数据,所述gRPC请求为gRPC网关服务根据所述微服务接口的url确定对应的gRPC接口,根据映射规则将http参数转换为gRPC参数后发起的gRPC请求,即将http协议转换为gRPC协议后的请求。
进一步地,处理器1001可以调用存储器1005中存储的微服务访问代理程序,还执行以下操作:
根据gRPC协议文件的url生成对应的http接口的url,将gRPC接口的输入输出参数与http接口的输入输出参数生成所述映射规则。
进一步地,处理器1001可以调用存储器1005中存储的微服务访问代理程序,还执行以下操作:
将用户ID、客户端提交的微服务访问参数以及请求时间戳参数记录在日志系统中,以进行后续的日志审计。
参照图2,本发明提供一种微服务访问代理方法,在本发明的微服务访问代理方法的流程中,所述流程包括:
步骤S10,在通过代理平台的签名对比授权验证后,使用JWT算法生成代理平台访问令牌并返回给客户端。
在下文中,以微服务访问代理方法的一种应用平台:kubernetes容器管理平台为例进行解释说明,kubernetes容器管理平台简称为K8S,是一种容器编排技术、工具。微服务(或微服务架构)是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。这些服务通常有自己的堆栈,包括数据库和数据模型;通过K8S的REST API,事件流和消息代理的组合相互通信;它们是按业务能力组织的,分隔服务的线通常称为有界上下文。代理平台使用JWT(Json web token,Json网络令牌)算法生成代理平台访问令牌并返回给客户端,JWT算法把用户信息放到一个JWT字符串中,用户信息部分是明文的,再加上一部分签名区域,签名部分是服务器对于“明文部分+秘钥”加密的,这个加密信息只有服务器端才能解析。用户端只是存储、转发这个JWT字符串。如果客户端篡改了明文部分,那么服务器端解密时候会报错。
步骤S20,在接收到客户端提交的微服务访问参数以及所述代理平台访问令牌后,校验客户端IP是否合法并根据JWT签名算法验证所述代理平台访问令牌是否合法,所述客户端提交的微服务访问参数包括微服务名、微服务接口的url、微服务接口的请求参数。
在代理平台中维护有IP白名单,在接收到客户端提交的微服务访问参数以及代理平台访问令牌后,判断客户端IP是否存在于IP白名单中,如果白名单不为空且客户端IP并未存在于IP白名单中,则证明无访问权限,该客户端IP为非法IP。如果白名单不为空且客户端IP存在于IP白名单中,则证明有访问权限,该客户端IP为合法IP。在判断客户端IP为合法IP后,根据JWT签名算法验证代理平台访问令牌是否为合法,以判断客户端提交的微服务访问参数是否被篡改。若代理平台访问令牌为非法令牌,则证明客户端提交的微服务访问参数已被篡改。微服务名是指微服务的名称,有这个参数才知道需要将请求转发到那个微服务中。微服务接口的url 指的是微服务的接口的url,而微服务接口的请求参数是根据微服务的协议指定的,代理平台仅需要按照微服务的协议进行代理转发即可。
步骤S30,若均合法,则在通过微服务的签名对比授权验证后,获取微服务使用JWT算法生成的微服务认证令牌。
如果客户端IP为合法IP且根据JWT签名算法验证代理平台访问令牌也是合法令牌,则通过微服务的签名对比授权验证后,获取微服务使用JWT算法生成的微服务认证令牌,其微服务认证令牌的获取方式与步骤S10中代理平台访问令牌的获取方式一样,只是其参数不同。
步骤S40,转发所述客户端提交的微服务访问参数和所述微服务认证令牌至微服务的gRPC网关服务,在微服务根据JWT签名算法验证所述微服务认证令牌为合法后,接收微服务根据所述客户端提交的微服务访问参数进行处理后的数据并转发回客户端,完成对微服务的访问。
同样的,与步骤S20一样,上传参数和令牌至发放令牌的一端。在该步骤下,代理平台转发由客户端提交的微服务访问参数至微服务的gRPC(Google Remote ProcedureCall,远程过程调用)网关服务,同时上传从微服务处获取的微服务认证令牌至微服务的gRPC网关服务,用以证明转发的微服务访问参数是否被篡改。在微服务根据JWT签名算法验证微服务认证令牌为合法后、即验证代理平台转发的微服务访问参数未被篡改后,接收微服务根据客户端转发的微服务访问参数进行处理后的数据并转发回客户端,从而完成对微服务的代理访问。
在本实施例中,代理系统作为K8S的测试网关,部署在K8S中,并对外暴露HTTP(Hyper Text Transfer Protocol,超文本传输协议)服务。测试人员申请代理系统账号,代理系统创建账号并生成secret返回给测试人员。测试人员根据约定的签名算法MD5(user_id+secret+time)生成签名,+表示字符串连接。测试人员通过提交user_id(用户名)、签名(并非前述secret)、时间戳参数,换取代理平台的access_token(访问令牌)。代理服务器接收到请求后,验证签名,验证通过返回access_token。
在请求访问微服务阶段,提交微服务名、微服务接口的url、对应的微服务接口的请求参数以及授权access_token(访问令牌)到代理平台。代理平台接收到请求后,校验客户端ip及根据签名算法验证授权access_token是否合法。代理平台根据微服务名及签名(MD5(app_id+secret+time))请求微服务的访问授权auth_token(微服务认证令牌),其过程与上述客户端换取代理平台的访问令牌相似,代理平台换取到微服务的认证令牌。然后将微服务访问参数包括微服务名、微服务接口的url、微服务接口的请求参数,连同微服务授权auth_token一并转发给微服务的gRPC-gateway服务、即网关服务,gRPC-gateway服务将http协议转换为gRPC协议,微服务响应处理gRPC请求后将数据返回给代理平台,代理平台再将返回的数据转发给测试人员、即客户端,从而完成对微服务的代理访问和测试。
因此,针对内部微服务gRPC接口的测试,通过可在公网访问的代理系统,利用gRPC-gateway服务将gRPC协议转换为http协议,使得测试人员或访问人员使用http请求即可,降低了学习成本,测试效率更高。从而测试人员既可以通过http方式测试验证微服务接口,将微服务接口测试用例集成传统的自动化测试工具或平台,也可以通过代理服务进行测试。在安全方面,访问代理系统通过客户端IP校验与用户授权验证的双重校验方式,而且代理系统调用微服务使用JWT应用授权验证,从而形成三重安全校验,使得访问安全性更高、测试效率更高。
为辅助理解上述微服务访问代理方法的步骤,现在通过以下的一个例子来进行解释说明。
测试人员申请代理平台账号,根据测试人员提交的用户名自动生成用户ID(用户名),secret,将所述用户名、用户ID和secret保存在代理平台数据库中,将自动生成的用户ID和secret返回给测试人员(客户端)。
在访问授权的验证阶段,根据MD5(Message-Digest Algorithm 5,信息-摘要算法5)加密算法将(user_id+secret+time)拼接成的字符串得到签名1,测试人员提交用户ID、签名1和时间戳参数到代理平台的认证接口。
代理平台服务器在接收到访问微服务的请求后,根据测试人员提交的用户ID在代理平台数据库中进行查询,得到与测试人员提交的用户ID唯一对应的secret,使用测试人员提交的用户ID、与测试人员提交的用户ID唯一对应的secret和测试人员提交的时间戳参数,根据MD5加密算法生成签名2。将签名1与签名2进行对比,若相同则通过访问代理平台的授权验证,使用JWT算法生成代理平台授权access_token并返回给测试人员。若不相同,则访问代理平台的授权验证失败,提示验证失败信息。
在通过http请求访问微服务阶段,测试人员提交微服务名、微服务接口的url、微服务接口的请求参数及代理平台授权access_token到代理平台的代理接口。在接收到访问微服务的请求后,校验客户端IP是否合法,根据JWT签名算法验证授权的access_token是否合法。
代理平台根据微服务名及签名3请求访问微服务的微服务授权auth_token,其与access_token进行一样的生成和验证。
将微服务名、微服务接口的url、微服务接口的请求参数及微服务授权auth_token提交给微服务的gRPC-gateway服务,gRPC-gateway服务将http协议转换为gRPC协议,微服务处理后将数据返回给代理平台。
代理平台接收到微服务返回的数据后,代理平台将测试人员的user_id、微服务名、微服务接口的url,请求参数及请求时间记录在日志系统中,以便以后做日志审计,最后再将返回数据转发给测试。
可选地,在所述通过代理平台的签名对比授权验证的步骤之前,还包括:
接收客户端上传的用户名和secret,根据所述用户名自动生成用户ID,将所述用户名、所述用户ID和所述secret保存在代理平台数据库中。
测试人员线下向管理员申请代理系统账号,管理员在代理系统管理后台创建账号,管理员在后台填写申请测试人员姓名,然后点击生成,系统接收到提交过来的用户名后,自动生成用户id(此时数据库自增id),secret(由数字、字母、符号组成的随机字符串),在将用户名、用户id,secret一起保存在数据库中,最后将以上信息显示在管理系统后台,管理员再将用户id和secret提供给测试人员。
可选地,所述代理平台的签名对比授权验证的步骤包括:
使用MD5加密算法根据由所述用户ID、所述secret和时间戳参数拼接成的字符串生成代理平台的第一签名;
根据请求访问微服务的用户ID在代理平台数据库中进行查询,得到与所述请求访问微服务的用户ID对应的secret,使用MD5加密算法根据所述请求访问微服务的用户ID、所述对应的secret和所述时间戳参数拼接成的字符串生成代理平台的第二签名;
将第一签名和第二签名进行对比,若相同则通过代理平台的签名对比授权验证,使用JWT算法生成代理平台访问令牌并返回给客户端。
测试人员提交user_id、签名、时间戳参数到代理系统的认证接口(类似于登录,只是用的不是用户名和密码,而是签名验证的方式),获取授权access_token。签名是使用MD5加密算法得到,示例:md5(user_id+secret+time),其中,+表示字符串拼接。
代理服务器接收到请求后,根据上一步提交的参数的用户id去数据库查询用户信息,获取到用户id,secret,时间戳这些参数后再按照约定的签名算法生成签名,与上一步提交的签名进行比对,如果相等则验证通过;如果不相等,则验证失败,提示验证失败信息。验证通过后使用JWT算法生成access_token,并返回给测试人员。
可选地,所述微服务的签名对比授权验证的步骤包括:
上传所述用户名、所述用户ID和所述secret至微服务,将所述用户名、所述用户ID和所述secret保存在微服务数据库中;
接收在第三签名和第四签名对比相同后,即在通过微服务的签名对比授权验证后,使用JWT算法生成的微服务认证令牌;
所述第三签名为微服务使用MD5加密算法根据所述用户ID、所述secret和时间戳参数拼接成的字符串生成;
所述第四签名为微服务根据所述用户ID在微服务数据库中进行查询,得到与所述用户ID对应的secret后,使用MD5加密算法根据用户ID、所述对应的secret和所述时间戳参数拼接成的字符串生成。
代理平台换取微服务的令牌的方式与客户端换取代理平台的令牌的方式类似:
代理平台提交用户名、用户ID和secret到微服务,获取授权auth_token。签名是使用MD5加密算法得到,示例:md5(user_id+secret+time),其中,+表示字符串拼接。
微服务接收到请求后,根据上一步提交的参数的用户id去数据库查询用户信息,获取到用户id,secret,时间戳这些参数后再按照约定的签名算法生成签名,与上一步提交的签名进行比对,如果相等则验证通过;如果不相等,则验证失败,提示验证失败信息。验证通过后使用JWT算法生成auth_token,并返回给测试人员。
可选地,所述微服务访问代理方法,还包括:
在所述将第一签名和第二签名进行对比之后,若第一签名和第二签名不相同,则代理平台的签名对比授权验证失败,提示代理平台的签名对比授权验证验证失败信息;
或者在所述第三签名和第四签名对比之后,若第三签名和第四签名不相同,则微服务的签名对比授权验证失败,提示微服务的签名对比授权验证失败信息。
使用签名对比的方式换取令牌,若签名对比一致相同,则认证通过,下发令牌。若第一签名和第二签名对比一致,则代理平台下发access_token访问令牌至发起换取的客户端;若第三签名和第四签名对比一致,则微服务下发auth_token微服务授权令牌至发起换取的代理平台。当签名对比不一致时,则授权验证失败,返回对应的签名对比授权验证失败信息。在本发明实施例中,对签名对比授权验证失败的提示方式不做限定。
可选地,所述接收微服务根据所述客户端提交的微服务访问参数进行处理后的数据的步骤包括:
接收微服务响应gRPC网关服务发起的gRPC请求的数据,所述gRPC请求为gRPC网关服务根据所述微服务接口的url确定对应的gRPC接口,根据映射规则将http参数转换为gRPC参数后发起的gRPC请求,即将http协议转换为gRPC协议后的请求。
当gRPC-gateway网关服务接收到请求时,就会根据微服务接口的url找到对应的gRPC接口,根据映射规则将http参数转换为gRPC的参数,再发起gPRC请求。
可选地,生成所述映射规则的步骤包括:
根据gRPC协议文件的url生成对应的http接口的url,将gRPC接口的输入输出参数与http接口的输入输出参数生成所述映射规则。
根据gRPC的协议文件 .proto的url生成对应的http接口的url,将gRPC接口的输入输出参数与http接口的输入输出参数生成映射规则。
映射示例:
gRPC http
1 <--> a
2 <--> b
3 <--> c
4 <--> d
可选地,在所述接收微服务根据所述客户端提交的微服务访问参数进行处理后的数据的步骤之后,还包括:
将用户ID、客户端提交的微服务访问参数以及请求时间戳参数记录在日志系统中,以进行后续的日志审计。
代理平台接收到微服务返回的数据后,代理平台将测试人员的userid、微服务名、请求url,请求参数及请求时间记录在日志系统中,以便以后做日志审计,即记录下谁、在什么时候、做了什么的信息。
此外,本发明实施例还提供一种微服务访问代理设备,所述微服务访问代理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的微服务访问代理程序,所述微服务访问代理程序被所述处理器执行时实现如上述的微服务访问代理方法的步骤。
此外,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有微服务访问代理程序,所述微服务访问代理程序被处理器执行时实现如上所述的微服务访问代理方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种微服务访问代理方法,其特征在于,所述微服务访问代理方法包括:
在通过代理平台的签名对比授权验证后,使用JWT算法生成代理平台访问令牌并返回给客户端;
在接收到客户端提交的微服务访问参数以及所述代理平台访问令牌后,校验客户端IP是否合法并根据JWT签名算法验证所述代理平台访问令牌是否合法,所述客户端提交的微服务访问参数包括微服务名、微服务接口的url、微服务接口的请求参数;
若均合法,则在通过微服务的签名对比授权验证后,获取微服务使用JWT算法生成的微服务认证令牌;
转发所述客户端提交的微服务访问参数和所述微服务认证令牌至微服务的gRPC网关服务,在微服务根据JWT签名算法验证所述微服务认证令牌为合法后,接收微服务根据所述客户端提交的微服务访问参数进行处理后的数据并转发回客户端,完成对微服务的访问。
2.如权利要求1所述的微服务访问代理方法,其特征在于,在所述通过代理平台的签名对比授权验证的步骤之前,还包括:
接收客户端上传的用户名和secret,根据所述用户名自动生成用户ID,将所述用户名、所述用户ID和所述secret保存在代理平台数据库中。
3.如权利要求2所述的微服务访问代理方法,其特征在于,所述代理平台的签名对比授权验证的步骤包括:
使用MD5加密算法根据由所述用户ID、所述secret和时间戳参数拼接成的字符串生成代理平台的第一签名;
根据请求访问微服务的用户ID在代理平台数据库中进行查询,得到与所述请求访问微服务的用户ID对应的secret,使用MD5加密算法根据所述请求访问微服务的用户ID、所述对应的secret和所述时间戳参数拼接成的字符串生成代理平台的第二签名;
将第一签名和第二签名进行对比,若相同则通过代理平台的签名对比授权验证,使用JWT算法生成代理平台访问令牌并返回给客户端。
4.如权利要求3所述的微服务访问代理方法,其特征在于,所述微服务的签名对比授权验证的步骤包括:
上传所述用户名、所述用户ID和所述secret至微服务,将所述用户名、所述用户ID和所述secret保存在微服务数据库中;
接收在第三签名和第四签名对比相同后,即在通过微服务的签名对比授权验证后,使用JWT算法生成的微服务认证令牌;
所述第三签名为微服务使用MD5加密算法根据所述用户ID、所述secret和时间戳参数拼接成的字符串生成;
所述第四签名为微服务根据所述用户ID在微服务数据库中进行查询,得到与所述用户ID对应的secret后,使用MD5加密算法根据用户ID、所述对应的secret和所述时间戳参数拼接成的字符串生成。
5.如权利要求4所述的微服务访问代理方法,其特征在于,所述微服务访问代理方法,还包括:
在所述将第一签名和第二签名进行对比之后,若第一签名和第二签名不相同,则代理平台的签名对比授权验证失败,提示代理平台的签名对比授权验证失败信息;
或者在所述第三签名和第四签名对比之后,若第三签名和第四签名不相同,则微服务的签名对比授权验证失败,提示微服务的签名对比授权验证失败信息。
6.如权利要求1所述的微服务访问代理方法,其特征在于,所述接收微服务根据所述客户端提交的微服务访问参数进行处理后的数据的步骤包括:
接收微服务响应gRPC网关服务发起的gRPC请求的数据,所述gRPC请求为gRPC网关服务根据所述微服务接口的url确定对应的gRPC接口,根据映射规则将http参数转换为gRPC参数后发起的gRPC请求,即将http协议转换为gRPC协议后的请求。
7.如权利要求6所述的微服务访问代理方法,其特征在于,生成所述映射规则的步骤包括:
根据gRPC协议文件的url生成对应的http接口的url,将gRPC接口的输入输出参数与http接口的输入输出参数生成所述映射规则。
8.如权利要求2所述的微服务访问代理方法,其特征在于,在所述接收微服务根据所述客户端提交的微服务访问参数进行处理后的数据的步骤之后,还包括:
将用户ID、客户端提交的微服务访问参数以及请求时间戳参数记录在日志系统中,以进行后续的日志审计。
9.一种微服务访问代理设备,其特征在于,所述微服务访问代理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的微服务访问代理程序,所述微服务访问代理程序被所述处理器执行时实现如权利要求1至8中任一项所述的微服务访问代理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有微服务访问代理程序,所述微服务访问代理程序被处理器执行时实现如权利要求1至8中任一项所述的微服务访问代理方法的步骤。
CN202111230033.1A 2021-10-22 2021-10-22 微服务访问代理方法、设备及存储介质 Active CN113676336B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111230033.1A CN113676336B (zh) 2021-10-22 2021-10-22 微服务访问代理方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111230033.1A CN113676336B (zh) 2021-10-22 2021-10-22 微服务访问代理方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113676336A true CN113676336A (zh) 2021-11-19
CN113676336B CN113676336B (zh) 2022-02-08

Family

ID=78550920

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111230033.1A Active CN113676336B (zh) 2021-10-22 2021-10-22 微服务访问代理方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113676336B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113938327A (zh) * 2021-12-17 2022-01-14 亿次网联(杭州)科技有限公司 Vpn服务的访问方法和访问系统、电子设备、存储介质
CN114301708A (zh) * 2021-12-30 2022-04-08 金蝶智慧科技(深圳)有限公司 身份认证方法、身份认证服务器及相关装置
CN114422150A (zh) * 2022-03-29 2022-04-29 飞狐信息技术(天津)有限公司 一种防止被动删除的方法、客户端及服务端
CN114785578A (zh) * 2022-04-13 2022-07-22 福建天晴数码有限公司 一种rpc服务权限管理的方法及系统
CN114900366A (zh) * 2022-05-23 2022-08-12 海南政法职业学院 一种云主机数据访问安全处理方法
CN114928596A (zh) * 2022-04-20 2022-08-19 上海昱极科技有限公司 微服务通信过程中数据传输方法及装置
CN115022021A (zh) * 2022-05-31 2022-09-06 广东浪潮智慧计算技术有限公司 一种访问k8s方法、系统、设备及计算机可读存储介质
CN115114052A (zh) * 2022-08-30 2022-09-27 北京易诚互动网络技术股份有限公司 一种智能提供数据库微服务的方法和装置
CN115665257A (zh) * 2022-12-27 2023-01-31 成都同步新创科技股份有限公司 基于反向代理和动态脚本的请求处理方法及装置
CN115996126A (zh) * 2022-12-02 2023-04-21 北京深盾科技股份有限公司 信息交互方法、应用设备、辅助平台及电子设备
CN117811847A (zh) * 2024-03-01 2024-04-02 北京长亭科技有限公司 一种基于公网与内网结合的人机验证方法以及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200059360A1 (en) * 2018-08-20 2020-02-20 Jpmorgan Chase Bank, N.A. System and method for service-to-service authentication
CN111371881A (zh) * 2020-02-28 2020-07-03 北京字节跳动网络技术有限公司 服务调用方法及设备
CN111865920A (zh) * 2020-06-18 2020-10-30 多加网络科技(北京)有限公司 一种网关认证和身份鉴权的平台及其方法
CN112311783A (zh) * 2020-10-24 2021-02-02 尺度财金(北京)智能科技有限公司 一种认证反向代理方法及系统
CN112612452A (zh) * 2020-12-18 2021-04-06 华人运通(上海)云计算科技有限公司 一种api平台实现方法、装置、设备及存储介质
CN112765639A (zh) * 2021-01-27 2021-05-07 武汉大学 基于零信任访问策略的安全微服务架构及实现方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200059360A1 (en) * 2018-08-20 2020-02-20 Jpmorgan Chase Bank, N.A. System and method for service-to-service authentication
CN111371881A (zh) * 2020-02-28 2020-07-03 北京字节跳动网络技术有限公司 服务调用方法及设备
CN111865920A (zh) * 2020-06-18 2020-10-30 多加网络科技(北京)有限公司 一种网关认证和身份鉴权的平台及其方法
CN112311783A (zh) * 2020-10-24 2021-02-02 尺度财金(北京)智能科技有限公司 一种认证反向代理方法及系统
CN112612452A (zh) * 2020-12-18 2021-04-06 华人运通(上海)云计算科技有限公司 一种api平台实现方法、装置、设备及存储介质
CN112765639A (zh) * 2021-01-27 2021-05-07 武汉大学 基于零信任访问策略的安全微服务架构及实现方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113938327A (zh) * 2021-12-17 2022-01-14 亿次网联(杭州)科技有限公司 Vpn服务的访问方法和访问系统、电子设备、存储介质
CN114301708A (zh) * 2021-12-30 2022-04-08 金蝶智慧科技(深圳)有限公司 身份认证方法、身份认证服务器及相关装置
CN114422150A (zh) * 2022-03-29 2022-04-29 飞狐信息技术(天津)有限公司 一种防止被动删除的方法、客户端及服务端
CN114422150B (zh) * 2022-03-29 2022-07-12 飞狐信息技术(天津)有限公司 一种防止被动删除的方法、客户端及服务端
CN114785578A (zh) * 2022-04-13 2022-07-22 福建天晴数码有限公司 一种rpc服务权限管理的方法及系统
CN114785578B (zh) * 2022-04-13 2023-09-29 福建天晴数码有限公司 一种rpc服务权限管理的方法及系统
CN114928596A (zh) * 2022-04-20 2022-08-19 上海昱极科技有限公司 微服务通信过程中数据传输方法及装置
CN114900366A (zh) * 2022-05-23 2022-08-12 海南政法职业学院 一种云主机数据访问安全处理方法
CN115022021A (zh) * 2022-05-31 2022-09-06 广东浪潮智慧计算技术有限公司 一种访问k8s方法、系统、设备及计算机可读存储介质
CN115022021B (zh) * 2022-05-31 2024-04-26 广东浪潮智慧计算技术有限公司 一种访问k8s方法、系统、设备及计算机可读存储介质
CN115114052A (zh) * 2022-08-30 2022-09-27 北京易诚互动网络技术股份有限公司 一种智能提供数据库微服务的方法和装置
CN115996126A (zh) * 2022-12-02 2023-04-21 北京深盾科技股份有限公司 信息交互方法、应用设备、辅助平台及电子设备
CN115996126B (zh) * 2022-12-02 2023-11-03 北京深盾科技股份有限公司 信息交互方法、应用设备、辅助平台及电子设备
CN115665257A (zh) * 2022-12-27 2023-01-31 成都同步新创科技股份有限公司 基于反向代理和动态脚本的请求处理方法及装置
CN117811847A (zh) * 2024-03-01 2024-04-02 北京长亭科技有限公司 一种基于公网与内网结合的人机验证方法以及装置

Also Published As

Publication number Publication date
CN113676336B (zh) 2022-02-08

Similar Documents

Publication Publication Date Title
CN113676336B (zh) 微服务访问代理方法、设备及存储介质
US9864852B2 (en) Approaches for providing multi-factor authentication credentials
US10362026B2 (en) Providing multi-factor authentication credentials via device notifications
US8516239B2 (en) Virtual authentication proxy server and terminal authentication server
KR101214839B1 (ko) 인증 방법 및 그 시스템
CN112491881B (zh) 跨平台单点登录方法、系统、电子设备及存储介质
CN110430205B (zh) 单点登录方法、装置、设备及计算机可读存储介质
CN104901970B (zh) 一种二维码登录方法、服务器及系统
CN108632291A (zh) 一种第三方授权登录方法及系统
CN105162604B (zh) 一种基于特征图像识别的验证方法、服务器及系统
US10841297B2 (en) Providing multi-factor authentication credentials via device notifications
US20150312248A1 (en) Identity authentication
US20140259121A1 (en) System And Method For Providing A One-Time Key For Identification
CN107580002B (zh) 双因子认证安全管理机登录系统及方法
JP2008242926A (ja) 認証システム、認証方法および認証プログラム
KR20180122843A (ko) Qr코드 진본여부 검증 방법 및 시스템
CN112182522A (zh) 访问控制方法和装置
US20180034817A1 (en) Bulk Joining Of Computing Devices To An Identity Service
JP2017102842A (ja) 本人認証システム、本人認証用情報出力システム、認証サーバー、本人認証方法、本人認証用情報出力方法及びプログラム
KR20140081041A (ko) 전화번호를 이용한 인터넷 사이트 서비스 접속 인증 방법 및 시스템
CN109688096B (zh) Ip地址的识别方法、装置、设备及计算机可读存储介质
CN105095729B (zh) 一种二维码登录方法、服务器及系统
CN111431857B (zh) 超级账本的授权访问方法、装置及存储介质
CN108833105B (zh) 电子签名方法及装置
CN114070610A (zh) Api网关鉴权方法、网关设备及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant