1.本发明涉及第三方中间件认证授权方法技术领域,尤其涉及一种基于中间件系统安全访问多套现有应用系统的方法。
背景技术:2.目前,一般的准入访问现有应用系统服务的方法,是通过正向或者反向的代理网关进行用户请求的分发处理,亦或者是通过代理终端开辟的代理通道进行资源的准入访问。而上述两种方式访问内部系统都有明显的缺陷,就是服务提供方不能认证访问者的身份,有效地识别合法访问,并依据身份信息限制或放宽访问的控制级别。
技术实现要素:3.本发明的目的是为了解决现有技术中存在的缺点,而提出的一种基于中间件系统安全访问多套现有应用系统的方法。
4.为了实现上述目的,本发明采用了如下技术方案:一种基于中间件系统安全访问多套现有应用系统的方法,所述方法包括如下步骤:
5.步骤s1:中间件系统获取现有应用系统的用户数据、用户等级、用户权限和对应可访问的资源列表;
6.步骤s2:用户端通过现有应用系统提供的账号信息向中间件系统申请接入访问服务,并提交请求授权访问的资源列表;
7.步骤s3:中间件系统验证用户在现有应用系统的合法性和所属用户级别的资源属性,并为该用户生成相应的令牌和私有密钥,以及加密算法列表;
8.步骤s4:用户端获取所述的令牌和私有密钥,以及从所述加密算法列表选择一种加密方式,生成具有用户身份证明的签名数据,并发送到中间件系统进行校验;
9.步骤s5:中间件系统接收并验证签名数据是否有效,并检验用户请求资源路径访问权限是否准入,验证通过后,向现有应用系统发送请求访问服务,否则拦截此请求。
10.优选地,中间件系统使用令牌桶算法周期性检测现有应用系统运行状况,控制和阻断超过系统承受的用户访问流量。
11.优选地,所述步骤s4还包括对现有应用系统的用户进行认证和授权的方法,所述对现有应用系统的用户进行认证和授权的方法包括如下步骤:
12.步骤s41:用户端获取当前用户提供的现有系统账号和密码,同时携带需要授权访问的资源路径列表,通过http协议的basic认证方式发送到中间件系统请求鉴权验证;
13.步骤s42:中间件系统通过现有应用系统提供的的用户列表中验证s41提交的用户的合法性,并验证其提交的资源路径列表是否在准入列表中,若验证无误,为该用户临时生成一个32位的令牌字符串、加密算法类型列表和16位的私钥密码;
14.步骤s43:用户端随机生成一个10位无符号十进制整数的第一字符串,在s32步骤中中间件系统返回的加密算法类型中,选择其中一种算法,并把其序号拼接在第一字符串
的第11位上,用户端获取当前的10位时间戳信息串,并把该时间戳信息拼接在第一字符串末尾中,形成一个21位的字符串;
15.步骤s44:将所述s42步骤中返回得到的令牌字符串,和s43步骤中的21位的字符串拼接形成第二字符串,所述第二字符串使用s42步骤中得到的私钥密码,通过s43步骤中所选的加密算法加密生成第三字符串,再将第三字符串与第二字符串进行拼接形成第四字符串,再对第四字符串进行base64编码,形成最后的签名数据。
16.优选地,步骤s5还包括对现有应用系统用户合法认证校验方法,所述对现有应用系统用户合法认证校验方法包括如下步骤:
17.步骤s51:所述中间件系统从s44得到的签名数据中,通过base64算法解码并分离出加密前的字符串r、所选择的加密算法序号n、加密后的字符串p以及时间戳字符串t;
18.步骤s52:中间件系统将所述s51步骤中获取得到的时间戳字符串t,与当前时间戳信息进行比对,若t在当前时间的前后2小时内,则认为此用户发送过来的签名数据在有效期内,否则拒绝此用户的这次鉴权;
19.步骤s53:中间件系统通过现有应用系统提供的的用户列表中取出加密算法类型列表中的第n个序号算法m和为所述用户分配的16位的私钥密码q;
20.步骤s54:从s51步骤中取得加密前的字符串,通过s53得出的加密算法m,对s51获取到的加密前字符串r进行加密,加密的密钥使用s53得到的私钥密码q,形成新的加密字符串k,通过比对k与s51步骤得到的字符p,若完全一样则验证成功,若不一样则拒绝此次的用户鉴权。
21.优选地,所述令牌桶算法包括如下步骤:
22.步骤ss1:所述中间件系统会恒定按照现有应用系统设置的最大处理准入用户数量q,每隔1/q秒的时间,放入一个令牌到指定中间件系统处理队列里,若队列满了将不再添加令牌;
23.步骤ss2:所述中间件系统会让每次通过鉴权的用户从ss1步骤中的队列里尝试拿走令牌,若成功拿走才开始转发此用户请求到现有应用系统里,若没有令牌可拿,则此用户会继续等待下一个ss1发令牌周期,直到可能拿走为止。
24.本发明具有如下有益效果:
25.本发明能解决多套现有应用系统统一访问的用户身份认证和资源授权而提供的第三方中间件系统,中间件系统能正确识别访问者的身份,确定访问者拥有的访问权限,并周期性检测系统运行状况,从而优化整体访问流量,减轻内部服务的压力,提升服务的并发效率。多套现有应用系统只需要对接所述中间件系统,就可以保证服务的高可用性和灵活的访问规则控制,有效提高内部服务资源的利用率和稳定性。
附图说明
26.图1为本发明一种基于中间件系统安全访问多套现有应用系统的方法流程图;
具体实施方式
27.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
28.参照图1,本发明提供的为了实现上述目的,本发明采用了如下技术方案:一种基于中间件系统安全访问多套现有应用系统的方法,所述方法包括如下步骤:
29.步骤s1:中间件系统获取现有应用系统的用户数据、用户等级、用户权限和对应可访问的资源列表;
30.步骤s2:用户端通过现有应用系统提供的账号信息向中间件系统申请接入访问服务,并提交请求授权访问的资源列表;
31.步骤s3:中间件系统验证用户在现有应用系统的合法性和所属用户级别的资源属性,并为该用户生成相应的令牌和私有密钥,以及加密算法列表;
32.步骤s4:用户端获取所述的令牌和私有密钥,以及从所述加密算法列表选择一种加密方式,生成具有用户身份证明的签名数据,并发送到中间件系统进行校验;
33.其中,用户端请求获取令牌和私钥的方法,包括如下步骤:
34.步骤s41:用户端获取当前用户提供的现有系统账号和密码,同时携带需要授权访问的资源路径列表,通过http协议的basic认证方式发送到中间件系统请求鉴权验证;
35.步骤s42:中间件系统通过现有应用系统提供的的用户列表中验证s41提交的用户的合法性,并验证其提交的资源路径列表是否在准入列表中,若验证无误,为该用户临时生成一个32位的令牌字符串、加密算法类型列表和16位的私钥密码;
36.步骤s43:用户端随机生成一个10位无符号十进制整数的第一字符串,在s32步骤中中间件系统返回的加密算法类型中,选择其中一种算法,并把其序号拼接在第一字符串的第11位上,用户端获取当前的10位时间戳信息串,并把该时间戳信息拼接在第一字符串末尾中,形成一个21位的字符串;
37.步骤s44:将所述s42步骤中返回得到的令牌字符串,和s43步骤中的21位的字符串拼接形成第二字符串,所述第二字符串使用s42步骤中得到的私钥密码,通过s43步骤中所选的加密算法加密生成第三字符串,再将第三字符串与第二字符串进行拼接形成第四字符串,再对第四字符串进行base64编码,形成最后的签名数据。
38.步骤s5:中间件系统接收并验证签名数据是否有效,并检验用户请求资源路径访问权限是否准入,验证通过后,向现有应用系统发送请求访问服务,否则拦截此请求。
39.其中,中间件系统鉴权用户端的请求方法,包括如下步骤:
40.步骤s51:所述中间件系统从s44得到的签名数据中,通过base64算法解码并分离出加密前的字符串r、所选择的加密算法序号n、加密后的字符串p以及时间戳字符串t;
41.步骤s52:中间件系统将所述s51步骤中获取得到的时间戳字符串t,与当前时间戳信息进行比对,若字符串t在当前时间的前后2小时内,则认为此用户发送过来的签名数据在有效期内,否则拒绝此用户的这次鉴权;
42.步骤s53:中间件系统通过现有应用系统提供的的用户列表中取出加密算法类型列表中的第m个算法m和为所述用户分配的16位的私钥密码q;
43.步骤s54:从s51步骤中取得加密前的字符串,通过s53得出的加密算法m,对s51获取到的加密前字符串r进行加密,加密的密钥使用s53得到的私钥密码q,形成新的加密字符串k,通过比对k与s51步骤得到的字符p,若完全一样则验证成功,若不一样则拒绝此次的用
户鉴权。
44.现有用户认证的方式是采取用户名和密码的方式作账号认证,容易被非法分子盗用,因此在不暴露密码方式前提下,每次认证都采取不一样的随机字符串校验方式进行验证用户的合法性,并增加了该次校验的时效性,若发送时间不对,也会被拒绝,通过此种方式提高验证授权的安全性。
45.为了控制和阻断超过系统承受的用户访问流量,中间件系统使用令牌桶算法周期性检测现有应用系统运行状况,其令牌桶算法包括如下步骤:
46.步骤ss1:所述中间件系统会恒定按照现有应用系统设置的最大处理准入用户数量q,每隔1/q秒的时间,放入一个令牌到指定中间件系统处理队列里,若队列满了将不再添加令牌;
47.步骤ss2:所述中间件系统会让每次通过鉴权的用户从ss1步骤中的队列里尝试拿走令牌,若成功拿走才开始转发此用户请求到现有应用系统里,若没有令牌可拿,则此用户会继续等待下一个ss1发令牌周期,直到可能拿走为止。
48.最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。