本发明涉及计算机,尤其涉及一种权限认证方法、装置、设备和存储介质。
背景技术:
1、随着互联网技术的快速发展,权限认证类需求也在日益增长,权限认证手段也呈现出多样化和复杂化的趋势。现有技术中通过设置各种鉴权组件来实现对业务设备的鉴权处理。
2、然而,发明人发现现有技术至少存在如下问题:当业务设备在同一时间统一接入网络进行鉴权时,网络负担大,弹性不够,使得鉴权处理成为流量瓶颈,大量设备会阻塞在鉴权处理过程,导致网络拥塞或接入超时,后续服务因为流量过大而宕机等情况。
技术实现思路
1、本发明实施例的目的是提供一种权限认证方法、装置、设备和存储介质,其对权限认证过程进行流量控制,防止大量设备接入时造成网络拥塞和接入超时。
2、为实现上述目的,本发明实施例提供了一种权限认证方法,包括:
3、在业务设备接入鉴权时,将鉴权请求输入至鉴权组件;
4、向所述鉴权组件对应的第一令牌桶发起令牌请求,以获取所述第一令牌桶中的令牌;其中,所述第一令牌桶用于按照预设的令牌获取速度向第二令牌桶获取令牌,以及在接收到所述令牌请求且自身存在令牌时将所述令牌分配给所述鉴权组件;
5、若在预设时长内所述鉴权组件获取到所述令牌,利用所述鉴权组件对所述鉴权请求进行鉴权处理,并输出鉴权结果;所述鉴权结果为鉴权失败或鉴权成功;
6、若在预设时长内所述鉴权组件未获取到所述令牌,输出鉴权失败的鉴权结果。
7、作为上述方案的改进,所述在业务设备接入鉴权时,将鉴权请求输入至鉴权组件,包括:
8、在业务设备接入鉴权时,获取鉴权请求对应的权限认证链和权限认证策略,其中,所述权限认证链包括若干个鉴权组件,所述鉴权组件与所述第一令牌桶一一对应;
9、根据每一所述鉴权组件的优先级顺序,依次选取所述权限认证链中的鉴权组件,并将所述鉴权请求输入至当前选取的鉴权组件;
10、则所述方法还包括:
11、在得到当前选取的所述鉴权组件的鉴权结果之后,判断是否满足所述权限认证策略对应的鉴权结果置出条件;
12、若满足,则根据所述鉴权请求输入的每一所述鉴权组件的鉴权结果,确定所述鉴权请求的最终鉴权结果;
13、若不满足,则将所述鉴权请求输入至下一鉴权组件,直到判定满足所述权限认证策略对应的鉴权结果置出条件。
14、作为上述方案的改进,所述方法还包括:
15、确定若干个所述鉴权组件对应的第一令牌桶的权重分配策略;
16、当所述权重分配策略为均衡权重分配策略时,每一所述鉴权组件对应的第一令牌桶的权重值相同;
17、当所述权重分配策略为自定义权重分配策略时,根据所述自定义权重分配策略确定每一所述鉴权组件对应的第一令牌桶的权重值;
18、根据每一所述第一令牌桶的权重值,确定每一所述第一令牌桶的令牌获取速度;其中,所述令牌获取速度与所述权重值呈正相关关系。
19、作为上述方案的改进,当所述权重分配策略为均衡权重分配策略时,在向所述鉴权组件对应的第一令牌桶发起令牌请求之后,所述方法还包括:
20、若所述鉴权组件对应的第一令牌桶中不存在令牌,则在所述预设时长内,按照第一速度调整步长提高所述鉴权组件对应的第一令牌桶的令牌获取速度,并按照第二速度调整步长降低所述权限认证链中其他鉴权组件对应的第一令牌桶的令牌获取速度。
21、作为上述方案的改进,在所述将鉴权请求输入至鉴权组件之后,所述方法还包括:
22、当不存在在前的鉴权组件,或在前的鉴权组件均未获取到所述令牌时,执行步骤:向所述鉴权组件对应的第一令牌桶发起令牌请求,以获取所述第一令牌桶中的令牌;
23、当存在在前的鉴权组件且在前的任一鉴权组件已获取到所述令牌时,直接利用所述鉴权组件对所述鉴权请求进行鉴权处理,并输出鉴权结果。
24、作为上述方案的改进,所述权限认证策略为全部鉴权成功、任意鉴权成功或指定鉴权成功;
25、则所述全部鉴权成功对应的鉴权结果置出条件为:当前的鉴权组件输出鉴权失败的鉴权结果,或当前的鉴权组件为所述权限认证链中最后一个鉴权组件;
26、所述任意鉴权成功对应的鉴权结果置出条件为:当前的鉴权组件输出鉴权成功的鉴权结果,或当前的鉴权组件为所述权限认证链中最后一个鉴权组件;
27、所述指定鉴权成功对应的鉴权结果置出条件为:当前的鉴权组件为预设的指定鉴权组件,且输出鉴权成功的鉴权结果,或当前的鉴权组件为所述权限认证链中最后一个鉴权组件。
28、作为上述方案的改进,所述利用所述鉴权组件对所述鉴权请求进行鉴权处理,并输出鉴权结果,包括:
29、获取所述鉴权请求中包含的所述业务设备的唯一标识信息和访问密码;
30、利用所述鉴权组件对应预设的鉴权方式,将所述唯一标识信息和所述访问密码与所述鉴权组件对应存储的所有鉴权信息进行匹配,以得到鉴权结果并输出。
31、本发明实施例还提供了一种权限认证装置,包括:
32、鉴权组件获取模块,用于在业务设备接入鉴权时,将鉴权请求输入至鉴权组件;
33、令牌请求模块,用于向所述鉴权组件对应的第一令牌桶发起令牌请求,以获取所述第一令牌桶中的令牌;其中,所述第一令牌桶用于按照预设的令牌获取速度向第二令牌桶获取令牌,以及在接收到所述令牌请求且自身存在令牌时将所述令牌分配给所述鉴权组件;
34、鉴权结果输出模块,用于若在预设时长内所述鉴权组件获取到所述令牌,利用所述鉴权组件对所述鉴权请求进行鉴权处理,并输出鉴权结果;所述鉴权结果为鉴权失败或鉴权成功;若在预设时长内所述鉴权组件未获取到所述令牌,输出鉴权失败的鉴权结果。
35、本发明实施例还提供了一种权限认证设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任意一项所述的权限认证方法。
36、本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述任意一项所述的权限认证方法。
37、与现有技术相比,本发明公开的权限认证方法、装置、设备和存储介质,通过下发令牌的方式来实现对鉴权组件执行鉴权处理过程的流量控制,针对海量业务设备接入的情景,能够保障鉴权组件不成为阻塞点,防止后续服务因为流量过大而宕机,有效地防止网络拥塞和接入超时,同时防止恶意、异常设备持续登录对服务和网络造成的不良影响。
1.一种权限认证方法,其特征在于,包括:
2.如权利要求1所述的权限认证方法,其特征在于,所述在业务设备接入鉴权时,将鉴权请求输入至鉴权组件,包括:
3.如权利要求2所述的权限认证方法,其特征在于,所述方法还包括:
4.如权利要求3所述的权限认证方法,其特征在于,当所述权重分配策略为均衡权重分配策略时,在向所述鉴权组件对应的第一令牌桶发起令牌请求之后,所述方法还包括:
5.如权利要求2所述的权限认证方法,其特征在于,在所述将鉴权请求输入至鉴权组件之后,所述方法还包括:
6.如权利要求2所述的权限认证方法,其特征在于,所述权限认证策略为全部鉴权成功、任意鉴权成功或指定鉴权成功;
7.如权利要求1至5任一项所述的权限认证方法,其特征在于,所述利用所述鉴权组件对所述鉴权请求进行鉴权处理,并输出鉴权结果,包括:
8.一种权限认证装置,其特征在于,包括:
9.一种权限认证设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任意一项所述的权限认证方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至7中任意一项所述的权限认证方法。