H04L9/40 H04L9/32 H04L67/02 H04L67/51
1.一种微服务架构系统的服务申请处理方法,其特征在于,所述方法包括:
微服务架构系统的网关接口接收任一客户端发送的第一服务申请,并从中提取出第一申请类型;所述微服务架构系统包括多个所述客户端、所述网关接口和多个微服务接口;所述第一申请类型包括登录申请类型和应用申请类型;
当所述第一申请类型为登录申请类型时,从所述第一服务申请中提取出第一用户标识和第一用户密码;并根据所述第一用户标识和所述第一用户密码进行注册用户身份检验处理;所述注册用户身份检验处理成功,则为当前登录用户进行登录令牌和服务接口分配处理生成对应的第一令牌、第一令牌有效期和第一服务链接并保存;并将所述第一令牌和所述第一服务链接向所述客户端回发;
当所述第一申请类型为应用申请类型时,从所述第一服务申请中提取出第二用户标识、第二令牌、第一服务应用链接、第一时间戳、第一授权密钥标识、第一签名数据和第一应用接口参数集合;并从所述第一服务应用链接中提取出第二服务链接;并根据所述第二用户标识、所述第二令牌和所述第一服务应用链接进行登录用户身份检验处理;所述登录用户身份检验处理成功,则根据所述第一时间戳进行客户端时间戳检验处理;所述客户端时间戳检验处理成功,则获取当前时间作为对应的第二时间戳,并按预设的网关签名算法对由所述第二时间戳和所述第一签名数据组成的签名原文进行网关签名处理生成对应的第二签名数据;并由所述第一服务应用链接、所述第一时间戳、所述第一授权密钥标识、所述第一签名数据、所述第一应用接口参数集合、所述第二时间戳和所述第二签名数据组成对应的第二服务申请向所述第二服务链接对应的所述微服务接口发送;并将所述微服务接口回发的第一执行结果数据向所述客户端回发。
2.根据权利要求1所述的微服务架构系统的服务申请处理方法,其特征在于,所述根据所述第一用户标识和所述第一用户密码进行注册用户身份检验处理,具体包括:
所述网关接口查询预设的注册用户列表,将所述注册用户列表中用户标识字段与所述第一用户标识匹配且用户密码字段与所述第一用户密码匹配的注册用户记录记为当前匹配记录;若所述当前匹配记录不为空,则确认所述注册用户身份检验处理成功;所述注册用户列表包括多个所述注册用户记录;所述注册用户记录包括所述用户标识字段和所述用户密码字段。
3.根据权利要求1所述的微服务架构系统的服务申请处理方法,其特征在于,所述为当前登录用户进行登录令牌和服务接口分配处理生成对应的第一令牌、第一令牌有效期和第一服务链接并保存,具体包括:
所述网关接口获取当前时间作为对应的当前时间戳;并基于预设的令牌哈希算法,对由当前登录用户的所述第一用户标识和所述当前时间戳组成的明文数据进行令牌哈希数据计算生成对应的所述第一令牌;
将当前时间作为所述第一令牌对应的有效期起始时间,并将由当前时间与预设的令牌有效期时长相加得到的时间点作为所述第一令牌对应的有效期结束时间,并由得到的所述有效期起始时间与所述有效期结束时间组成与所述第一令牌对应的所述第一令牌有效期;
从多个所述微服务接口中选出一个所述微服务接口作为与当前所述客户端对接的客户端微服务接口,并将所述客户端微服务接口对应的服务链接URL信息作为对应的所述第一服务链接;
将当前登录用户的所述第一用户标识作为对应的第一关键字数据;并由所述第一令牌、所述第一令牌有效期和所述第一服务链接组成对应的第一关键字属性数据;并由得到的所述第一关键字数据和所述第一关键字属性数据组成对应的第一键值对数据;并将所述第一键值对数据存入预设的Redis缓存数据库。
4.根据权利要求3所述的微服务架构系统的服务申请处理方法,其特征在于,所述方法还包括:
所述Redis缓存数据库定期对所述第一令牌有效期过期的所述第一键值对数据进行删除。
5.根据权利要求3所述的微服务架构系统的服务申请处理方法,其特征在于,所述根据所述第二用户标识、所述第二令牌和所述第一服务应用链接进行登录用户身份检验处理,具体包括:
所述网关接口获取当前时间作为对应的当前时间戳;并从所述第一服务应用链接中提取出服务链接URL信息作为当前服务链接;并对所述Redis缓存数据库进行查询,将所述第一关键字数据与所述第二用户标识匹配、且所述第一关键字属性数据的所述第一令牌与所述第二令牌匹配、且所述第一关键字属性数据的所述第一服务链接与所述当前服务链接匹配、且所述第一关键字属性数据的所述第一令牌有效期满足所述当前时间戳的所述第一键值对数据作为对应的匹配键值对数据;若所述匹配键值对数据不为空,则确认所述登录用户身份检验处理成功。
6.根据权利要求1所述的微服务架构系统的服务申请处理方法,其特征在于,所述根据所述第一时间戳进行客户端时间戳检验处理,具体包括:
所述网关接口获取当前时间作为对应的当前时间戳;并对所述当前时间戳与所述第一时间戳的时间差进行计算生成对应的第一时间差;若所述第一时间差小于预设的第一时差阈值,则确认所述客户端时间戳检验处理成功。
7.根据权利要求1所述的微服务架构系统的服务申请处理方法,其特征在于,在所述微服务架构系统的网关接口接收任一客户端发送的第一服务申请之前,所述方法还包括:
所述客户端在处理用户登录时,接收用户输入的用户标识与用户密码生成对应的所述第一用户标识和所述第一用户密码;并由具体为登录申请类型的所述第一申请类型、所述第一用户标识和所述第一用户密码组成对应的所述第一服务申请向所述网关接口发送;并在接收到所述网关接口回发的所述第一令牌和所述第一服务链接时确认所述用户登录成功,并向客户显示登录成功信息,并向客户显示客户端应用界面,并由所述第一用户标识、所述第一令牌和所述第一服务链接组成对应的第一用户登录记录保存在本地。
8.根据权利要求7所述的微服务架构系统的服务申请处理方法,其特征在于,在所述用户登录成功之后,所述方法还包括:
所述客户端通过所述客户端应用界面获取当前登录用户确认提交的界面应用接口标识和应用接口参数集合;并将所述应用接口参数集合作为对应的所述第一应用接口参数集合;
查询预设的反映界面应用接口与微服务应用接口对应关系的第一对应关系表,将所述第一对应关系表中第一界面应用接口标识字段与所述界面应用接口标识匹配的第一对应关系记录记为匹配对应关系记录;并提取所述匹配对应关系记录的第一微服务应用接口链接字段作为对应的第一应用接口链接;所述第一对应关系表包括多个所述第一对应关系记录;所述第一对应关系记录包括所述第一界面应用接口标识字段和所述第一微服务应用接口链接字段;
将本地存储的多个所述第一用户登录记录中与当前登录用户对应的所述第一用户登录记录记为当前登录用户记录;并提取所述当前登录用户记录的所述第一用户标识、所述第一令牌和所述第一服务链接作为对应的所述第二用户标识、所述第二令牌和第二服务链接;并由所述第二服务链接和所述第一应用接口链接组成对应的所述第一服务应用链接;
获取当前时间作为对应的所述第一时间戳,并由所述第一时间戳和所述第一应用接口参数集合组成对应的当前签名原文,并按预设的数字摘要算法对所述当前签名原文进行数字摘要计算生成对应的当前摘要数据,并基于本地预设的第一授权密钥对所述当前摘要数据进行加密生成对应的所述第一签名数据;并将所述第一授权密钥对应的密钥标识作为对应的所述第一授权密钥标识;
由具体为应用申请类型的所述第一申请类型、所述第二用户标识、所述第二令牌、所述第一服务应用链接、所述第一时间戳、所述第一授权密钥标识、所述第一签名数据和所述第一应用接口参数集合组成对应的所述第一服务申请向所述网关接口发送;并在接收到所述网关接口回发的所述第一执行结果数据时,通过所述客户端应用界面向当前登录用户显示所述第一执行结果数据。
9.根据权利要求1所述的微服务架构系统的服务申请处理方法,其特征在于,在所述由所述第一服务应用链接、所述第一时间戳、所述第一授权密钥标识、所述第一签名数据、所述第一应用接口参数集合、所述第二时间戳和所述第二签名数据组成对应的第二服务申请向所述第二服务链接对应的所述微服务接口发送之后,所述方法还包括:
所述微服务接口接收所述网关接口发送的所述第二服务申请,并从中提取出所述第一服务应用链接、所述第一时间戳、所述第一授权密钥标识、所述第一签名数据、所述第一应用接口参数集合、所述第二时间戳和所述第二签名数据;并根据所述第二时间戳进行网关时间戳检验处理;所述网关时间戳检验处理成功,则根据所述第二时间戳、所述第一签名数和所述第二签名数据进行网关签名检验处理;所述网关签名检验处理成功,则根据所述第一授权密钥标识、所述第一时间戳、所述第一应用接口参数集合和所述第一签名数据进行客户端签名检验处理;所述客户端签名检验处理成功,则根据所述第一服务应用链接和所述第一应用接口参数集合进行应用接口调用处理生成对应的所述第一执行结果数据;并将所述第一执行结果数据向所述网关接口回发。
10.根据权利要求9所述的微服务架构系统的服务申请处理方法,其特征在于,所述根据所述第二时间戳进行网关时间戳检验处理,具体包括:
所述微服务接口获取当前时间作为对应的当前时间戳;并对所述当前时间戳与所述第二时间戳的时间差进行计算生成对应的第二时间差;若所述第二时间差小于预设的第二时差阈值,则确认所述网关时间戳检验处理成功。
11.根据权利要求9所述的微服务架构系统的服务申请处理方法,其特征在于,所述根据所述第二时间戳、所述第一签名数和所述第二签名数据进行网关签名检验处理,具体包括:
所述微服务接口按预设的网关签名算法对由所述第二时间戳和所述第一签名数据组成的签名原文进行网关签名处理生成对应的当前签名数据;并在所述当前签名数据与所述第二签名数据匹配时确认所述网关签名检验处理成功。
12.根据权利要求9所述的微服务架构系统的服务申请处理方法,其特征在于,所述根据所述第一授权密钥标识、所述第一时间戳、所述第一应用接口参数集合和所述第一签名数据进行客户端签名检验处理,具体包括:
所述微服务接口将所述第一时间戳和所述第一应用接口参数集合组成对应的当前签名原文;并按预设的数字摘要算法对所述当前签名原文进行数字摘要计算生成对应的当前摘要数据;并基于本地预设的与所述第一授权密钥标识对应的第一授权密钥,对所述当前摘要数据进行加密生成对应的当前签名数据;并在所述当前签名数据与所述第一签名数据匹配时确认所述客户端签名检验处理成功。
13.根据权利要求9所述的微服务架构系统的服务申请处理方法,其特征在于,所述根据所述第一服务应用链接和所述第一应用接口参数集合进行应用接口调用处理生成对应的所述第一执行结果数据,具体包括:
所述微服务接口从所述第一服务应用链接中提取出第二服务链接和第一应用接口链接;并将自身对应的服务链接URL信息作为对应的当前服务链接;若所述当前服务链接与所述第二服务链接匹配,则调用所述第一应用接口链接对应的应用接口根据所述第一应用接口参数集合执行对应的应用处理流程,并将应用接口返回的执行结果数据作为对应的所述第一执行结果数据。
本发明涉及数据处理技术领域,特别涉及一种微服务架构系统的服务申请处理方法。
微服务架构系统指的是基于微服务架构搭建的系统,该类系统从应用层面可以理解为由前端的客户端、中间的网关接口和后台的微服务接口组成。常规情况下微服务架构系统各组成部分的工作流程为:客户端用于向用户提供操作界面并通过操作界面获取用户输入信息,并将获取到的用户输入信息按约定格式封装成对应的服务申请向网关接口发送;网关接口则用于对客户端服务申请的申请类型进行识别,若申请类型为登录申请类型则根据服务申请中携带的用户标识和用户密码进行对应的用户身份验证并为验证通过的用户分配一个用户令牌和一个微服务接口向客户端返回,若申请类型为应用申请类型则先根据服务申请中携带的用户令牌进行合法申请验证并在验证通过后将服务申请中携带的应用参数、应用接口转发到指定的微服务接口进行应用执行并将微服务接口返回的执行结果向客户端返回;微服务接口则用于接收网关接口转发的应用参数和应用接口,并调用与应用接口对应的处理接口根据输入的应用参数执行对应的处理流程得到对应的执行结果,并将得到的执行结果向网关接口回传。
由上述微服务架构系统各组成部分的常规工作流程不难看出,该类系统只在网关接口处基于用户令牌做安全检查,而在各个微服务接口侧却不作任何安全检查(既不检验客户端合法性、也不检验网关合法性)。这种处理方式存在着很大的安全隐患,一旦非法客户端或非法网关接口绕过系统合法网关接口向系统内各个微服务接口直接发起服务申请就会造成系统应用接口外露、系统数据外泄的风险。
本发明的目的,就是针对现有技术的缺陷,提供一种微服务架构系统的服务申请处理方法;一方面对网关接口侧的安全检查方式进行强化,在传统的基于用户令牌的登录用户身份检验之外还增加一个客户端时间戳检验,由此来提高网关接口对超时申请的过滤能力;另一方面在微服务接口侧增加网关时间戳检验、网关签名检验和客户端签名检验,由此来弥补常规微服务架构系统中各个微服务接口不做任何安全检查的实现缺陷,提高微服务接口的安全防范能力。通过本发明,可以规避由毫无安全防范能力的微服务接口带来的系统应用接口外露、系统数据外泄等安全风险问题,可以整体提高微服务架构系统的安全防范能力。
为实现上述目的,本发明实施例提供了一种微服务架构系统的服务申请处理方法,所述方法包括:
微服务架构系统的网关接口接收任一客户端发送的第一服务申请,并从中提取出第一申请类型;所述微服务架构系统包括多个所述客户端、所述网关接口和多个微服务接口;所述第一申请类型包括登录申请类型和应用申请类型;
当所述第一申请类型为登录申请类型时,从所述第一服务申请中提取出第一用户标识和第一用户密码;并根据所述第一用户标识和所述第一用户密码进行注册用户身份检验处理;所述注册用户身份检验处理成功,则为当前登录用户进行登录令牌和服务接口分配处理生成对应的第一令牌、第一令牌有效期和第一服务链接并保存;并将所述第一令牌和所述第一服务链接向所述客户端回发;
当所述第一申请类型为应用申请类型时,从所述第一服务申请中提取出第二用户标识、第二令牌、第一服务应用链接、第一时间戳、第一授权密钥标识、第一签名数据和第一应用接口参数集合;并从所述第一服务应用链接中提取出第二服务链接;并根据所述第二用户标识、所述第二令牌和所述第一服务应用链接进行登录用户身份检验处理;所述登录用户身份检验处理成功,则根据所述第一时间戳进行客户端时间戳检验处理;所述客户端时间戳检验处理成功,则获取当前时间作为对应的第二时间戳,并按预设的网关签名算法对由所述第二时间戳和所述第一签名数据组成的签名原文进行网关签名处理生成对应的第二签名数据;并由所述第一服务应用链接、所述第一时间戳、所述第一授权密钥标识、所述第一签名数据、所述第一应用接口参数集合、所述第二时间戳和所述第二签名数据组成对应的第二服务申请向所述第二服务链接对应的所述微服务接口发送;并将所述微服务接口回发的第一执行结果数据向所述客户端回发。
优选的,所述根据所述第一用户标识和所述第一用户密码进行注册用户身份检验处理,具体包括:
所述网关接口查询预设的注册用户列表,将所述注册用户列表中用户标识字段与所述第一用户标识匹配且用户密码字段与所述第一用户密码匹配的注册用户记录记为当前匹配记录;若所述当前匹配记录不为空,则确认所述注册用户身份检验处理成功;所述注册用户列表包括多个所述注册用户记录;所述注册用户记录包括所述用户标识字段和所述用户密码字段。
优选的,所述为当前登录用户进行登录令牌和服务接口分配处理生成对应的第一令牌、第一令牌有效期和第一服务链接并保存,具体包括:
所述网关接口获取当前时间作为对应的当前时间戳;并基于预设的令牌哈希算法,对由当前登录用户的所述第一用户标识和所述当前时间戳组成的明文数据进行令牌哈希数据计算生成对应的所述第一令牌;
将当前时间作为所述第一令牌对应的有效期起始时间,并将由当前时间与预设的令牌有效期时长相加得到的时间点作为所述第一令牌对应的有效期结束时间,并由得到的所述有效期起始时间与所述有效期结束时间组成与所述第一令牌对应的所述第一令牌有效期;
从多个所述微服务接口中选出一个所述微服务接口作为与当前所述客户端对接的客户端微服务接口,并将所述客户端微服务接口对应的服务链接URL信息作为对应的所述第一服务链接;
将当前登录用户的所述第一用户标识作为对应的第一关键字数据;并由所述第一令牌、所述第一令牌有效期和所述第一服务链接组成对应的第一关键字属性数据;并由得到的所述第一关键字数据和所述第一关键字属性数据组成对应的第一键值对数据;并将所述第一键值对数据存入预设的Redis缓存数据库。
优选的,所述方法还包括:
所述Redis缓存数据库定期对所述第一令牌有效期过期的所述第一键值对数据进行删除。
优选的,所述根据所述第二用户标识、所述第二令牌和所述第一服务应用链接进行登录用户身份检验处理,具体包括:
所述网关接口获取当前时间作为对应的当前时间戳;并从所述第一服务应用链接中提取出服务链接URL信息作为当前服务链接;并对所述Redis缓存数据库进行查询,将所述第一关键字数据与所述第二用户标识匹配、且所述第一关键字属性数据的所述第一令牌与所述第二令牌匹配、且所述第一关键字属性数据的所述第一服务链接与所述当前服务链接匹配、且所述第一关键字属性数据的所述第一令牌有效期满足所述当前时间戳的所述第一键值对数据作为对应的匹配键值对数据;若所述匹配键值对数据不为空,则确认所述登录用户身份检验处理成功。
优选的,所述根据所述第一时间戳进行客户端时间戳检验处理,具体包括:
所述网关接口获取当前时间作为对应的当前时间戳;并对所述当前时间戳与所述第一时间戳的时间差进行计算生成对应的第一时间差;若所述第一时间差小于预设的第一时差阈值,则确认所述客户端时间戳检验处理成功。
优选的,在所述微服务架构系统的网关接口接收任一客户端发送的第一服务申请之前,所述方法还包括:
所述客户端在处理用户登录时,接收用户输入的用户标识与用户密码生成对应的所述第一用户标识和所述第一用户密码;并由具体为登录申请类型的所述第一申请类型、所述第一用户标识和所述第一用户密码组成对应的所述第一服务申请向所述网关接口发送;并在接收到所述网关接口回发的所述第一令牌和所述第一服务链接时确认所述用户登录成功,并向客户显示登录成功信息,并向客户显示客户端应用界面,并由所述第一用户标识、所述第一令牌和所述第一服务链接组成对应的第一用户登录记录保存在本地。
优选的,在所述用户登录成功之后,所述方法还包括:
所述客户端通过所述客户端应用界面获取当前登录用户确认提交的界面应用接口标识和应用接口参数集合;并将所述应用接口参数集合作为对应的所述第一应用接口参数集合;
查询预设的反映界面应用接口与微服务应用接口对应关系的第一对应关系表,将所述第一对应关系表中第一界面应用接口标识字段与所述界面应用接口标识匹配的第一对应关系记录记为匹配对应关系记录;并提取所述匹配对应关系记录的第一微服务应用接口链接字段作为对应的第一应用接口链接;所述第一对应关系表包括多个所述第一对应关系记录;所述第一对应关系记录包括所述第一界面应用接口标识字段和所述第一微服务应用接口链接字段;
将本地存储的多个所述第一用户登录记录中与当前登录用户对应的所述第一用户登录记录记为当前登录用户记录;并提取所述当前登录用户记录的所述第一用户标识、所述第一令牌和所述第一服务链接作为对应的所述第二用户标识、所述第二令牌和第二服务链接;并由所述第二服务链接和所述第一应用接口链接组成对应的所述第一服务应用链接;
获取当前时间作为对应的所述第一时间戳,并由所述第一时间戳和所述第一应用接口参数集合组成对应的当前签名原文,并按预设的数字摘要算法对所述当前签名原文进行数字摘要计算生成对应的当前摘要数据,并基于本地预设的第一授权密钥对所述当前摘要数据进行加密生成对应的所述第一签名数据;并将所述第一授权密钥对应的密钥标识作为对应的所述第一授权密钥标识;
由具体为应用申请类型的所述第一申请类型、所述第二用户标识、所述第二令牌、所述第一服务应用链接、所述第一时间戳、所述第一授权密钥标识、所述第一签名数据和所述第一应用接口参数集合组成对应的所述第一服务申请向所述网关接口发送;并在接收到所述网关接口回发的所述第一执行结果数据时,通过所述客户端应用界面向当前登录用户显示所述第一执行结果数据。
优选的,在所述由所述第一服务应用链接、所述第一时间戳、所述第一授权密钥标识、所述第一签名数据、所述第一应用接口参数集合、所述第二时间戳和所述第二签名数据组成对应的第二服务申请向所述第二服务链接对应的所述微服务接口发送之后,所述方法还包括:
所述微服务接口接收所述网关接口发送的所述第二服务申请,并从中提取出所述第一服务应用链接、所述第一时间戳、所述第一授权密钥标识、所述第一签名数据、所述第一应用接口参数集合、所述第二时间戳和所述第二签名数据;并根据所述第二时间戳进行网关时间戳检验处理;所述网关时间戳检验处理成功,则根据所述第二时间戳、所述第一签名数和所述第二签名数据进行网关签名检验处理;所述网关签名检验处理成功,则根据所述第一授权密钥标识、所述第一时间戳、所述第一应用接口参数集合和所述第一签名数据进行客户端签名检验处理;所述客户端签名检验处理成功,则根据所述第一服务应用链接和所述第一应用接口参数集合进行应用接口调用处理生成对应的所述第一执行结果数据;并将所述第一执行结果数据向所述网关接口回发。
进一步的,所述根据所述第二时间戳进行网关时间戳检验处理,具体包括:
所述微服务接口获取当前时间作为对应的当前时间戳;并对所述当前时间戳与所述第二时间戳的时间差进行计算生成对应的第二时间差;若所述第二时间差小于预设的第二时差阈值,则确认所述网关时间戳检验处理成功。
进一步的,所述根据所述第二时间戳、所述第一签名数和所述第二签名数据进行网关签名检验处理,具体包括:
所述微服务接口按预设的网关签名算法对由所述第二时间戳和所述第一签名数据组成的签名原文进行网关签名处理生成对应的当前签名数据;并在所述当前签名数据与所述第二签名数据匹配时确认所述网关签名检验处理成功。
进一步的,所述根据所述第一授权密钥标识、所述第一时间戳、所述第一应用接口参数集合和所述第一签名数据进行客户端签名检验处理,具体包括:
所述微服务接口将所述第一时间戳和所述第一应用接口参数集合组成对应的当前签名原文;并按预设的数字摘要算法对所述当前签名原文进行数字摘要计算生成对应的当前摘要数据;并基于本地预设的与所述第一授权密钥标识对应的第一授权密钥,对所述当前摘要数据进行加密生成对应的当前签名数据;并在所述当前签名数据与所述第一签名数据匹配时确认所述客户端签名检验处理成功。
进一步的,所述根据所述第一服务应用链接和所述第一应用接口参数集合进行应用接口调用处理生成对应的所述第一执行结果数据,具体包括:
所述微服务接口从所述第一服务应用链接中提取出第二服务链接和第一应用接口链接;并将自身对应的服务链接URL信息作为对应的当前服务链接;若所述当前服务链接与所述第二服务链接匹配,则调用所述第一应用接口链接对应的应用接口根据所述第一应用接口参数集合执行对应的应用处理流程,并将应用接口返回的执行结果数据作为对应的所述第一执行结果数据。
本发明实施例提供了一种微服务架构系统的服务申请处理方法;一方面对网关接口侧的安全检查方式进行强化,在传统的基于用户令牌的登录用户身份检验之外还增加一个客户端时间戳检验,由此来提高网关接口对超时申请的过滤能力;另一方面在微服务接口侧增加网关时间戳检验、网关签名检验和客户端签名检验,由此来弥补常规微服务架构系统中各个微服务接口不做任何安全检查的实现缺陷,提高微服务接口的安全防范能力。通过本发明,解决了由毫无安全防范能力的微服务接口带来的系统应用接口外露、系统数据外泄等安全风险问题,整体提高了微服务架构系统的安全防范能力。
图1为本发明实施例提供的一种微服务架构系统的服务申请处理方法示意图。
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供一种微服务架构系统的服务申请处理方法;本发明实施例的微服务架构系统包括多个客户端、网关接口和多个微服务接口,各个客户端分别与网关接口连接,网关接口还与各个微服务接口连接,任一客户端与网关接口之间默认采用超文本传输安全协议(Hyper Text Transfer Protocol over SecureSocket Layer,HTTPS)作为数据传输协议,任一微服务接口与网关接口之间默认也采用HTTPS协议作为数据传输协议;本发明实施例的微服务架构系统通过本发明实施例提供的方法,在网关接口侧增加了一个客户端时间戳检验,在微服务接口侧增加了网关时间戳检验、网关签名检验和客户端签名检验,由此解决了系统应用接口外露、系统数据外泄等安全风险问题,提高了系统的整体安全防范能力;图1为本发明实施例提供的一种微服务架构系统的服务申请处理方法示意图,如图1所示,本方法主要包括如下步骤:
步骤1,微服务架构系统的网关接口接收任一客户端发送的第一服务申请,并从中提取出第一申请类型;
其中,第一申请类型包括登录申请类型和应用申请类型。
这里,本发明实施例的客户端为应用程序客户端,也可为WEB客户端;客户端发送到网关接口的第一服务申请中包括第一申请类型,该第一申请类型有两种类型:登录申请类型和应用申请类型;当第一申请类型为登录申请类型时,说明当前服务申请是用于处理用户登录的,因此网关接口后续会转至步骤2进行注册用户身份检验和登录令牌和服务接口分配等操作;当第一申请类型为应用申请类型时,说明当前服务申请是用于处理具体应用请求的,因此网关接口后续会转至步骤3进行登录用户身份检验、客户端时间戳检验、网关数字签名、微服务接口数据转发和微服务接口返回数据接收等操作。
需要说明的是,本发明实施例中在网关接口前端的客户端对应这两类型申请类型也有两类实现步骤,具体如下所示。
在微服务架构系统的网关接口接收任一客户端发送的第一服务申请之前,本发明实施例方法还包括:
客户端在处理用户登录时,接收用户输入的用户标识与用户密码生成对应的第一用户标识和第一用户密码;并由具体为登录申请类型的第一申请类型、第一用户标识和第一用户密码组成对应的第一服务申请向网关接口发送;并在接收到网关接口回发的第一令牌和第一服务链接时确认用户登录成功,并向客户显示登录成功信息,并向客户显示客户端应用界面,并由第一用户标识、第一令牌和第一服务链接组成对应的第一用户登录记录保存在本地。
这里,本发明实施例的客户端在处理用户登录时默认会向用户提供一个用户登录界面,通过该用户登录界面获取用户输入的用户标识与用户密码信息作为对应的第一用户标识和第一用户密码;并设置第一申请类型为登录申请类型;再由第一申请类型、第一用户标识和第一用户密码组成第一服务申请,并将第一服务申请发送到网关接口;在网关接口通过后续步骤2完成对应的注册用户身份检验和登录令牌和服务接口分配等操作之后会向客户端返回一个用户令牌和对应的服务链接URL信息即第一令牌和第一服务链接;客户端在接收到第一令牌和第一服务链接之后确认登录成功,并向客户显示登录成功信息、激活客户端应用界面、并在本地保存一个由第一用户标识、第一令牌和第一服务链接组成的第一用户登录记录。
在登录成功之后,当前登录用户即可通过与客户端应用界面的交互操作向客户端提交界面应用接口标识和应用接口参数集合。例如,客户端应用界面上提供一个查询窗口,该查询窗口的功能为按人员姓名进行人员信息,该查询窗口提供两个交互组件:人员姓名输入框和查询提交按钮,查询提交按钮为该查询窗口的功能提交组件;用户在人员姓名输入框中输入人员姓名并点击查询提交按钮进行查询功能提交时,客户端会通过客户端应用界面获取到一个界面应用接口标识和一个应用接口参数集合;该界面应用接口标识即预先与该功能提交组件(查询提交按钮)绑定的一个标识信息,该界面应用接口标识与一个服务应用接口链接URL信息对应;该服务应用接口链接URL信息所需的接口参数即是应用接口参数集合,该应用接口参数集合包括一个查询参数,该查询参数由参数名和参数值组成,参数名就是人员姓名输入框对应的参数变量名称,参数值就是人员姓名输入框的文本信息。客户端在获取到当前登录用户确认提交的界面应用接口标识和应用接口参数集合之后,就会启动第一申请类型为应用申请类型的服务申请处理流程,详见下文所示。
在用户登录成功之后,本发明实施例方法还包括:
步骤A1,客户端通过客户端应用界面获取当前登录用户确认提交的界面应用接口标识和应用接口参数集合;并将应用接口参数集合作为对应的第一应用接口参数集合;
步骤A2,查询预设的反映界面应用接口与微服务应用接口对应关系的第一对应关系表,将第一对应关系表中第一界面应用接口标识字段与界面应用接口标识匹配的第一对应关系记录记为匹配对应关系记录;并提取匹配对应关系记录的第一微服务应用接口链接字段作为对应的第一应用接口链接;
其中,第一对应关系表包括多个第一对应关系记录;第一对应关系记录包括第一界面应用接口标识字段和第一微服务应用接口链接字段;
这里,常规情况下大家都习惯将服务应用接口链接URL信息与客户端用户界面上各个组件直接绑定,其中的服务应用接口链接URL信息由服务链接URL信息+应用接口链接URL信息构成;这种处理方式有个问题就是一旦后台服务应用接口链接URL信息发生变化就需要对客户端的应用程序代码或网页代码进行逐个组件修改,并重新发布对应的客户端应用程序或客户端网页;为解决这个问题,本发明实施例通过在客户端侧设置一个能够反映界面应用接口与微服务应用接口对应关系的对应关系表即第一对应关系表以及登录时获取的第一服务链接来对客户端界面组件和服务应用接口链接URL信息进行解耦合;
在第一对应关系表中,每个第一对应关系记录对应客户端界面上的一个功能提交组件,第一界面应用接口标识字段存储的就是该功能提交组件对应的界面应用接口标识,第一微服务应用接口链接字段存储的就是该功能提交组件对应的应用接口链接URL信息;在客户端的应用程序代码或网页代码中与各功能提交组件绑定的不再是服务应用接口链接URL信息而是界面应用接口标识;每次后台的服务应用接口链接URL信息发生变化时,无需修改客户端的应用程序代码或网页代码中各功能提交组件对应的界面应用接口标识,只需更新客户端本地存储的第一服务链接和第一对应关系表中与各个界面应用接口标识对应的应用接口链接即可;
步骤A3,将本地存储的多个第一用户登录记录中与当前登录用户对应的第一用户登录记录记为当前登录用户记录;并提取当前登录用户记录的第一用户标识、第一令牌和第一服务链接作为对应的第二用户标识、第二令牌和第二服务链接;并由第二服务链接和第一应用接口链接组成对应的第一服务应用链接;
例如,本地存储了2个第一用户登录记录:
第一用户登录记录1为(第一用户标识为01,第一令牌为1234567,第一服务链接为“www.test1/”),
第一用户登录记录2为(第一用户标识为02,第一令牌为2234567,第一服务链接为“www.test2/”);
当前登录用户的对应的第一用户标识为02,前述步骤A2获得的第一应用接口链接为“searchbyname/”;
那么,当前登录用户记录为第一用户登录记录2,得到的第二用户标识为02,第二令牌为2234567,第二服务链接为“www.test2/”;由第二服务链接和第一应用接口链接组成的第一服务应用链接为“www.test2/searchbyname/”;
步骤A4,获取当前时间作为对应的第一时间戳,并由第一时间戳和第一应用接口参数集合组成对应的当前签名原文,并按预设的数字摘要算法对当前签名原文进行数字摘要计算生成对应的当前摘要数据,并基于本地预设的第一授权密钥对当前摘要数据进行加密生成对应的第一签名数据;并将第一授权密钥对应的密钥标识作为对应的第一授权密钥标识;
这里,本发明实施例在客户端侧产生的签名数据即第一签名数据的表达式为:
第一签名数据=fe(key,data),
data=fm(当前签名原文),
当前签名原文=第一时间戳+第一应用接口参数集合,
key为第一授权密钥,data为当前摘要数据,fe()为第一授权密钥对应的加密算法,fm()为预设的数字摘要算法;
在客户端侧的预设的数字摘要算法应与微服务接口侧预设的数字摘要算法保持一致,该数字摘要算法可为安全散列算法(Secure Hash Algorithm,SHA)族算法中的一种,或信息摘要算法(Message-Digest Algorithm,MD)族算法中的一种,或其他任一种无需密钥介入的消息认证码算法;本发明实施例的所有客户端预先都会在微服务架构系统上完成客户端注册,在系统处理客户端注册时会为每个客户端分配一个授权密钥即第一授权密钥存于客户端本地,每个授权密钥有一个对应的授权密钥标识即第一授权密钥标识也会保存在客户端本地;另外,系统还会在后台微服务接口侧发布各个注册客户端的第一授权密钥标识+第一授权密钥,这样便于微服务接口能够对客户端进行签名检验;本发明实施例系统分配的第一授权密钥的密钥类型包括对称密钥类型和非对称密钥类型两大类,每类密钥类型还包括多种具体的对称密钥加密算法和多种具体的非对称密钥加密算法,在具体实施时可根据具体实施要求进行定制,在此就不对每种类型下的每种算法进行一一罗列;需要说明的是在系统完成客户端的第一授权密钥分配的同时也会对其对应的加密算法进行指定,那么,每次客户端在计算第一签名数据时就使用第一授权密钥按其对应的加密算法对由(第一时间戳+第一应用接口参数集合)计算得到的当前摘要数据进行加密并将加密结果作为对应的第一签名数据;
步骤A5,由具体为应用申请类型的第一申请类型、第二用户标识、第二令牌、第一服务应用链接、第一时间戳、第一授权密钥标识、第一签名数据和第一应用接口参数集合组成对应的第一服务申请向网关接口发送;并在接收到网关接口回发的第一执行结果数据时,通过客户端应用界面向当前登录用户显示第一执行结果数据。
这里,本发明实施例客户端将第一服务申请发送到网关接口之后,网关接口会通过后续步骤3完成对应的登录用户身份检验、客户端时间戳检验、网关数字签名、微服务接口数据转发和微服务接口返回数据接收等操作,并将微服务接口的返回数据也就是第一执行结果数据向客户端回发;客户端在接收到第一执行结果数据之后,通过客户端应用界面向当前登录用户进行结果显示。
步骤2,当第一申请类型为登录申请类型时,网关接口从第一服务申请中提取出第一用户标识和第一用户密码;并根据第一用户标识和第一用户密码进行注册用户身份检验处理;注册用户身份检验处理成功,则为当前登录用户进行登录令牌和服务接口分配处理生成对应的第一令牌、第一令牌有效期和第一服务链接并保存;并将第一令牌和第一服务链接向客户端回发;
这里,当前步骤2为网关接口对于第一申请类型为登录申请类型的第一服务申请的处理步骤;
具体包括:步骤21,从第一服务申请中提取出第一用户标识和第一用户密码;
这里,由前文中客户端处理用户登录的技术实现可知,第一申请类型为登录申请类型时,第一服务申请除了第一申请类型之外还包括第一用户标识和第一用户密码;
步骤22,根据第一用户标识和第一用户密码进行注册用户身份检验处理;
具体包括:网关接口查询预设的注册用户列表,将注册用户列表中用户标识字段与第一用户标识匹配且用户密码字段与第一用户密码匹配的注册用户记录记为当前匹配记录;若当前匹配记录不为空,则确认注册用户身份检验处理成功;
其中,注册用户列表包括多个注册用户记录;注册用户记录包括用户标识字段和用户密码字段;
这里,在本发明实施例的网关接口侧会预先设置一个注册用户列表;该注册用户列表中的每个注册用户记录对应一个已经完成注册的系统用户,记录中的用户标识字段和用户密码字段则对应该系统用户的用户标识信息和用户密码信息;将在当前客户端输入用户标识和用户密码的用户记为当前用户,那么网关接口查询注册用户列表得到的当前匹配记录若不为空就说明注册用户列表中存在与当前用户匹配的注册用户记录即当前用户为一个合法的已注册用户,自然应确认注册用户身份检验处理成功;反之,网关接口得到的当前匹配记录若为空则说明注册用户列表中不存在与当前用户匹配的注册用户记录即当前用户为一个未注册用户,此时网关接口会确认注册用户身份检验处理失败、停止执行后续步骤并向客户端返回类似用户为非注册用户之类的错误提示信息;
步骤23,注册用户身份检验处理成功,则为当前登录用户进行登录令牌和服务接口分配处理生成对应的第一令牌、第一令牌有效期和第一服务链接并保存;
具体包括:步骤231,网关接口获取当前时间作为对应的当前时间戳;并基于预设的令牌哈希算法,对由当前登录用户的第一用户标识和当前时间戳组成的明文数据进行令牌哈希数据计算生成对应的第一令牌;
这里,第一令牌的表达式为:
第一令牌=ft(第一用户标识+当前时间戳),
ft()为预设的令牌哈希算法,预设的令牌哈希算法可为SHA族算法中的一种,或MD族算法中的一种,或其他任一种无需密钥介入的消息认证码算法;
步骤232,将当前时间作为第一令牌对应的有效期起始时间,并将由当前时间与预设的令牌有效期时长相加得到的时间点作为第一令牌对应的有效期结束时间,并由得到的有效期起始时间与有效期结束时间组成与第一令牌对应的第一令牌有效期;
这里,预设的令牌有效期时长为一个预先设定的经验值;例如,令牌有效期时长为15天,当前时间为2022-01-02,那么第一令牌有效期的有效期起始时间为2022-01-02、有效期结束时间为2022-01-17;
步骤233,从多个微服务接口中选出一个微服务接口作为与当前客户端对接的客户端微服务接口,并将客户端微服务接口对应的服务链接URL信息作为对应的第一服务链接;
这里,本发明实施例系统会在网关接口侧存储各个微服务接口的服务链接URL信息和该服务链接支持的应用链接列表,同时还会保留客户端所需的应用链接列表;本发明实施例的网关接口还可以获得各个微服务接口的实时负载流量;在从多个微服务接口中选出一个微服务接口作为与当前客户端对接的客户端微服务接口时,网关接口先将能够支持当前客户端所需应用链接列表的微服务接口都作为候选微服务接口,再从多个候选微服务接口中任选一个实时负载流量不超过预设流量阈值的作为与当前客户端对接的客户端微服务接口;在确定了客户端微服务接口之后,网关接口将本地存储的与该客户端微服务接口对应的服务链接URL信息提取出来作为对应的第一服务链接;
步骤234,将当前登录用户的第一用户标识作为对应的第一关键字数据;并由第一令牌、第一令牌有效期和第一服务链接组成对应的第一关键字属性数据;并由得到的第一关键字数据和第一关键字属性数据组成对应的第一键值对数据;并将第一键值对数据存入预设的Redis缓存数据库;
这里,本发明实施例的网关接口还与一个Redis缓存数据库连接,该Redis缓存数据库为一个用于作数据缓存的Redis数据库;网关接口在为当前登录用户分配了第一令牌、第一令牌有效期和第一服务链接之后会在该Redis缓存数据库进行数据备份;由公知的Redis数据库的存储结构可知本发明实施例的Redis缓存数据库的数据存储结构为键值对结构,每个键值对由关键字+关键字属性组成;网关接口在进行数据备份时,将第一用户标识作为第一关键字数据、将第一令牌+第一令牌有效期+第一服务链接作为第一关键字属性数据,再由第一关键字数据+第一关键字属性数据组成对应的键值对也就是第一键值对数据,再将第一键值对数据存入Redis缓存数据库;需要说明的是,本发明实施例的Redis缓存数据库还会定期对第一令牌有效期过期的第一键值对数据进行删除,这样就能及时删除已过期的登录备份数据;
步骤24,将第一令牌和第一服务链接向客户端回发。
步骤3,当第一申请类型为应用申请类型时,网关接口从第一服务申请中提取出第二用户标识、第二令牌、第一服务应用链接、第一时间戳、第一授权密钥标识、第一签名数据和第一应用接口参数集合;并从第一服务应用链接中提取出第二服务链接;并根据第二用户标识、第二令牌和第一服务应用链接进行登录用户身份检验处理;登录用户身份检验处理成功,则根据第一时间戳进行客户端时间戳检验处理;客户端时间戳检验处理成功,则获取当前时间作为对应的第二时间戳,并按预设的网关签名算法对由第二时间戳和第一签名数据组成的签名原文进行网关签名处理生成对应的第二签名数据;并由第一服务应用链接、第一时间戳、第一授权密钥标识、第一签名数据、第一应用接口参数集合、第二时间戳和第二签名数据组成对应的第二服务申请向第二服务链接对应的微服务接口发送;并将微服务接口回发的第一执行结果数据向客户端回发;
这里,当前步骤3为网关接口对于第一申请类型为应用申请类型的第一服务申请的处理步骤;
具体包括:步骤31,从第一服务申请中提取出第二用户标识、第二令牌、第一服务应用链接、第一时间戳、第一授权密钥标识、第一签名数据和第一应用接口参数集合;并从第一服务应用链接中提取出第二服务链接;
这里,由前文中客户端在用户登录成功之后的技术实现可知,第一申请类型为应用申请类型时,第一服务申请除了第一申请类型之外还包括第二用户标识、第二令牌、第一服务应用链接、第一时间戳、第一授权密钥标识、第一签名数据和第一应用接口参数集合;第一服务应用链接又由第二服务链接和第一应用接口链接组成;
步骤32,根据第二用户标识、第二令牌和第一服务应用链接进行登录用户身份检验处理;
具体包括:网关接口获取当前时间作为对应的当前时间戳;并从第一服务应用链接中提取出服务链接URL信息作为当前服务链接;并对Redis缓存数据库进行查询,将第一关键字数据与第二用户标识匹配、且第一关键字属性数据的第一令牌与第二令牌匹配、且第一关键字属性数据的第一服务链接与当前服务链接匹配、且第一关键字属性数据的第一令牌有效期满足当前时间戳的第一键值对数据作为对应的匹配键值对数据;若匹配键值对数据不为空,则确认登录用户身份检验处理成功;
这里,第一令牌有效期满足当前时间戳就是指当前时间戳对应的时间在第一令牌有效期对应的有效时段内;如果网关接口从Redis缓存数据库获取的匹配键值对数据为空则说明Redis缓存数据库中没有与第二用户标识、第二令牌和第一服务应用链接匹配的备份信息,此时网关接口会确认登录用户身份检验处理失败、停止执行后续步骤并向客户端返回类似用户登录信息过期需要重新登录之类的错误提示信息;本发明实施例在网关接口侧设置该登录用户身份检验可以提高网关接口对过期登录的过滤能力;
步骤33,登录用户身份检验处理成功,则根据第一时间戳进行客户端时间戳检验处理;
具体包括:网关接口获取当前时间作为对应的当前时间戳;并对当前时间戳与第一时间戳的时间差进行计算生成对应的第一时间差;若第一时间差小于预设的第一时差阈值,则确认客户端时间戳检验处理成功;
这里,预设的第一时差阈值是一个预先设定的经验值,默认为5秒;如果第一时间戳与当前时间的间隔超过5秒则客户端时间戳检验处理失败,此时网关接口会停止执行后续步骤并将当前处理的第一服务申请抛弃,并向客户端回发提示申请超时的错误状态信息;本发明实施例在网关接口侧增加该客户端时间戳检验就是为了提高网关接口对超时申请的过滤能力;
步骤34,客户端时间戳检验处理成功,则获取当前时间作为对应的第二时间戳,并按预设的网关签名算法对由第二时间戳和第一签名数据组成的签名原文进行网关签名处理生成对应的第二签名数据;
这里,本发明实施例在网关接口侧产生的签名数据即第二签名数据的表达式为:
第二签名数据=fs(第二时间戳+第一签名数据),
fm()为预设的网关签名算法,预设的网关签名算法可为SHA族算法中的一种,或MD族算法中的一种,或其他任一种无需密钥介入的消息认证码算法;
步骤35,由第一服务应用链接、第一时间戳、第一授权密钥标识、第一签名数据、第一应用接口参数集合、第二时间戳和第二签名数据组成对应的第二服务申请向第二服务链接对应的微服务接口发送;
这里,网关接口从第一服务申请提取出第一服务应用链接、第一时间戳、第一授权密钥标识、第一签名数据、第一应用接口参数集合再结合网关接口产生的第二时间戳和第二签名数据组成第二服务申请;由第一服务申请的第一服务应用链接可知本次对应的微服务接口的服务链接URL信息为第二服务链接,因此将第二服务申请向第二服务链接对应的微服务接口发送;
需要说明的是,微服务接口在收到第二服务申请之后的处理步骤如下所示;在由第一服务应用链接、第一时间戳、第一授权密钥标识、第一签名数据、第一应用接口参数集合、第二时间戳和第二签名数据组成对应的第二服务申请向第二服务链接对应的微服务接口发送之后,本发明实施例方法还包括:
步骤B1,微服务接口接收网关接口发送的第二服务申请,并从中提取出第一服务应用链接、第一时间戳、第一授权密钥标识、第一签名数据、第一应用接口参数集合、第二时间戳和第二签名数据;
步骤B2,并根据第二时间戳进行网关时间戳检验处理;
具体包括:微服务接口获取当前时间作为对应的当前时间戳;并对当前时间戳与第二时间戳的时间差进行计算生成对应的第二时间差;若第二时间差小于预设的第二时差阈值,则确认网关时间戳检验处理成功;
这里,预设的第二时差阈值是一个预先设定的经验值,默认为1秒;如果第二时间戳与当前时间的间隔超过1秒则网关时间戳检验处理失败,此时微服务接口会停止执行后续步骤并将当前处理的第二服务申请抛弃,并向网关接口回发提示申请超时的错误状态信息;本发明实施例在微服务接口侧增加该网关时间戳检验就是为了提高微服务接口对超时申请的过滤能力;
步骤B3,网关时间戳检验处理成功,则根据第二时间戳、第一签名数和第二签名数据进行网关签名检验处理;
具体包括:微服务接口按预设的网关签名算法对由第二时间戳和第一签名数据组成的签名原文进行网关签名处理生成对应的当前签名数据;并在当前签名数据与第二签名数据匹配时确认网关签名检验处理成功;
这里,微服务接口侧预设的网关签名算法与网管接口侧预设的网关签名算法是一致的,微服务接口通过同样的网关签名算法基于第二时间戳和第一签名数据组成的签名原文重算一次签名即当前签名数据;若当前签名数据与第二签名数据匹配说明微服务接口与网关接口采用的是同一种网关签名算法,并由此确定当前转发数据的网关接口的合法性;反之,若当前签名数据与第二签名数据不匹配则说明微服务接口与网关接口采用的不是同一种网关签名算法,并由此确定当前转发数据的网关接口的非法性,此时微服务接口会停止执行后续步骤并将当前处理的第二服务申请抛弃,并向网关接口回发提示非授权网关的错误状态信息;本发明实施例在微服务接口侧增加该网关签名检验就是为了提高微服务接口对接入的非法网关接口的防范能力;
步骤B4,网关签名检验处理成功,则根据第一授权密钥标识、第一时间戳、第一应用接口参数集合和第一签名数据进行客户端签名检验处理;
具体包括:微服务接口将第一时间戳和第一应用接口参数集合组成对应的当前签名原文;并按预设的数字摘要算法对当前签名原文进行数字摘要计算生成对应的当前摘要数据;并基于本地预设的与第一授权密钥标识对应的第一授权密钥,对当前摘要数据进行加密生成对应的当前签名数据;并在当前签名数据与第一签名数据匹配时确认客户端签名检验处理成功;
这里,微服务接口侧预设的数字摘要算法、第一授权密钥以及第一授权密钥的加密算法都与客户端侧预设的数字摘要算法、第一授权密钥以及第一授权密钥的加密算法是一致的,微服务接口通过与客户端同样的签名计算流程重算一次签名即当前签名数据,若当前签名数据与第一签名数据匹配说明微服务接口与客户端采用的是同一种数字摘要算法、同一个第一授权密钥、同一个密钥加密算法,并由此确定当前发起服务申请的客户端的合法性;反之,若当前签名数据与第一签名数据不匹配则说明微服务接口与客户端采用的不是同一种数字摘要算法、或不是同一个第一授权密钥、或不是同一个密钥加密算法,并由此确定当前发起服务申请的客户端的非法性,此时微服务接口会停止执行后续步骤并将当前处理的第二服务申请抛弃,并向网关接口回发提示非授权客户端的错误状态信息;本发明实施例在微服务接口侧增加该客户端签名检验就是为了提高微服务接口对接入的非法客户端的防范能力;
步骤B5,客户端签名检验处理成功,则根据第一服务应用链接和第一应用接口参数集合进行应用接口调用处理生成对应的第一执行结果数据;
具体包括:微服务接口从第一服务应用链接中提取出第二服务链接和第一应用接口链接;并将自身对应的服务链接URL信息作为对应的当前服务链接;若当前服务链接与第二服务链接匹配,则调用第一应用接口链接对应的应用接口根据第一应用接口参数集合执行对应的应用处理流程,并将应用接口返回的执行结果数据作为对应的第一执行结果数据;
这里,微服务接口调用的应用接口可为本地的函数、类或库程序调用接口,也可为另一个微服务接口的服务应用链接URL信息;当应用接口为本地的函数、类或库程序调用接口时,第一应用接口参数集合即为对应的函数、类或库程序调用接口的输入参数;当应用接口为另一个微服务接口的服务应用链接URL信息时,第一应用接口参数集合即为向该服务应用链接URL信息发起的服务申请中的申请参数;无论应用接口是本地的函数、类或库程序调用接口还是另一个微服务接口的服务应用链接URL信息,在根据输入的第一应用接口参数集合完成对应的应用处理流程执行之后该应用接口都会返回一个返回数据即第一执行结果数据;
步骤B6,将第一执行结果数据向网关接口回发;
这里,微服务接口收到上述应用接口返回的第一执行结果数据会立即将其向网关接口回发;
步骤36,网关接口将微服务接口回发的第一执行结果数据向客户端回发。
综上所述,本发明实施例提供的一种微服务架构系统的服务申请处理方法;一方面对网关接口侧的安全检查方式进行强化,在传统的基于用户令牌的登录用户身份检验之外还增加一个客户端时间戳检验,由此来提高网关接口对超时申请的过滤能力;另一方面在微服务接口侧增加网关时间戳检验、网关签名检验和客户端签名检验,由此来弥补常规微服务架构系统中各个微服务接口不做任何安全检查的实现缺陷,提高微服务接口的安全防范能力。通过本发明,解决了由毫无安全防范能力的微服务接口带来的系统应用接口外露、系统数据外泄等安全风险问题,整体提高了微服务架构系统的安全防范能力。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
本文发布于:2023-04-12 21:22:25,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/1/86067.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |