云环境下租户密码服务会话亲和方法、系统、介质及设备与流程

文档序号:32351228发布日期:2022-11-26 13:13阅读:41来源:国知局
云环境下租户密码服务会话亲和方法、系统、介质及设备与流程

1.本发明涉及密钥管理技术领域,具体地说是一种云环境下租户密码服务会话亲和方法、系统、介质及设备。


背景技术:

2.密码作为网络空间安全体系的重要组成部分,是网络空间安全和信任机制的“基因”和关键技术。传统密码应用的建设需要引入不同类型、数量众多的密码设备、密码产品,对接各种密码应用业务。这种传统密码应用建设模式带来的直接后果便是:设备分散部署、难以管理;密码应用对接集成复杂;密码资源缺乏集约使用和调度;不适应云计算环境;密码服务缺乏量化,密码应用缺乏监管,难以满足合规建设的要求。
3.为解决上述问题,催生出云密码服务技术,其集成多种密码设备,通过灵活的多模式服务聚合能力,为用户提供统一管理、使用便捷的密码服务。
4.在云密码服务场景中,传统的密码设备模式不再适用,因为在传统模式中,密码设备的使用方从设备拥有者转变为服务租赁者,需要满足多租户的隔离、认证、限流等多种需求。因此云服务器密码机的行业标准《gmt 0104-2021 云服务器密码机技术规范》,推荐使用http协议提供服务,本发明也使用http作为传输协议。
5.在云密码服务场景中服务资源可以提供给多个租户使用,租户付费购买一个或多个服务资源,并在其基础上创建密码应用,大多数应用使用密码服务时,运算都不是一次完成的,而是有打开会话、执行运算、关闭会话等多个步骤,这些步骤都有上下文关联关系,为同一个上下文提供密码运算的服务器必须始终是同一个,否则必须在多个服务器之前同步上下文状态,而同步上下文状态会导致服务器同步等待耗时过长,在高并发场景下会对性能造成严重影响。另一种思路是使用会话亲和机制,确保使用相同上下文时,提供服务的后端资源是同一个。 同时云密码服务场景中服务资源的性能不是均衡的,由于密码设备的性能差异较大,为了充分利用密码设备资源,必须要有一个方法或系统确保既能实现会话亲和,又能实现带权重的负载均衡。


技术实现要素:

6.为此,本发明所要解决的技术问题在于提供一种云环境下租户密码服务会话亲和方法、系统、介质及设备,将租户使用密码服务进行密码运算的上下文和打开会话的过程关联起来,解决了密码运算服务同一个会话的多次请求被随机调度和无法负载均衡问题。
7.为解决上述技术问题,本发明提供如下技术方案:云环境下租户密码服务亲和方法,包括如下步骤:s1)通过密码服务网关导入密码微服务单元的地址信息并设置密码微服务单元的权重,其中,=0,1,2,3,

n;s2)密码服务网关收到来自密码应用sdkm获取cookie的请求,按照权重的大小随
机向密码微服务单元发起权重轮询,m为大于零的整数;其中,权重大的密码微服务单元获得权重轮询的概率较高,权重小的密码微服务单元获得权重轮询的概率较小,即,权重大的密码微服务单元具有较大几率优先获得权重轮询;s3)在接收到密码服务网关的权重轮询时,密码微服务单元先生成具有地址信息和时间戳的信息,然后根据信息生成相应的,再将反馈至密码服务网关,其中,包含有地址信息和时间戳,时间戳为被轮询到的密码微服务单元做出响应的时间点;s4)密码服务网关将返回给密码应用sdkm;s5)密码应用sdkm向密码服务网关发出带有的密码服务请求,密码服务网关解析获取地址信息,然后通过密码微服务单元发起密码服务调用,服务器密码机为密码应用sdkm提供密码服务;其中,服务器密码机与密码微服务单元相对应。
8.上述云环境下租户密码服务亲和方法,在步骤s5)中,密码应用sdkm向密码服务网关同时发出的密码服务请求数量大于或等于1;当同时发出的密码服务请求数量大于1时,每个密码服务请求都带有一个独有的cookie。
9.上述云环境下租户密码服务亲和方法,每次在发起密码服务调用会话之前,密码应用sdkm都重新获取一次cookie。
10.上述云环境下租户密码服务亲和方法,在步骤s5)中,具体操作为:s5-1)密码应用sdkm向密码服务网关发出带有的打开密码服务调用会话请求;s5-2)密码服务网关解析获取地址信息,并将打开密码服务调用会话请求转发至与地址信息相对应的密码微服务单元;s5-3)密码微服务单元对打开密码服务调用会话进行响应,在允许打开密码服务调用会话时,密码微服务单元执行打开与服务器密码机之间的密码服务会话;s5-4)在得到密码微服务单元的允许打开密码服务调用会话的响应后,密码应用sdkm向密码服务网关发出带有的密码运算请求以调用密码运算服务;s5-5)密码服务网关解析获取地址信息,并将密码运算请求转发至与地址信息相对应的密码微服务单元;s5-6)密码微服务单元将密码运算请求中的http或https请求转换为自定义协议并向服务器密码机发起密码运算请求;s5-7)服务器密码机收到密码运算请求后进行密码运算并将运算结果返回至密码微服务单元,微服务单元将运算结果经密码服务网关返回至密码应用sdkm。
11.上述云环境下租户密码服务亲和方法,在步骤s5-3)中,在允许打开密码服务调用会话时,将与密码服务调用会话的句柄进行一对一绑定,并在密码运算请求中使用与密码服务调用会话的句柄。
12.上述云环境下租户密码服务亲和方法,调用密码运算服务时使用与密码服务调用会话的句柄,以对调用密码运算服务的发出者进行确认和区分。
13.云环境下租户密码服务会话亲和系统,包括:密码应用sdk,为云密码服务厂商提供的动态函数库实例,负责将输入的参数转换为对密码服务的http或https调用;密码服务网关,为云密码服务的总入口,负责对传输流量进行处理,其中,所述处理包括鉴权、限流和负载均衡;密码微服务,用于提供http或https运算的服务实例,并负责将http或https请求中的参数转换为服务器密码机标准函数接口库需要的参数;服务器密码机,为真正提供密码运算的密码模块,负责为云密码服务提供硬件级别的硬件运算能力;其中,服务器密码机和密码微服务是一对一绑定关系;密码应用sdk依次通过密码服务网关、密码微服务与服务器密码机通信连接。
14.计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述云环境下租户密码服务亲和方法。
15.计算机设备,包括可读存储介质、处理器以及存储在可读存储介质上并可在处理器上运行的计算机程序,所述计算机程序被处理器执行时实现上述云环境下租户密码服务亲和方法。
16.本发明的技术方案取得了如下有益的技术效果:1.支持指定服务权重;2.性能极高,传统cookie方案使用一致性hash算法决定后端服务,需要对cookie执行摘要运算,然后使用算法选取后端服务,本发明直接从cookie中解析出ip地址,性能明显提高;3.密码微服务新增实例时不会造成业务错误,传统cookie方案在新增服务实例时,部分正常运行的业务由于会负载到新的服务实例上,造成业务错误,本发明在新增实例时不会对正在运行的业务造成影响,只有重新获取cookie后有会负载到新的服务实例上。
附图说明
17.图1为本发明中云环境下租户密码服务会话亲和系统的工作原理图;图2为利用云环境下租户密码服务会话亲和系统进行密码服务调用的流程图;图3为本发明中cookie获取流程图;图4为图3中获得cookie的使用流程图;图5为基于云环境下租户密码服务会话亲和方法的密码服务流程图;图6为基于云环境下租户密码服务会话亲和方法的密码服务另一种流程图;图7为租户应用调用密码服务逻辑接口示意图;图8为本发明中可进行云环境下租户密码服务会话亲和处理的计算机设备原理图。
具体实施方式
18.下面结合示例,针对本发明进行进一步说明。
19.如图1所示,云环境下租户密码服务会话亲和系统,包括密码应用sdk、密码服务网关、密码微服务和服务器密码机,密码应用sdk依次通过密码服务网关、密码微服务与服务器密码机通信连接,服务器密码机和密码微服务是一对一绑定关系。在实际应用过程中,服务器密码机可以更换为其他密码设备,如签名验签服务器、时间戳服务器、虚拟服务器密码机等。
20.其中,密码应用sdk,为云密码服务厂商提供的动态函数库实例,负责将输入的参数转换为对密码服务的http或https调用;密码服务网关,为云密码服务的总入口,负责对传输流量进行处理,其中,所述处理包括鉴权、限流和负载均衡;密码微服务,用于提供http或https运算的服务实例,并负责将http或https请求中的参数转换为服务器密码机标准函数接口库需要的参数;服务器密码机,为真正提供密码运算的密码模块,负责为云密码服务提供硬件级别的硬件运算能力。图1中,箭头1表示密码应用sdk1的服务调用,箭头2表示密码应用sdk2的服务应用。
21.如图2所示,本发明中密码应用sdk进行密码服务调用时,先行获取cookie,然后在打开密码服务调用会话,再由服务器密码机执行密码运算并返回运算结果,然后关闭密码服务调用会话。图2中仅示出了两个线程,在多个线程的情况下,密码应用sdk的处理流程和两个线程时的处理流程完全相同。
22.其中,如图3和图4所示,密码应用sdk通过获取一个含有提供密码服务设备或代理设备的ip地址的cookie并在调用密码服务过程中使用该cookie完成密码服务调用,实现密码服务会话亲和,具体步骤如下:s1)通过密码服务网关导入密码微服务单元的地址信息并设置密码微服务单元的权重,其中,=0,1,2,3,

n;其中,密码微服务单元表示为n个密码微服务单元中的第个密码微服务单元;s2)密码服务网关收到来自密码应用sdkm获取cookie的请求,按照权重的大小随机向密码微服务单元发起权重轮询,m为大于零的整数;s3)在接收到密码服务网关的权重轮询时,密码微服务单元先生成具有地址信息和时间戳的信息,然后根据信息生成相应的,再将反馈至密码服务网关,其中,包含有地址信息和时间戳,时间戳为被轮询到的密码微服务单元做出响应的时间点;s4)密码服务网关将返回给密码应用sdkm;s5)密码应用sdkm向密码服务网关发出带有的密码服务请求,密码服务网关解析获取地址信息,然后通过密码微服务单元发起密码服务调用,服务器密码机为密码应用sdkm提供密码服务;其中,服务器密码机与密码微服务单元相对应;密码应用sdkm调用密码服务的具体操作包括如下步骤:
s5-1)密码应用sdkm向密码服务网关发出带有的打开密码服务调用会话请求;s5-2)密码服务网关解析获取地址信息,并将打开密码服务调用会话请求转发至与地址信息相对应的密码微服务单元;s5-3)密码微服务单元对打开密码服务调用会话进行响应,在允许打开密码服务调用会话时,密码微服务单元执行打开与服务器密码机之间的密码服务会话;在允许打开密码服务调用会话时,将与密码服务调用会话的句柄进行一对一绑定,并在密码运算请求中使用与密码服务调用会话的句柄;s5-4)在得到密码微服务单元的允许打开密码服务调用会话的响应后,密码应用sdkm向密码服务网关发出带有的密码运算请求以调用密码运算服务;s5-5)密码服务网关解析获取地址信息,并将密码运算请求转发至与地址信息相对应的密码微服务单元;s5-6)密码微服务单元将密码运算请求中的http或https请求转换为自定义协议并向服务器密码机发起密码运算请求;s5-7)服务器密码机收到密码运算请求后进行密码运算并将运算结果返回至密码微服务单元,微服务单元将运算结果经密码服务网关返回至密码应用sdkm。在调用密码运算服务时使用与密码服务调用会话的句柄,以对调用密码运算服务的发出者进行确认和区分。
23.本实施例中,在步骤s5)中,密码应用sdkm向密码服务网关同时发出的密码服务请求数量大于或等于1;当同时发出的密码服务请求数量大于1时,每个密码服务请求都带有一个独有的cookie。且每次在发起密码服务调用会话之前,密码应用sdkm都重新获取一次cookie。而在一次密码服务调用会话之中,可以发起多次密码服务请求,在同一次密码服务调用会话中发起的密码服务请求使用的cookie为同一个cookie。图5和图6所示的为本发明中密码应用sdk调用密码服务的整个流程,图5所示的流程采用密码微服务单元进行协议转换,图6所示的流程则采用协议转换服务器进行协议转换。结合图5和图6所示的两个流程图可以看出,获取cookie时负载到服务器密码机,后续打开会话、执行密码运算就会负载到服务器密码机,实现了会话亲和的效果,而获取cookie时,负载到服务器密码机的概率是可以按要求指定的,权重轮询的选中服务器密码机的概率为:
ꢀꢀ
,因此实现了可指定权重的会话亲和。
24.本发明中,将与密码服务调用会话的句柄进行一对一绑定,可以使每个密码服务调用会话都有自己的一个cookie,从而可以使即便仅有一个密码应用sdk也能产生负载均衡的效果。
25.例如,图7所示为在某公有云上某个租户应用调用某一种密码服务逻辑接口,其中,密码应用sdk要使用密码服务,密码微服务单元一共有两个,管理员将密码微服务单元
p1的权重q1设为6,密码微服务单元p2的权重q2设为4。
26.在该密码应用sdk调用密码服务需要5个密码服务调用会话,先获取5个cookie,获取cookie时,采用权重轮询策略对两个密码微服务单元进行轮询,而cookie则由被轮询的密码微服务单元根据规则生成,五个cookie如表1所示。
27.表1被轮询的密码微服务单元生成的cookie其中,cookie1、cookie3和cookie4由密码微服务单元p1生成,cookie2和cookie5由密码微服务单元p2生成。密码微服务单元p1生成的cookie较多的原因是密码微服务单元p1的权重比较高。如果两个密码微服务单元生成的cookie总数量足够多,两个密码微服务单元生成的cookie数量之比无限趋近于6:4。
28.在获取cookie之后,密码应用sdk打开5个密码服务调用会话,打开密码服务调用会话时在每个密码服务调用请求中传带入一个cookie,且每个密码服务调用请求中的cookie均与其他密码调用服务请求中的cookie不同,在打开密码服务调用会话后,将密码服务调用会话的句柄与该密码服务调用会话所用到的cookie一对一绑定。密码应用sdk在一个密码服务调用会话中的所有密码调用服务请求均会使用该密码服务调用会话的句柄,密码服务调用请求中须带入密码服务调用会话的句柄与该密码服务调用会话所用到的cookie。而在云环境下,会话数量巨大,因而可认为每个会话执行密码运算的负载是相同的,因此上述示例中,密码运算的负载比例可认为是6:4。
29.基于上述云环境下租户密码会话亲和方法,相应的,本实例中还提供一种存储有计算机程序的计算机可读存储介质,该计算机程序被处理器执行时实现如下步骤:获取含有密码微服务单元ip地址信息以及请求cookie的时间信息的cookie,利用上述cookie调用密码服务,进行密码运算,在调用密码服务时,对上述cookie进行解析,获得上述cookie中所含有的ip地址信息,并将调用密码服务的请求发送至具有上述ip地址信息的密码微服务单元,然后由该密码微服务单元调用服务器密码机完成密码运算,并将密码运算结果返回至密码应用sdk。
30.如图8所示,基于上述云环境下租户密码服务会话亲和方法以及计算机可读存储介质,本实施例中,还提供了一种计算机设备,其包括可读存储介质、处理器以及存储在可读存储介质上并可在处理器上运行的计算机程序,其中可读存储介质与处理器均设置在总线上,处理器执行计算机程序时实现如下步骤:获取含有密码微服务单元ip地址信息以及
请求cookie的时间信息的cookie,利用上述cookie调用密码服务,进行密码运算,在调用密码服务时,对上述cookie进行解析,获得上述cookie中所含有的ip地址信息,并将调用密码服务的请求发送至具有上述ip地址信息的密码微服务单元,然后由该密码微服务单元调用服务器密码机完成密码运算,并将密码运算结果返回至密码应用sdk。
31.显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本专利申请权利要求的保护范围之中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1