一种授权方法、系统及第三方应用系统与流程

文档序号:14189345阅读:116来源:国知局
一种授权方法、系统及第三方应用系统与流程
本发明涉及互联网应用中信息处理领域,尤其涉及一种授权方法、系统及第三方应用系统。
背景技术
:Oauth称为开放授权,是一个为用户资源的授权提供安全的、开放而简易的标准,允许任何第三方应用调用开放平台或网站的应用入侵防护系统(AIP,ApplicationIntrusionPrevention)接口,任何第三方应用都可以使用Oauth认证服务,任何服务提供商都可以实现自身的Oauth认证服务,因而Oauth是开放的。不管是Oauth服务提供者还是应用开发者,都很容易于理解与使用,没有涉及到用户密钥等信息,更安全、更灵活,任何服务提供商都可以实现Oauth,任何开发商都可以使用Oauth。Oauth的授权过程分为以下三个步骤:获取未授权的请求令牌(RequestToken),获取用户授权RequestToken,使用授权后的RequestToken换取接入令牌(AccessToken);具体包括:第1步,第三方应用向Oauth开放平台请求未授权的RequestToken;第2步,Oauth开放平台同意第三方应用的请求,并向第三方应用颁发未授权的oauth_token与对应的oauth_token_secret;第3步,第三方应用向Oauth开放平台请求用户授权的RequestToken;这里,用户授权的RequestToken与未授权的RequestToken的值相同,只是状态不同;第4步,Oauth开放平台将引导用户进行授权;第5步,RequestToken授权后,第三方应用将向AccessTokenURL发起请求,将上一步骤中授权的RequestToken换取成AccessToken;第6步,Oauth开放平台同意第三方应用的请求,并向第三方应用颁发AccessToken与对应的密钥,并返回给第三方应用。第三方应用以后就可以使用返回的AccessToken访问用户授权的资源。上述过程中,在授权过程的第4步中,Oauth开放平台产生验证码,用户进行验证码的验证,因此,在浏览器网页中用户可以自动获取验证码并进行验证,但是第三方应用无法自动获取验证码,必须用户手动输入验证码后,第三方应用才能完成授权,验证和授权过程比较繁琐,给用户带来不良的用户体验。技术实现要素:有鉴于此,本发明的主要目的在于提供一种授权方法、系统及第三方应用系统,使第三方应用能够自动获取验证码,并利用验证码自动完成验证过程。为达到上述目的,本发明的技术方案是这样实现的:本发明提供一种授权方法,包括:第三方应用获取状态为未授权的请求令牌后,向开放平台发送授权请求;开放平台生成验证码,并将状态更新为授权的所述请求令牌和所述验证码返回给浏览器网页;第三方应用利用所述请求令牌从开放平台获取验证码,并利用所述验证码和所述请求令牌从开放平台换取接入令牌。上述方法中,所述第三方应用获取状态为未授权的请求令牌为:第三方应用向开放平台发送请求消息,请求从开放平台获取请求令牌;开放平台记录请求令牌的当前状态为未授权,并返回状态为未授权的请求令牌给第三方应用。上述方法中,所述开放平台生成验证码,并将状态更新为授权的请求令牌和所述验证码返回给浏览器网页为:开放平台将之前记录的请求令牌的状态由未授权更新为授权,并随机生成验证码,在内存中记录所述验证码的有效期、以及请求令牌与验证码的对应关系;开放平台将状态更新为授权的请求令牌和验证码返回给浏览器网页;开放平台在内存中记录所述验证码的当前状态为查询有效。上述方法中,所述第三方应用利用所述请求令牌从开放平台获取验证码为:第三方应用利用请求令牌向开放平台查询验证码;开放平台确认当前验证码状态为查询有效时,返回验证码给第三方应用。上述方法中,所述第三方应用利用所述请求令牌向开放平台查询验证码为:第三方应用向开放平台发送查询请求消息,请求利用状态更新为授权的请求令牌向开放平台查询验证码;所述查询请求消息中携带状态更新为授权的请求令牌。上述方法中,所述开放平台确认当前验证码状态为查询有效时,返回验证码给第三方应用为:开放平台根据所述查询请求消息中携带的请求令牌、以及本地记录的请求令牌与验证码的对应关系,判断查询请求消息中携带的请求令牌对应的验证码的当前状态是否为查询有效;如果验证码的当前状态是查询有效,则将所述验证码返回给第三方应用,并在内存中记录所述验证码的当前状态为查询无效,返回消息中携带所述验证码;如果验证码的当前状态是查询无效,则通知第三方应用查询验证码失败。上述方法中,所述利用所述验证码和所述请求令牌从开放平台换取接入令牌为:第三方应用利用验证码和请求令牌向开放平台发送换取接入令牌的请求;开放平台向第三方应用返回接入令牌。上述方法中,该方法还包括:第三方应用利用接入令牌和请求令牌调用AIP接口,应用API服务。本发明还提供一种授权系统,包括:第三方应用系统、开放平台;其中,第三方应用系统,用于在获取状态为未授权的请求令牌后,向开放平台发送授权请求;还用于利用所述请求令牌从开放平台获取验证码,并利用所述验证码和所述请求令牌从开放平台换取接入令牌;开放平台,用于生成验证码,并将状态更新为授权的请求令牌和所述验证码返回给浏览器网页。上述系统中,所述第三方应用,还用于利用接入令牌和请求令牌调用AIP接口,应用API服务。本发明还提供一种第三方应用系统,包括:发送单元、获取单元、换取单元;其中,发送单元,用于在获取状态为未授权的请求令牌后,向开放平台发送授权请求;获取单元,用于利用所述请求令牌从开放平台获取验证码;换取单元,用于利用所述验证码和所述请求令牌从开放平台换取接入令牌。本发明提供的授权方法、系统及第三方应用系统,第三方应用获取状态为未授权的请求令牌后,向开放平台发送授权请求;开放平台生成验证码,并将状态更新为授权的所述请求令牌和所述验证码返回给浏览器网页;第三方应用利用所述请求令牌从开放平台获取验证码,并利用所述验证码和所述请求令牌从开放平台换取接入令牌,因此,在授权过程中,第三方应用能够自动获取验证码,并利用验证码自动完成验证过程,不再需要用户手动输入验证码,帮助第三方应用完成授权过程,给用户带来良好的使用体验。附图说明图1是本发明实现授权方法的流程示意图;图2是本发明实现授权方法的实施例一的流程示意图;图3是本发明实现授权系统的结构示意图。具体实施方式本发明的基本思想是:第三方应用获取状态为未授权的请求令牌后,向开放平台发送授权请求;开放平台生成验证码,并将状态更新为授权的所述请求令牌和所述验证码返回给浏览器网页;第三方应用利用所述请求令牌从开放平台获取验证码,并利用所述验证码和所述请求令牌从开放平台换取接入令牌。下面通过附图及具体实施例对本发明再做进一步的详细说明。本发明提供一种授权方法,图1是本发明实现授权方法的流程示意图,如图1所示,该方法包括以下步骤:步骤1O1,第三方应用获取状态为未授权的请求令牌后,向开放平台发送授权请求。步骤102,开放平台生成验证码,并将状态更新为授权的所述请求令牌和所述验证码返回给浏览器网页。步骤103,第三方应用利用所述请求令牌从开放平台获取验证码,并利用所述验证码和所述请求令牌从开放平台换取接入令牌。实施例一图2是本发明实现授权方法的实施例一的流程示意图,以Oauth认证授权过程为例进行说明,对应的,本实施例中,开放平台为Oauth开放平台,请求令牌为RequestToken,接入令牌为AccessToken,如图2所示,该方法包括以下步骤:步骤201,第三方应用向Oauth开放平台请求状态为未授权的RequestToken;具体的,第三方应用向Oauth开放平台发送请求消息,用于从Oauth开放平台获取状态为未获权的RequestToken;请求消息中需要携带表1中的参数:表1步骤202,Oauth开放平台返回状态为未授权的RequestToken;具体的,RequestToken预先存储在Oauth开放平台的内存中,Oauth开放平台收到第三方应用的请求消息后,首先记录RequestToken的当前状态,这里,RequestToken的当前状态为未授权,而后,Oauth开放平台返回状态为未授权的RequestToken给第三方应用,返回消息中需要携带表2中的参数:参数意义oauth_token未投权的RequestTokenoauth_token_secret对应的RequestTokenSecretoauth_callback_confirmed对oauth_callback的确认信号表2步骤203,第三方应用向Oauth开放平台发送授权请求;具体的,在收到Oauth开放平台携带状态为未授权的RequestToken的返回消息后,第三方应用向Oauth开放平台发送授权请求消息,用于请求Oauth开放平台对RequestToken授权;授权请求消息中需要携带表3中的参数:表3步骤204,Oauth开放平台生成验证码,并将状态更新为授权的RequestToken和验证码返回给浏览器网页;具体的,Oauth开放平台收到授权请求消息后,首先更改之前记录的RequestToken的状态,将RequestToken的状态由未授权更新为授权;然后,Oauth开放平台随机生成一个验证码,并在内存中记录该验证码的有效期,该有效期可以在Oauth开放平台进行配置,例如,Oauth协议中常用的验证码的有效期为1O分钟,Oauth开放平台同时记录RequestToken与验证码的对应关系;最后,Oauth开放平台将状态更新为授权的RequestToken和验证码返回给浏览器网页,返回消息中需要携带表4中的参数:表4Oauth开放平台将状态更新为授权的RequestToken和验证码返回给浏览器网页后,在内存中记录该验证码的当前状态为查询有效。需要说明的是,本发明中状态为授权的RequestToken的值与状态为未授权的RequestToken的值是相同,状态为授权的RequestToken与状态为未授权的RequestToken的不同的仅在于,RequestToken在不同时期在Oauth开放平台记录的状态不同。步骤205,第三方应用利用RequestToken从Oauth开放平台查询验证码;具体的,为了避免用户通过浏览器网页输入验证码,以完成授权过程,第三方应用可以向Oauth开放平台发送查询请求消息,用于利用授权的RequestToken从Oauth开放平台查询验证码;这里,利用授权的RequestToken查询验证码,并不是因为第三方应用收到了授权的RequestToken,是因为授权的RequestToken的值与未授权的RequestToken的值相同,且RequestToken在Oauth开放平台的状态已经更新为授权,因此这里第三方应用利用的RequestToken对Oauth开放平台而言是授权的RequestToken;所述查询请求消息中需要携带表5中的参数:参数意义oauth_token状态已经更新为授权的RequestTokenoauth_token_secret应用信息中的AppKey值表5这里,为了避免第三方应用恶意攻击Oauth开放平台,可以在Oauth开放平台上配置查询次数门限,当第三方应用发送查询请求消息的频率超过设置的查询次数门限时,Oauth开放平台可以拒绝向第三方应用返回验证码。步骤206,Oauth开放平台确认当前验证码状态为查询有效时,返回验证码给第三方应用;具体的,Oauth开放平台收到第三方平台的查询请求消息后,首先根据其中携带的RequestToken、以及本地记录的RequestToken与验证码的对应关系,判断查询请求消息中携带的RequestToken对应的验证码的当前状态是否为查询有效,如果验证码的当前状态是查询有效,则Oauth开放平台将该验证码返回给第三方应用,并在内存中记录该验证码的当前状态为查询无效;返回消息中需要携带表6中的参数:参数意义oauth_verifier验证码表6如果验证码的当前状态是查询无效,则Oauth开放平台通知第三方应用查询验证码失败,结束当前流程。步骤207,第三方应用利用验证码和RequestToken向Oauth开放平台发送换取AccessToken的请求;具体的,第三方应用获取到验证码,且RequestToken的状态为授权时,第三方应用可以利用获取到的验证码和RequestToken向Oauth开放平台发送换取AccessToken的请求;请求消息中需要携带表7中的参数:表7步骤208,Oauth开放平台向第三方应用返回AccessToken;具体的,Oauth开放平台收到请求消息后,向第三方应用返回AccessToken,返回消息中需要携带表8中的参数:参数意义oauth_tokenAccessTokenoauth_token_secretAccessTokenSecret表8步骤209,第三方应用利用AccessToken和RequestToken调用AIP接口,应用API服务;具体的,第三方应用利用AccessToken和RequestToken调用应用入侵防护系统(AIP,ApplicationIntrusionPrevention)接口,应用API服务;调用API接口时的请求消息中需要携带表9中的参数:表9本发明中,所述第三方应用指的是不包含网页式的应用,例如,第三方应用可以是桌面工具、应用程序等。为实现上述方法,本发明还提供一种授权系统,图3是本发明实现授权系统的结构示意图,如图3所示,该系统包括:第三方应用系统30、开放平台40;其中,第三方应用系统30,用于在获取状态为未授权的请求令牌后,向开放平台40发送授权请求;还用于利用所述请求令牌从开放平台40获取验证码,并利用所述验证码和所述请求令牌从开放平台40换取接入令牌;开放平台40,用于生成验证码,并将状态更新为授权的请求令牌和所述验证码返回给浏览器网页。所述第三方应用30,还用于利用接入令牌和请求令牌调用AIP接口,应用API服务。所述第三方应用系统30包括:发送单元31、获取单元32、换取单元33;其中,发送单元31,用于在获取状态为未授权的请求令牌后,向开放平台40发送授权请求;获取单元32,用于利用所述请求令牌从开放平台40获取验证码;换取单元33,用于利用所述验证码和所述请求令牌从开放平台40换取接入令牌。其中,所述第三方应用30获取状态为未授权的请求令牌为:第三方应用向开放平台发送请求消息,请求从开放平台获取请求令牌;开放平台记录请求令牌的当前状态为未授权,并返回状态为未授权的请求令牌给第三方应用。其中,所述开放平台40生成验证码,并将状态更新为授权的请求令牌和所述验证码返回给浏览器网页为:开放平台将之前记录的请求令牌的状态由未授权更新为授权,并随机生成验证码,在内存中记录所述验证码的有效期、以及请求令牌与验证码的对应关系;开放平台将状态更新为授权的请求令牌和验证码返回给浏览器网页;开放平台在内存中记录所述验证码的当前状态为查询有效。其中,所述第三方应用30利用所述请求令牌从开放平台40获取验证码为:第三方应用利用请求令牌向开放平台查询验证码;开放平台确认当前验证码状态为查询有效时,返回验证码给第三方应用。其中,所述第三方应用30利用所述验证码和所述请求令牌从开放平台40换取接入令牌为:第三方应用利用验证码和请求令牌向开放平台发送换取接入令牌的请求;开放平台向第三方应用返回接入令牌。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1