一种处理授权的方法、设备和系统技术方案

技术编号:13343348 阅读:37 留言:0更新日期:2016-07-14 09:31
本发明专利技术提供了一种处理授权的方法、设备和系统。该处理授权的方法,包括接收公共客户端发送的第一授权请求,第一授权请求包括公共客户端的客户端标识、请求重定向通用资源标识符URI和第一请求授权范围;根据客户端标识,获取公共客户端的授权信息;获取授权信息中保存的用户的授权凭证对应的授权范围;确定第一请求授权范围超出用户的授权凭证对应的授权范围,则根据所述第一请求授权范围,获取资源的拥有者的授权通知信息;根据第一请求授权范围及授权通知信息,生成授权范围与第一请求授权范围相应的第一访问令牌;根据请求重定向URI,将第一访问令牌发送给公共客户端。本发明专利技术提供的方法有效的解决了公共客户端授权过程中的安全隐患问题。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及一种处理授权的方法、设备和系统
技术介绍
随着分布式网络服务和云计算的使用越来越多,第三方客户端需要能访问到一些服务器的托管资源。这些资源通常都是受保护的,并且要求使用资源的拥有者的私有证书(典型的证书是用户名和密码)进行身份验证。在OAuth协议中,第三方客户端并不是直接使用资源的拥有者的私有证书来访问受保护资源,而是得到一个访问令牌——一个代表某一特定作用域(授权范围)、持续时间和其它属性的字符串。访问令牌由授权设备在资源的拥有者的授意下分发给第三方客户端。第三方客户端使用访问令牌来访问由资源服务器托管的受保护资源,但是该访问令牌有效期通常较短,过期后则无法继续访问受保护的资源。如果需要继续访问受保护的资源,则需要重新申请访问令牌。现有的第三方客户端根据其安全能力差异,一般可以分为私密客户端(Confidentialclient)和公共客户端(Publicclient)。现有技术对不同类型的客户端定义了不同授权流程,其中隐式许可(ImplicitGrant)方式是面向公共客户端定义的。在隐式许可流程中,公共客户端在重新申请访问令牌时,授权设备在根据重定向通用资源标识符(UniformResourceIdentifier,URI)验证第三方客户端身份合法,并且根据客户端标识确定授权设备之前已经为该公共客户端生成过访问令牌后,则根据公共方客户端的授权请求中的请求授权范围生成新的访问令牌,并返回给所述公共客户端。因此,一个恶意的公共方客户端可能在首次授权请求时诱使资源的拥有者许可一个低等级授权范围,而在后续授权请求时申请高等级授权范围,从而轻易地实现权限提升。例如,用户A在首次授权时许可了某公共客户端访问其QQ消息记录,在后续授权请求时该公共客户端又请求使用QQ发送消息的权限。此时授权设备能根据重定向URI验证该公共客户端的合法性,并且也能查询到用户A已经对该公共客户端有过授权,所以该公共客户端将获得使用QQ发送消息权限的访问令牌,这样该公共客户端就在未得到用户许可的情况下提升了其获取的授权范围。这也使现有技术在公共客户端实现授权时存在较大的安全隐患。
技术实现思路
本专利技术提供了一种针对公共客户端的处理授权的方法、设备和系统,以解决在对公共客户端进行授权时存在安全隐患的技术问题。第一方面,本专利技术提供一种处理授权的方法,包括:接收所述公共客户端发送的第一授权请求,所述第一授权请求包括所述公共客户端的客户端标识、请求重定向通用资源标识符URI和第一请求授权范围;根据所述客户端标识,获取所述公共客户端的授权信息;获取所述授权信息中保存的所述用户的授权凭证对应的授权范围;确定所述第一请求授权范围超出所述用户的授权凭证对应的授权范围,则根据所述第一请求授权范围,获取所述资源的拥有者的授权通知信息;根据所述第一请求授权范围及所述授权通知信息,生成授权范围与所述第一请求授权范围相应的第一访问令牌;根据所述请求重定向URI,将所述第一访问令牌发送给所述公共客户端。结合第一方面,在第一方面的第一种可能的实现方式中,所述获取所述资源的拥有者的授权通知信息,具体为:向所述资源的拥有者发送认证请求,所述认证请求包括所述第一请求授权范围;接收所述资源的拥有者返回的认证响应消息,所述认证响应消息包括所述资源的拥有者的授权通知信息,所述授权通知信息指示所述资源的拥有者同意以所述第一请求授权范围对所述用户使用所述公共客户端访问所述资源进行授权。结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在所述获取所述资源的拥有者的授权通知信息之后,所述方法还包括:生成授权范围与所述第一请求授权范围相应的授权凭证;使用所述生成的授权凭证更新所述用户的授权凭证。结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,在所述获取所述授权信息中保存的所述用户的授权凭证对应的授权范围之前,所述方法还包括:根据所述客户端标识,获取所述公共客户端的注册重定向URI;确定所述请求重定向URI和所述注册重定向URI相同。结合第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,所述第一授权请求还包括所述用户的用户标识,所述授权信息还包括用户标识,所述授权信息中的用户标识与所述授权信息中的授权凭证存在对应关系;所述获取所述授权信息中保存的所述用户的授权凭证对应的授权范围,具体为:根据所述第一授权请求中的所述用户的用户标识,查询所述授权信息,获取与所述用户的用户标识对应的授权凭证;解析所述用户标识对应的的授权凭证,获得所述用户的授权凭证对应的授权范围;所述使用所述生成的授权凭证更新所述用户的授权凭证,具体为:根据所述第一授权请求中的所述用户的用户标识,查询所述授权信息,获取与所述用户的用户标识对应的授权凭证;使用所述生成的授权凭证更新所述用户的用户标识对应的授权凭证。结合第一方面的第二种可能的实现方式,在第一方面的第五种可能的实现方式中,接收所述公共客户端发送的第二授权请求,所述第二授权请求包括所述客户端标识、所述请求重定向URI和第二请求授权范围;根据所述客户端标识,获取所述公共客户端的授权信息;获取所述授权信息中保存的所述用户的授权凭证对应的授权范围;确定所述第二请求授权范围不超出所述用户的授权凭证对应的授权范围,则生成授权范围与所述第二请求授权范围或者所述第二原始授权范围相应的第二访问令牌;根据所述请求重定向URI,将所述第二访问令牌发送给所述公共客户端。结合第一方面以及第一方面的第一种至第五种可能的实现方式中的任一种实现方式,在第一方面的第六种可能的实现方式中,在所述接收所述公共客户端发送的第一授权请求之前,所述方法还包括:接收所述公共客户端发送的第三授权请求,所述第三授权请求包括所述客户端标识、所述请求重定向URI和第三请求授权范围;根据所述客户端标识,获取所述公共客户端的授权信息;确定所述授权信息中不存在所述用户的授权凭证;根据所述第三请求授权范围,获取所述资源的拥有者的授权通知信息;根据所述第三请求授权范围及所述授权通知信息,生成授权范围与所述第三授权范围相应的第三访问令牌和第三授权凭证;将所述第三授权凭证作为所述用户的授权凭证保存到所述授权信息中;根据所述请求重定向URI,将所述第三访问令牌发送给所述公共客户端。第二方面本文档来自技高网
...

【技术保护点】
一种处理授权的方法,用于对用户通过公共客户端访问资源进行授权,其特征在于,包括:接收所述公共客户端发送的第一授权请求,所述第一授权请求包括所述公共客户端的客户端标识、请求重定向通用资源标识符URI和第一请求授权范围;根据所述客户端标识,获取所述公共客户端的授权信息;获取所述授权信息中保存的所述用户的授权凭证对应的授权范围;确定所述第一请求授权范围超出所述用户的授权凭证对应的授权范围,则根据所述第一请求授权范围,获取所述资源的拥有者的授权通知信息;根据所述第一请求授权范围及所述授权通知信息,生成授权范围与所述第一请求授权范围相应的第一访问令牌;根据所述请求重定向URI,将所述第一访问令牌发送给所述公共客户端。

【技术特征摘要】
1.一种处理授权的方法,用于对用户通过公共客户端访问资源进行授权,
其特征在于,包括:
接收所述公共客户端发送的第一授权请求,所述第一授权请求包括所述公
共客户端的客户端标识、请求重定向通用资源标识符URI和第一请求授权范围;
根据所述客户端标识,获取所述公共客户端的授权信息;
获取所述授权信息中保存的所述用户的授权凭证对应的授权范围;
确定所述第一请求授权范围超出所述用户的授权凭证对应的授权范围,则
根据所述第一请求授权范围,获取所述资源的拥有者的授权通知信息;
根据所述第一请求授权范围及所述授权通知信息,生成授权范围与所述第
一请求授权范围相应的第一访问令牌;
根据所述请求重定向URI,将所述第一访问令牌发送给所述公共客户端。
2.如权利要求1所述的方法,其特征在于,所述根据所述第一请求授权范
围,获取所述资源的拥有者的授权通知信息,具体为:
向所述资源的拥有者发送认证请求,所述认证请求包括所述第一请求授权
范围;
接收所述资源的拥有者返回的认证响应消息,所述认证响应消息包括所述
资源的拥有者的授权通知信息,所述授权通知信息指示所述资源的拥有者同意
以所述第一请求授权范围对所述用户使用所述公共客户端访问所述资源进行授
权。
3.如权利要求1或2所述的方法,其特征在于,在所述获取所述资源的拥
有者的授权通知信息之后,所述方法还包括:
生成授权范围与所述第一请求授权范围相应的授权凭证;
使用所述生成的授权凭证更新所述用户的授权凭证。
4.如权利要求1-3任一所述的方法,其特征在于,在所述获取所述授权信
息中保存的所述用户的授权凭证对应的授权范围之前,所述方法还包括:
根据所述客户端标识,获取所述公共客户端的注册重定向URI;
确定所述请求重定向URI和所述注册重定向URI相同。
5.如权利要求3所述的方法,其特征在于,
所述第一授权请求还包括所述用户的用户标识,所述授权信息还包括用户

\t标识,所述授权信息中的用户标识与所述授权信息中的授权凭证存在对应关系;
所述获取所述授权信息中保存的所述用户的授权凭证对应的授权范围,具
体为:
根据所述第一授权请求中的所述用户的用户标识,查询所述授权信息,获
取与所述用户的用户标识对应的授权凭证;
解析所述用户的用户标识对应的的授权凭证,获得所述用户的授权凭证对
应的授权范围;
所述使用所述生成的授权凭证更新所述用户的授权凭证,具体为:
根据所述第一授权请求中的所述用户的用户标识,查询所述授权信息,获
取与所述用户的用户标识对应的授权凭证;使用所述生成的授权凭证更新所述
用户的用户标识对应的授权凭证。
6.如权利要求3所述的方法,其特征在于,所述方法还包括:
接收所述公共客户端发送的第二授权请求,所述第二授权请求包括所述客
户端标识、所述请求重定向URI和第二请求授权范围;
根据所述客户端标识,获取所述公共客户端的授权信息;
获取所述授权信息中保存的所述用户的授权凭证对应的授权范围;
确定所述第二请求授权范围不超出所述用户的授权凭证对应的授权范围,
则生成授权范围与所述第二请求授权范围或者所述第二原始授权范围相应的第
二访问令牌;
根据所述请求重定向URI,将所述第二访问令牌发送给所述公共客户端。
7.如权利要求1-6任一所述的方法,其特征在于,所述方法还包括:
接收所述公共客户端发送的第三授权请求,所述第三授权请求包括所述客
户端标识、所述请求重定向URI和第三请求授权范围;
根据所述客户端标识,获取所述公共客户端的授权信息;
确定所述授权信息中不存在所述用户的授权凭证;
根据所述第三请求授权范围,获取所述资源的拥有者的授权通知信息;根
据所述第三请求授权范围及根据所述第三请求授权范围获取的授权通知信息,
生成授权范围与所述第三授权范围相应的第三访问令牌和第三授权凭证;
将所述第三授权凭证作为所述用户的授权凭证保存到所述授权信息中;
根据所述请求重定向URI,将所述第三访问令牌发送给所述公共客户端。
8.一种授权设备,用于对用户通过公共客户端访问资源进行授权,其特征
在于,包括:
接收模块,接收所述公共客户端发送的第一授权请求,所述第一授权请求
包括所述公共客户端的客户端标识、请求重定向通用资源标识符URI和第一请
求授权范围;
获取模块,用于根据所述客户端标识,获取所述公共客户端的授权信息;
所述获取模块,还用于获取所述授权信息中保存的所述用户的授权凭证对
应的授权范围;
所述获取模块,还用于确定所述第一请求授权范围超出所述用户的授权凭
证对应的授权范围,则根据所述第一请求授权范围,获取所述资源的...

【专利技术属性】
技术研发人员:张尧烨
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1