[0029] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0030] 需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
[0031] 下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
[0032] 本发明包括一种认证切换方法。
[0033] 一种认证切换方法的实施例,应用于AAA认证系统,AAA认证系统用以提供至少一个客户端进行认证,其中:
[0034] 提供一第一服务端,与客户端连接,用以接收客户端发送的认证请求;
[0035] 提供复数个第二服务端,复数个第二服务端分别与第一服务端连接,用以可供选择的对客户端发送的认证请求进行认证;
[0036] 第一服务端提供一第一列表,用以储存认证请求;
[0037] 第一服务端还提供至少一个第二列表,每个第二列表用以储存一个认证请求对应的第二服务端,并与对应的认证请求建立关联;
[0038] 如图1所示,认证切换方法还包括:
[0039] 步骤S1、第一服务端于第一列表中获取认证请求;
[0040] 步骤S2、第一服务端根据认证请求获取认证请求对应的第二列表;
[0041] 步骤S3、第一服务端于第二列表中以一预设顺序选取一未进行认证的第二服务端,并将认证请求发送至选取的第二服务端进行认证;
[0042] 步骤S4、第二服务端如对认证请求认证成功,则返回一认证成功信息至第一服务端,第一服务端根据认证成功信息,释放当前的第二服务端并返回步骤S1,如认证失败则返回一认证失败信息至第一服务端,并执行步骤S5;
[0043] 步骤S5、返回执行步骤S3,直到当前认证请求对应的所有第二服务端认证均失败后,返回步骤S1。
[0044] 在认证过程中,通常会存在多个客户端,每个客户端都会向第一服务端发送认证请求,现有技术中的第一服务端只能对客户端发送的认证请求,逐次接收进行验证,因而会造成后续的客户端等待时间超长的问题;
[0045] 上述技术方案,通过第一服务端将将客户端发送的认证请求统一保存于第一列表中,进而克服了客户端发送认证请求时存在的等待时间较长问题,通过第二列表可将认证请求对应的第二服务端储存,其中第二列表中的第二服务端与认证请求关联;
[0046] 对第一列表中的认证请求进行认证的具体操作为,通过第一服务端于第一列表中获取认证请求,其中获取规则可按照第一列表中认证请求的排列顺序获取,服务端根据认证请求获取与认证请求对应的第二列表,并根据第二列表将认证请求发送至第二列表中未进行认证的第二服务端中进行认证,其中于第二列表中选择第二服务端时,可按照服务端于第二列表中的排列顺序;
[0047] 第二服务端于接收到认证请求后,对认证请求进行认证,如验证成功则发送认证成功信息至第一客户端,第一服务端接收到验证成功信息后,释放当前认证的第二客户端,并于第一列表中继续获取未认证的认证请求,继续上述的验证操作;
[0048] 如第二服务验证失败,则发送验证失败信息至第一客户端,第一客户端则根据第二列表将认证请求发送至未认证的第二服务端,进行认证,如过验证成功则执行上述的验证成功操作,如验证失败则于第二列表中继续选择未验证的第二服务端进行验证,如过第二列表中的第二服务端均验证失败,则于第一列表中继续选择一为认证的认证请求,执行最初始的验证,直到所有的认证请求验证完毕。
[0049] 在一种较优的实施方式,第一列表中认证请求的储存顺序为根据第一服务端接收客户端发送的认证请求的时间顺序,通过将时间早认证请求的储存在前,时间晚的储存在后,从而可减少客户端发送认证请求的等待时间。
[0050] 在一种较优的实施方式,第一服务端接收客户端发送的认证请求后,对认证请求进行解析,以获得解析结果,根据解析结果,将认证请求储存至第一列表,将于认证请求对应的第二服务端储存至一第二列表,并于第一列表中建立认证请求与对应的第二列表的关联。
[0051] 在一种较优的实施方式,步骤S3中,如认证请求发送至选中的第二服务端后,超过一预设时间第二服务端未响应,则执行步骤S5。
[0052] 在一种较优的实施方式,预设时间为1分钟。
[0053] 上述技术方案中,第一服务端将认证请求发送至第二服务端后,若此时的第二服务端长时间未响应,则会造成第一服务端长时间的等待,严重影响了对认证请求的处理效率,因此第一服务端提供一预设时间,如在预设时间内第二服务端未响应则视为当前的第二服务端认证失败,则继续将认证请求切换至下一第二服务端对认证请求进行认证,提高了认证的效率。
[0054] 在一种较优的实施方式,第一服务端将每个认证成功信息或者认证失败信息,返回至对应的客户端。
[0055] 上述技术方案中,第一服务端通过将验证请求对应的验证结果如认证成功信息或者认证失败信息,返回至客户端,方便客户端及时的了解认证结果。
[0056] 在一种较优的实施方式,第一列表以链表的形式储存。
[0057] 在一种较优的实施方式,第二列表以链表的形式储存。
[0058] 在一种较优的实施方式,第二服务端为认证服务器。
[0059] 在一种较优的实施方式,认证服务器包括Radius服务器、Tacacs+服务器。
[0060] 以下以一种具体的实施方式进行说明,如图2所示,在第二服务端为Radius服务器2,Tacacs+服务器3的实施例下;
[0061] 通常的客户端存在有多个,如客户端A、客户端B、客户端C,第一服务端1分别接收客户端A、客户端B、客户端C发送的认证请求,
[0062] 分别对每个客户端的对认证请求进行解析,以获得解析结果,并根据解析结果,将每个客户端的认证请求按照接收客户端发送的认证请求的时间顺序,保存于第一列表中其中第一列表中的认证请求排列的顺序依次为客户端A、客户端B、客户端C对应的认证请求,其中第二列表中的第二服务端的排列顺序为Radius服务器,Tacacs+服务器,并且每个客户端的认证请求与第二列表中的Radius服务器2、Tacacs+服务器3所关联;
[0063] 对第一列表中的认证请求进行验证的具体操作为
[0064] 第一服务端1按照顺序于第一列表中获取客户端A的认证请求,并根据第二列表将认证请求发送至Radius服务器2;
[0065] 如果Radius服务器2认证成功,则返回认证成功信息至第一服务端1,第一服务端1则释放当前的Radius服务器2,并于第一列表中获取下一客户端的认证请求即客户端B的认证请,继续执行上述的认证操作;
[0066] 如果当前的Radius服务器2认证失败则,则返回认证失败信息至第一服务端1,第一服务端1根据第二列表,将该认证请求发送至第二列表中的Tacacs+服务器3,如果Tacacs+服务器3认证成功则执行上述的认证成功做操作,如认证失败,此时第二列表中的服务器均已经验证,则于第一列表中切换至下一服务信息即客户端B的认证请求继续执行上述的认证操作,直到第一列表中的客户端A、客户端B、客户端C对应的认证请求全部验证完毕,退出验证操作。
[0067] 以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。