基于OAuth协议在同账号多端登录时使原访问令牌失效的方法与流程

文档序号:24742960发布日期:2021-04-20 22:19阅读:144来源:国知局
基于OAuth协议在同账号多端登录时使原访问令牌失效的方法与流程
基于oauth协议在同账号多端登录时使原访问令牌失效的方法
技术领域
1.本发明属于电子信息网络安全领域,具体地涉及一种基于oauth协议在同账号多端登录时使原访问令牌失效的方法。


背景技术:

2.现有基于oauth2.0协议标准的平台中,都是解决用户的认证和授权问题,但是目前此类平台往往存在以下问题:如果一个用户在一个终端登录却没有及时下线,又在另一个终端登录,那么原来的终端在访问令牌过期前仍能被使用。在这种情况下,存在原有登录被其他人利用的隐患。
3.为了解决同一个账号只能在一个终端上登录的问题,需要一种当用户在一个终端登录时,使另一个终端的访问令牌立即失效的方法。


技术实现要素:

4.发明要解决的问题:为了解决上述问题,本发明所要解决的目的在于提供一种能够防止原有登陆被他人利用的不安全状况的基于oauth协议在同账号多端登录时使原访问令牌失效的方法。
5.解决问题的技术手段:本发明提供一种基于oauth协议在同账号多端登录时使原访问令牌失效的方法,包括以下步骤:在用户通过用户名和密码登录时,将已有访问令牌标记为异地登录并生成新的访问令牌的访问令牌生成步骤;以及当客户端携带访问令牌请求资源服务时,判定客户端携带的访问令牌是否合法有效,在该访问令牌无效时阻止客户端访问资源的访问令牌验证步骤。
6.根据本发明,能在用户登录时使已有的访问令牌无效,并拒绝令牌无效的客户端的资源请求。
7.也可以是,本发明中,所述访问令牌生成步骤包括:1)在redis缓存数据库中存在所述用户目前有效的访问令牌时,将该访问令牌标记为异地登录;2)生成所述新的访问令牌;3)将所述新的访问令牌与所述用户的身份数据储存至redis缓存数据库;4)发送所述新的访问令牌至客户端。由此,能通过将已有访问令牌标记为异地登陆来使其失效。
8.也可以是,本发明中,所述访问令牌验证步骤包括:1)认证服务器验证所述访问令牌是否存在;2)在redis缓存数据库中检索所述访问令牌是否是被标记为异地登录的令牌;3)在判定所述访问令牌是被标记为异地登录的令牌时,判定所述访问令牌不合法,阻止客户端访问资源。由此,能够在每次客户端向资源服务器请求资源时,验证当前的访问令牌是否是最新生成且仍然有效的访问令牌,能确保当前的访问来自于唯一的终端。
9.发明效果:本发明能有效防止用户使用基于oauth协议的平台系统时,在没有登出系统的情
况下被另一终端登录,出现遭到其他人利用的不安全情况,能确保同一用户在同一时间只有一个有效的访问令牌。
附图说明
10.图1是根据本发明一实施形态的oauth协议平台的系统结构图;图2是图1所示oauth协议平台中的认证服务器的功能模块图;图3是图1所示oauth协议平台中的资源服务器的功能模块图;图4是基于oauth协议在同账号多端登录时使原访问令牌失效的方法的访问令牌生成步骤的流程图;图5是基于oauth协议在同账号多端登录时使原访问令牌失效的方法的访问令牌验证步骤的流程图。
具体实施方式
11.以下结合附图和下述实施形态进一步说明本发明,应理解,附图和下述实施形态仅用于说明本发明,而非限制本发明。
12.在此公开一种能够防止原有登陆被他人利用的不安全状况的基于oauth协议在同账号多端登录时使原访问令牌失效的方法(以下简称访问令牌失效方法)。本发明基于oauth认证的软件系统和redis缓存数据库。
13.图1是根据本发明一实施形态的oauth协议平台的系统结构图,图2是oauth协议平台中的认证服务器的功能模块图,图3是oauth协议平台中的资源服务器的功能模块图。
14.如图1所示,oauth协议平台主要包括客户端(client)、认证服务器(authorization server)、资源服务器(resource server)以及未图示的资源所有者(resource owner)。
15.资源所有者是存放在服务器提供方的受保护的资源的拥有者,也就是所谓的用户。客户端是指与服务器相对应,为客户提供本地服务的程序,需要与服务端互相配合运行。用户作为资源的拥有者,在想要访问资源时发起登录操作,客户端在接收到身份认证要求后,会提示用户输入用户名和密码。之后客户端向后述的认证服务器请求访问令牌。
16.如图1、2所示,认证服务器主要负责验证用户的身份并提供授权令牌,其包括用户身份验证模块、访问令牌生成模块和访问令牌验证模块。其中,用户身份验证模块主要用于验证用户身份的合法性,访问令牌生成模块。访问令牌生成模块主要用于在用户身份验证通过后,向客户端返回访问令牌。访问令牌验证模块则主要用于在客户端携带访问令牌访问后述的资源服务器时,验证访问令牌的有效性。
17.如图1、3所示,资源服务器主要用于存储用户数据和http服务,可以将用户数据返回给经过身份验证的客户端,其包括验证访问令牌验证请求的模块和向客户端提供受保护资源的模块。当客户端携带认证服务器发放的访问令牌向资源服务器请求受保护的资源时,验证访问令牌验证请求的模块用于验证该访问令牌的有效性,如果验证通过则响应这个资源请求。具体而言,资源服务器在接收到来自客户端的资源请求后,将其携带的访问令牌送往认证服务器,在认证服务器的上述访问令牌验证模块处接受验证,验证成功后认证服务器向资源服务器返回用户信息。向客户端提供受保护资源的模块则验证访问令牌有效
后,向用户提供受保护的资源。
18.本实施形态的访问令牌失效方法包括访问令牌生成步骤和访问令牌验证步骤。访问令牌生成步骤主要用于在用户通过用户名和密码验证后,调用认证服务器的授权端点(authorize endpoint)将redis缓存数据库中已存在的该用户的访问令牌标记为异地登陆,同时生成新的访问令牌。访问令牌验证步骤主要用于通过认证服务器的授权端点判定客户端携带的访问令牌是否合法有效以及是否为异地登录。
19.图4是根据本发明的一种实施形态的基于oauth协议在同账号多端登录时使原访问令牌失效的方法的访问令牌生成步骤的流程图。如图4所示,令牌生成步骤主要包括以下步骤。
20.用户在同一终端(客户端)通过用户名和密码登陆认证服务器后,开始步骤s11,进入认证服务器的redis缓存数据库中查找当前用户是否存在已有的有效访问令牌。已有的有效访问令牌是指,用户在之前的其他终端上登陆客户端时生成的仍然有效的访问令牌(即,仍未失效的访问令牌)。访问令牌由认证服务器的授权端点生成并存储在redis缓存数据库。
21.如果判定为存在该用户有效的访问令牌(即查找到该用户已有的有效访问令牌),则进至步骤s15。在步骤s15中,所有已有访问令牌被全部视为旧地址令牌,授权端点将该已有访问令牌标记为异地登陆,即,使已有的访问令牌失效。标记完毕后,进至步骤s12。
22.另一方面,在步骤s11中若判定不存在这样的访问令牌,则直接进至步骤s12。
23.在步骤s12中,认证服务器针对当前用户产生新的访问令牌。生成新的访问令牌后,进至步骤s13。
24.接着,在步骤s13中,系统将新的访问令牌和当前用户的身份信息一同存储至redis缓存数据库。存储完毕后,进至步骤s14,将新生成的访问令牌发送至客户端。
25.像这样,通过进入redis缓存数据库中检查是否存在当前访问用户已有的有效访问令牌,能判断当前用户是否且何时在另一终端上进行过登陆。在判定为存在该用户有效的访问令牌时,能通过将已有访问令牌标记为异地登陆来使其失效。
26.图5是根据本发明的一种实施形态的基于oauth协议在同账号多端登录时使原访问令牌失效的方法的访问令牌验证步骤的流程图。每当客户端就携带访问令牌向资源服务器请求资源时,资源服务器将该访问令牌发送至认证服务器,在认证服务器中进行对访问令牌进行验证的访问令牌验证流程。如图5所示,访问令牌验证流程主要包括以下步骤。
27.在认证服务器的授权端点判定从资源服务器接收的该访问令牌是否合法有效。具体而言,在步骤s21中,认证服务器从redis缓存数据库中检索该访问令牌。如果发现该访问令牌已经被(例如上述步骤s15)标记为异地登录,则判定访问令牌不合法,返回令牌失效的错误信息,即进至步骤s23,阻止客户端访问资源。反之,如果检索后发现该访问令牌并非是异地登陆,则说明该访问令牌是由用户在当前终端上通过输入用户名和密码登陆客户端后生成的新的访问令牌,步骤s21判断访问令牌合法有效,进至步骤s22。
28.在步骤s22中,认证服务器判定访问令牌通过验证,返回客户端锁请求访问的资源。
29.由此,能够在每次客户端向资源服务器请求资源时,验证当前的访问令牌是否是最新生成且仍然有效的访问令牌,即确保当前的访问来自于唯一的终端。
30.另外,在步骤s23中访问令牌验证失败的情况下,系统可以要求用户重新输入用户名和密码。在用户输入用户名和密码重新登陆认证系统后,开启新一轮的访问令牌生成步骤。
31.此外,本发明也可以包括判定访问令牌在redis缓存数据库中是否存在的步骤,由此判断访问令牌是否过期并自动清除。例如,也可以是在步骤12中,认证服务器在针对当前用户产生新的访问令牌的同时还记录登陆发生时间。在新的访问令牌存储到redis缓存数据库时,可以将预先自定义的缓存过期时间设置为有效时间。其中,自定义的缓存过期时间是服务器部署时设定的运行参数。利用redis缓存数据库的缓存机制,使新的访问令牌在超出有效时间后自动过期并自动清除。
32.根据本发明,在使用基于oauth协议的平台系统时,即使用户忘记从上一个终端登出系统,也能通过在新的终端上登入验证系统来使原终端上的访问令牌无效化,确保了同一用户在同一时间只有一个有效的访问令牌,能够避免出现遭到其他人利用的不安全情况,从而改善了平台的安全性。
33.以上的具体实施方式对本发明的目的、技术方案和有益效果进行了进一步详细说明,应当理解的是,以上仅为本发明的一种具体实施方式而已,并不限于本发明的保护范围,在不脱离本发明的基本特征的宗旨下,本发明可体现为多种形式,因此本发明中的实施形态是用于说明而非限制,由于本发明的范围由权利要求限定而非由说明书限定,而且落在权利要求界定的范围,或其界定的范围的等价范围内的所有变化都应理解为包括在权利要求书中。凡在本发明的精神和原则之内的,所做出的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1