基于OAuth协议的开放平台授权认证系统及方法技术方案

技术编号:14890824 阅读:87 留言:0更新日期:2017-03-28 23:24
本发明专利技术公开了一种基于OAuth协议的开放平台授权认证系统及方法,主要解决现有技术对资源访问令牌的有效时间没有合理的优化和限制,导致资源访问令牌滥用的问题。其系统包括授权客户端和授权服务器,该授权客户端通过其内的各功能模块完成发送授权认证请求、接收资源访问令牌和令牌的有效时间,并根据用户资源获取的次数和时间重置令牌的有效时间;该授权服务器通过其内的各功能模块完成接收并检查授权认证请求、获取未授权访问令牌和令牌有效时间、生成资源访问令牌和令牌有效时间并发送给授权客户端。本发明专利技术简化了授权认证过程,提高了资源的安全性,可用于获取开放平台资源时的认证授权过程。

【技术实现步骤摘要】

本专利技术属于计算机
,特别涉及一种开放平台授权认证技术,可用于获取开放平台资源时的认证授权过程。
技术介绍
OAuth协议为开放平台中的资源的授权提供了一个开放、安全且简单的标准,它是大多数互联网运营商用来解决开放平台间的用户、第三方客户端和服务提供商之间认证和授权问题的开放协议。在不需要将用户的账号和密码提供给第三方客户端的情况下,就让第三方客户端通过用户授权访问用户在开放平台的资源,简单而便捷地保证了用户信息的安全性和资源的获取。但每一次利用OAuth协议进行资源授权时,都需要重复输入账号和密码,OAuth协议也没有明确的标准来衡量授权码、访问令牌等时间的有效性,导致大量冗余的授权请求,严重影响用户体验和授权流程的便捷性。东软集团股份有限公司申请的专利“基于OAuth技术的系统集成方法和装置”(专利申请号:CN201511024442.0,公开号:CN105657011A)公开了一种基于OAuth技术的系统集成方法和装置,该方法通过提供多个应用的统一登录平台,接收用户输入的统一登录平台对应的账号信息,以及基于OAuth技术获取账号信息对应的每个应用的操作权限,可根据用户的账号信息为用户定制个性化服务,实现局部弹性伸缩部署。该方法存在的不足是:仅仅考虑了用户在多个第三方客户端的操作权限,来达到通过统一登录平台完成授权,并没有考虑每次授权过程中,都需要用户输入授权信息,导致大量重复操作,影响系统使用的便捷性。腾讯科技(北京)有限公司申请的专利“一种基于OAuth协议的授权方法、装置和系统”(专利申请号:CN201410086517.7,公开号:CN104917721A)公开了一种基于OAuth协议的授权方法、装置和系统。该方法以终端为媒介,替代第三方客户端完成向授权服务器获取令牌并转发给第三方客户端的操作,有效地提高了授权过程的流畅性和安全性。该方法存在的不足是:仅考虑利用终端提前获取系统访问令牌节省授权过程,并没有对系统访问令牌的有效时间加以限制,导致资源访问令牌滥用,安全性差。
技术实现思路
本专利技术的目的在于针对上述已有技术的不足,提供一种基于OAuth协议的开放平台授权认证系统及方法,对资源访问令牌的时间进行优化和限制,避免反复授权认证,节省授权认证时间,提高系统使用的便捷性和授权的安全性。为实现上述目的,本专利技术基于OAuth协议的开放平台授权认证系统,包括:授权客户端以及授权服务器:所述的授权客户端,用于发送授权认证请求,接收资源访问令牌和令牌的有效时间,并根据用户资源获取的次数和时间重置令牌的有效时间;所述的授权服务器,用于接收并检查授权认证请求,获取未授权访问令牌和令牌有效时间,生成资源访问令牌和令牌有效时间并发送给授权客户端。上述系统,其中授权客户端,包括:令牌缓存检查模块,用于检查授权客户端的缓存中是否有资源访问令牌,如果有,则获取资源访问令牌及其有效时间,并发送给令牌时间检查模块,否则,通知授权认证请求发送模块发送授权认证请求;令牌时间检查模块,用于检查当前时间是否在资源访问令牌有效时间内,如果是,则通过资源访问令牌直接获取资源,否则,通知授权认证请求发送模块发送授权认证请求;授权认证请求发送模块,用于向授权服务器发送授权认证请求;资源访问令牌接收模块,用于接收授权服务器发送来的资源访问令牌和令牌有效时间,并将令牌有效时间发送给令牌有效时间更新模块,如果授权客户端已缓存资源访问令牌,则替换旧的令牌;令牌有效时间更新模块,用于根据用户资源获取的次数和时间更新资源访问令牌的有效时间;数据加密模块,用于通过RSA算法对当前时间进行加密,生成一个字符串,并将该字符串发给授权认证请求发送模块,该字符串将作为授权认证请求发送模块向授权服务器发送的授权认证请求中的校验参数。上述的系统,其中授权服务器包括:授权认证请求接收模块,用于接收授权客户端发送来的授权认证请求,检查授权认证请求中应用访问标识与包名是否相对应,并将应用访问标识发送给未授权访问令牌获取模块;未授权访问令牌获取模块,用于获取与第三方客户端对应的未授权访问令牌和有效时间并发送给资源访问令牌获取模块和未授权访问令牌有效时间更新模块,若数据库中没有与第三方客户端对应的未授权访问令牌或未授权访问令牌已失效时,根据应用访问标识、用户信息重新获取未授权访问令牌,并存储在授权服务器的数据库中;未授权访问令牌有效时间更新模块,用于根据用户获取资源访问令牌的次数和时间更新未授权访问令牌的有效时间;资源访问令牌获取模块,用于获取资源访问令牌,并为该令牌设定一个默认的有效时间,若资源访问令牌失效,则在该模块根据未授权访问令牌重新生成资源访问令牌和令牌有效时间,若令牌有效,则发送给资源访问令牌发送模块;资源访问令牌发送模块,用于向授权客户端发送资源访问令牌和令牌有效时间;资源访问令牌有效时间更新模块,用于接收授权服务器发送来的资源访问令牌有效时间,替换数据库中旧的资源访问令牌有效时间;客户端注册模块,用于注册第三方客户端,注册后会为第三方客户端生成应用访问标识、未授权访问令牌以及令牌有效时间,并存储在授权服务器的数据库中;数据解密模块,用于通过RSA算法对授权认证请求接收模块接收到的授权认证请求中的校验参数进行解密及校验。为实现上述目的,本专利技术基于OAuth协议的开放平台授权认证方法,包括:1)授权客户端检查是否有资源访问令牌的缓存且令牌有效,如果授权客户端中有资源访问令牌的缓存且令牌有效,则执行7),否则,执行2);2)授权客户端向授权服务器发送授权认证请求,该授权认证请求包含应用访问标识、第三方客户端的包名和校验参数;3)授权服务器检查校验参数是否合格,如果不合格,则拒绝授权认证请求,否则,检查应用访问标识以及包名是否相对应,若是,则进行步骤4),否则,拒绝授权认证请求;4)授权服务器检查数据库中是否有与第三方客户端对应的未授权访问令牌且未授权访问令牌有效,若是,则获取未授权访问令牌和有效时间,否则,重新申请未授权访问令牌并存储在数据库中;5)授权服务器通过未授权访问令牌信息获得资源访问令牌,即授权服务器同意用户的授权认证请求,并为该资源访问令牌设置一个默认的有效时间;6)授权服务器将资源访问令牌和令牌的有效时间发送给授权客户端,授权客户端将资源访问令牌和令牌的有效时间存储在本地;7)授权客户端根据用户资源获取的次数和时间重置令牌的有效时间,并分别更新授权客户端和授权服务器中存储的资源访问令牌有效时间,授权客户端通过资源访问令牌直接向资源服务器获取资源,完成授权认证。本专利技术与现有的技术相比具有以下优点:第一,本专利技术通过让授权客户端缓存资源访问令牌,在资源访问令牌的有效时间内,第三方客户端即可直接向服务提供者获取资源,若资源访问令牌失效,则重新进行授权认证,此过程使得本专利技术避免了反复授权认证,节省了授权认证时间,便捷了用户的授权认证操作,从而提高了系统的易用性和便捷性。第二,本专利技术采用结合用户资源获取次数和使用时间的方法对未授权访问令牌和资源访问令牌的有效时间进行优化和限制,保证了用户资源的安全性;此外,本专利技术使用加密算法生成校验参数授权认证请求进行验证,保证了系统和用户信息的安全性。附图说明图1为本专利技术基于OAuth协议的开放平台授权认本文档来自技高网
...
基于OAuth协议的开放平台授权认证系统及方法

【技术保护点】
一种基于OAuth协议的开放平台授权认证系统,包括,授权客户端以及授权服务器:所述的授权客户端,用于发送授权认证请求,接收资源访问令牌和令牌的有效时间,并根据用户资源获取的次数和时间重置令牌的有效时间;所述的授权服务器,用于接收并检查授权认证请求,获取未授权访问令牌和令牌有效时间,生成资源访问令牌和令牌有效时间并发送给授权客户端。

【技术特征摘要】
1.一种基于OAuth协议的开放平台授权认证系统,包括,授权客户端以及授权服务器:所述的授权客户端,用于发送授权认证请求,接收资源访问令牌和令牌的有效时间,并根据用户资源获取的次数和时间重置令牌的有效时间;所述的授权服务器,用于接收并检查授权认证请求,获取未授权访问令牌和令牌有效时间,生成资源访问令牌和令牌有效时间并发送给授权客户端。2.根据权利要求1所述的系统,其中授权客户端,包括:令牌缓存检查模块,用于检查授权客户端的缓存中是否有资源访问令牌,如果有,则获取资源访问令牌及其有效时间,并发送给令牌时间检查模块,否则,通知授权认证请求发送模块发送授权认证请求;令牌时间检查模块,用于检查当前时间是否在资源访问令牌有效时间内,如果是,则通过资源访问令牌直接获取资源,否则,通知授权认证请求发送模块发送授权认证请求;授权认证请求发送模块,用于向授权服务器发送授权认证请求;资源访问令牌接收模块,用于接收授权服务器发送来的资源访问令牌和令牌有效时间,并将令牌有效时间发送给令牌有效时间更新模块,如果授权客户端已缓存资源访问令牌,则替换旧的令牌;令牌有效时间更新模块,用于根据用户资源获取的次数和时间更新资源访问令牌的有效时间;数据加密模块,用于通过RSA算法对当前时间进行加密,生成一个字符串,并将该字符串发给授权认证请求发送模块,该字符串将作为授权认证请求发送模块向授权服务器发送的授权认证请求中的校验参数。3.根据权利要求1所述的系统,其中授权服务器包括:授权认证请求接收模块,用于接收授权客户端发送来的授权认证请求,检查授权认证请求中应用访问标识与包名是否相对应,并将应用访问标识发送给未授权访问令牌获取模块;未授权访问令牌获取模块,用于获取与第三方客户端对应的未授权访问令牌和有效时间并发送给资源访问令牌获取模块和未授权访问令牌有效时间更新模块,若数据库中没有与第三方客户端对应的未授权访问令牌或未授权访问令牌已失效时,根据应用访问标识、用户信息重新获取未授权访问令牌,并存储在授权服务器的数据库中;未授权访问令牌有效时间更新模块,用于根据用户获取资源访问令牌的次数和时间更新未授权访问令牌的有效时间;资源访问令牌获取模块,用于获取资源访问令牌,并为...

【专利技术属性】
技术研发人员:李青山褚华马明宇寇苗娟问茜茹
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1