首页> 中国专利> 基于OAuth协议的开放平台安全认证方法和系统

基于OAuth协议的开放平台安全认证方法和系统

摘要

一种基于OAuth协议的开放平台安全认证方法和系统,包括有:开放平台检查第三方应用装置的申请未授权的Request Token的访问请求,是否携带有和平台一致的应用实例标识,如果没有,则分配新的应用实例标识,并将应用实例标识、未经用户授权的Request Token与对应的token密钥返回给第三方应用装置;第三方应用装置将应用实例标识更新到本地,并继续携带应用实例标识进行后续的OAuth认证请求,开放平台通过应用实例标识,引导用户授权,然后向第三方应用装置下发Access Token与对应的密钥。本发明属于网络技术领域,能对多个第三方应用运行实例的业务场景进行精确认证和鉴权,还可以灵活计费。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-22

    未缴年费专利权终止 IPC(主分类):H04L29/06 授权公告日:20140709 终止日期:20161110 申请日:20111110

    专利权的终止

  • 2014-07-09

    授权

    授权

  • 2012-05-09

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20111110

    实质审查的生效

  • 2012-03-28

    公开

    公开

说明书

技术领域

本发明涉及一种基于OAuth协议的开放平台安全认证方法和系统,属于网络技术。

背景技术

目前,大多数互联网开放平台采用OAuth协议对第三方应用实现鉴权和认证。OAuth是 一种开放的协议,为桌面应用或者基于B/S模式的WWW应用提供了一种简单、标准的方式 访问需要用户授权的API服务,任何第三方应用在访问用户资源时都需要经过用户认证同意 后方可访问,这样保证了用户数据的隐私保密。由于其安全、开发简单易行,很多互联网厂 商如Google、雅虎、新浪、腾讯在建设开放平台时都提供了OAuth认证服务。

在OAuth协议框架中,主要包括三类角色:Service Provider,OAuth服务的服务提供者, 由开放平台负责提供服务API供第三方应用进行调用;Consumer,OAuth服务的消费者或使 用者,是指调用开放平台服务API的第三方应用;User,用户,使用第三方应用的最终用户。

开放平台需要对第三方应用提供完整的应用开发、测试、上线流程和操作界面。首先, 第三方应用的开发者需要在开放平台侧注册一个应用和填写应用信息,注册成功后从开放平 台获取该应用的第三方应用标识(对应OAuth协议中的参数名称为oauth_consumer_key), 和对应这个第三方应用标识的应用密钥(对应OAuth协议中的参数名为 oauth_consumer_secret),经过开发、测试、审核后上线发布,就可以提供给用户使用了。

第三方应用在访问开放平台的服务API时需要先通过OAuth认证:依次向OAuth的3 个服务地址发送认证请求,并在OAuth认证成功后发送调用开放平台的服务API的访问请求, 上述步骤都需要按照约定加密算法对每个请求消息进行签名(oauth_signature),其中开放平 台通过对请求消息中携带的第三方应用标识、请求签名等参数来识别第三方应用,从而避免 第三方应用身份被伪造而非法调用开放平台的服务API。其中,OAuth协议的认证授权过程 及所涉及的3个服务地址如下:

1、第三方应用向开放平台的Request Token URL地址发送请求,获取未授权的Request  Token;

2、第三方应用向开放平台的User Authorization URL地址发送请求,获取用户授权的 Request Token;

3、第三方应用向开放平台的Access Token URL地址发送请求,用授权的Request Token 换取Access Token。

根据第三方应用向最终用户的服务提供方式,可将应用场景分为以下两种模式:

1、客户端模式,所述终端多为手机终端或桌面终端。用户在使用这类应用时,在手机、 或PC浏览器、或PC客户端上直接运行含有开放平台服务API的第三方应用。这种模式下用 户首先需要从开放平台提供的类似应用门户上下载需要的第三方应用程序到本地进行安装配 置。其特点是第三方应用同终端直接远程访问开放平台提供的服务API来满足用户需求。因 此客户端模式下的应用用户量越大,第三方应用程序副本的下载数量和在不同终端上的第三 方应用运行实例数量就会越多。

2、服务器模式,用户需要通过web浏览器、或定制客户端访问网络服务器上的第三方 应用,再通过网络服务器上的第三方应用来访问开放平台服务API。网络侧的第三方应用的 服务平台由开发者构架和部署,比如完全基于开放平台来实现应用、或者采用插件方式开发 应用嵌入到开发者自己的服务程序中从而实现各类应用的混搭。服务器模式下的第三方应用 通常会提供给行业客户或者企业集团客户来使用,因此第三方应用运行实例的数量不受最终 用户数量的影响,而是由不同行业客户或者企业集团客户的数量来决定的。

标准OAuth认证过程适用于第三方应用作为相同的资源运行实体向用户服务,或者所开 发的应用限于用户自己使用,用户采用浏览器或桌面客户端使用第三方应用时,开放平台对 用户和第三方应用标识进行认证和鉴权。但随着开放平台应用范围越来越广泛,特别是在移 动互联网环境下,出现了一些新的应用场景需要考虑。开发者基于开放平台所开发的第三方 应用程序副本将会被大量下载,并安装在数量规模巨大的硬件终端上为移动互联网提供服务; 同时,一个用户会拥有不同类型的硬件终端,如移动终端和个人电脑PC,用户会从不同的硬 件终端上发起对同一个第三方应用服务的访问请求。由于OAuth协议采用相同的第三方应用 标识oauth_consumer_key、应用密钥oauth_consumer_secret和对应的签名oauth_signature来访 问开放平台服务API,这种情况下,存在着大量的第三方应用运行实例采用相同的第三方应 用标识oauth_consumer_key和签名oauth_signature访问开放平台,开放平台仅通过第三方应 用标识对来自各个终端用户的访问请求进行认证和鉴权很难保证服务的安全性,对不同用户 的访问请求也很难区分,存在有一定的安全隐患,如果其中一个被破解,则大量用户使用同 类型的第三方应用运行实例就会不攻自破,从而威胁的各方安全。

同时,不同类型的开放平台会提供各自有特色类型服务API,典型的如电信能力开放平 台中会提供短信服务API、彩信服务API,定位、GIS等位置服务API等。首先,第三方应 用所访问的服务API有计费要求;其次,开放平台为吸引更多用户使用基于开放平台的第三 方应用,刺激使用量,通常需要灵活的计费策略和对第三方应用、或用户进行准确计费来配 合使用,如在平台运营初期在低于某种访问量或访问频率情况下免费提供服务,而高于某个 阀值后采用按需计费的方式。对于有计费要求的移动互联网能力开放平台来说,也无法根据 第三方应用标识来实现对用户和第三方应用运行实例进行准确计费和访问统计,存在服务缺 陷。

因此,如何对存在有多个第三方应用运行实例的业务场景进行精确认证和鉴权?仍是一 个急需要解决的技术难题。

发明内容

有鉴于此,本发明的目的是提供一种基于OAuth协议的开放平台安全认证方法和系统, 能对存在有多个第三方应用运行实例的业务场景进行精确认证和鉴权。

为了达到上述目的,本发明提供了一种基于OAuth协议的开放平台安全认证方法,所述 方法包括有:

步骤一、开放平台检查第三方应用装置发来的申请未授权的Request Token的访问请求 中,是否携带有和开放平台上保存一致的应用实例标识信息,如果没有,则为所述第三方应 用装置分配新的应用实例标识,并将所述应用实例标识、生成的未经用户授权的Request Token 与对应的token密钥返回给第三方应用装置;

步骤二、第三方应用装置将开放平台返回的应用实例标识更新到本地,并继续携带所述 应用实例标识进行后续的OAuth认证请求,开放平台通过第三方应用装置发来的应用实例标 识引导用户对资源授权,然后根据应用实例标识和第三方应用标识对第三方应用装置认证通 过后,向第三方应用装置下发Access Token与对应的密钥。

为了达到上述目的,本发明还提供了一种基于OAuth协议的开放平台安全认证系统,包 括有开放平台和若干个第三方应用装置,所述开放平台和第三方应用装置通过网络相连,所 述开放平台进一步包括有:

认证授权单元,用于接收、并检查第三方应用装置发来的申请未授权的Request Token的 访问请求中,是否携带有和开放平台上保存一致的应用实例标识信息,如果没有,则为所述 第三方应用装置分配新的应用实例标识,并将所述应用实例标识、生成的未经用户授权的 Request Token与对应的token密钥返回给第三方应用装置;然后根据第三方应用装置在后续 OAuth认证请求中所携带的应用实例标识,引导用户对资源进行授权,最后根据应用实例标 识和第三方应用标识信息对第三方应用装置认证通过后,向第三方应用装置下发Access  Token与对应的密钥。

与现有技术相比,本发明的有益效果是:本发明通过扩展OAuth协议的参数,增加应用 实例标识oauth_consumer_key_id对每个第三方应用装置(即第三方应用运行实例)进行标识, 开放平台认证和鉴权的对象是第三方应用装置,从而实现了对多个第三方应用运行实例的业 务场景进行精确认证和鉴权;并且还可以根据第三方应用装置在认证成功后,通过开放平台 的服务API访问用户授权的资源时所携带的应用实例标识和第三方应用标识,对第三方应用 和最终用户的服务请求进行记录和统计,从而具有灵活计费能力。

附图说明

图1是本发明一种基于OAuth协议的开放平台安全认证方法的流程图。

图2是图1所示方法实施例的信令流程图。

图3是本发明一种基于OAuth协议的开放平台安全认证系统的实施例的组成结构示意图。

图4是开放平台的组成结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详 细描述。

针对上述移动、互联网的典型应用场景,本发明通过扩展OAuth协议的参数:应用实 例标识oauth_consumer_key_id,来对每个访问开放平台的第三方应用装置进行标识。

如图1所示,本发明一种基于OAuth协议的开放平台安全认证方法,包括有:

步骤一、当用户向第三方应用装置发出访问开放平台的资源请求时,第三方应用装置 检查本地是否已分配有应用实例标识?如果有,则携带所述应用实例标识向开放平台的 Request Token URL地址发起申请未授权的Request Token的访问请求;如果没有,则直接 向开放平台的Request Token URL地址发起申请未授权的Request Token的访问请求;

步骤二、开放平台检查第三方应用装置发来的申请未授权的Request Token的访问请求 中,是否携带有和开放平台上保存一致的应用实例标识信息,如果没有,则为所述第三方 应用装置分配新的应用实例标识,并将所述应用实例标识、生成的未经用户授权的Request  Token与对应的token密钥返回给第三方应用装置;

步骤三、第三方应用装置将开放平台返回的应用实例标识更新到本地,并继续携带所 述应用实例标识进行后续的OAuth认证请求,开放平台通过第三方应用装置发来的应用实 例标识引导用户对资源授权,然后根据应用实例标识和第三方应用标识对第三方应用装置 认证通过后,向第三方应用装置下发Access Token与对应的密钥;

步骤四、第三方应用装置在认证成功后,携带应用实例标识、第三方应用标识和Access  Token等参数信息,通过开放平台的服务API访问用户授权的资源,开放平台根据所述应 用实例标识和第三方应用标识,对第三方应用和最终用户的服务请求进行记录,所述记录 信息可以用于计费。

在Access Token有效期内,第三方应用装置可以直接通过开放平台的服务API访问用 户已授权的资源;开放平台根据所述应用实例标识和第三方应用标识,对用户的服务请求 进行记录、并计费。

所述第三方应用装置,即第三方应用运行实例,是下载、并安装有第三方应用程序副 本的硬件终端。所述硬件终端可以是手机、计算机、网络服务器等。根据本发明方法,开 放平台认证和鉴权的对象是每一个第三方应用装置,也即是,在不同终端上的第三方应用 运行实例。

所述应用实例标识由开放平台统一生成。值得注意的是,所述第三方应用标识用于对 不同的第三方应用进行标识,而应用实例标识用于对每个第三方应用的不同第三方应用装 置进行标识。由于一个开放平台可能有上百个第三方应用,而每个第三方应用又对应于上 万的用户,这样当几百万用户同时发起访问请求时,为确保开放平台能对每个第三方应用 装置进行有效的认证和鉴权,具有相同第三方应用标识的不同第三方应用装置的应用实例 标识应具有唯一性,即在通过第三方应用标识对每个第三方应用进行标示的前提下,进一 步通过应用实例标识对同一个第三方应用的不同第三方应用装置进行标示。所述应用实例 标识可以采用时间序列加序列号/或随机数的方式表示,如采用“YYYYMMDDHHMMSS” (年月日时分秒)+4位随机号码。

所述步骤二进一步包括有:

步骤21、开放平台接收第三方应用装置发来的申请未授权的Request Token的访问请 求,检查所述访问请求中是否携带有应用实例标识?如果有,继续步骤22;如果无,则继 续步骤23;

步骤22、开放平台检查所述应用实例标识是否和开放平台上保存的应用实例标识一 致?如果是,则将所述应用实例标识、生成的未经用户授权的Request Token与对应的token 密钥返回给第三方应用装置;如果否,则继续步骤23;

步骤23、开放平台生成、并保存新的应用实例标识,然后将所述应用实例标识、生成 的未经用户授权的Request Token与对应的token密钥返回给第三方应用装置。

所述步骤三进一步包括有:

步骤31、第三方应用装置将开放平台返回的应用实例标识更新到本地,并携带应用实 例标识,向开放平台发出请求用户授权的Request Token的访问请求,开放平台根据所述应 用实例标识,引导用户对第三方应用装置所访问的资源进行授权,最后向第三方应用装置 返回用户授权的Request Token;

步骤32、第三方应用装置携带应用实例标识和第三方应用标识,向开放平台发出将授 权Request Token换取成Access Token的请求,开放平台根据所述应用实例标识和第三方应 用标识信息,查询对应的用户授权的Request Token,对所述请求认证鉴权通过后,向第三 方应用装置下发Access Token与对应的密钥。

图2是图1所示方法实施例的信令流程图,详细介绍如下:

步骤1、用户通过第三方应用装置的访问界面,向第三方应用装置发出访问服务的请求, 所述服务需要访问保存在开放平台上的数据资源或网络能力;

步骤2、第三方应用装置携带应用实例标识,向开放平台的Request Token URL地址发 起申请未授权的Request Token的访问请求;

步骤3、开放平台检查所述申请未授权的Request Token的访问请求中是否携带有应用 实例标识,并向第三方应用装置返回应用实例标识、生成的未经用户授权的Request Token 与对应的token密钥;

步骤4、第三方应用装置将开放平台返回的应用实例标识更新到本地,然后向开放平台 的User Authorization URL地址发起请求用户授权的Request Token的访问请求,所述访问 请求中携带有应用实例标识,未经用户授权的Request Token与对应的token密钥;

步骤5、开放平台根据所述应用实例标识,引导用户对第三方应用装置所访问的数据资 源或网络能力进行授权;

步骤6、用户可通过用户名/密码或验证码等方式,授权第三方应用装置可以访问所述 数据资源或网络能力;

步骤7、开放平台向第三方应用装置返回用户授权的Request Token;

步骤8、第三方应用装置向开放平台的Access Token URL地址发起将授权Request  Token换取成Access Token的请求,所述请求中携带有应用实例标识;

步骤9、开放平台根据应用实例标识和第三方应用标识,查询对应的用户授权的Request  Token,对所述请求认证鉴权通过后,向第三方应用装置下发Access Token与对应的密钥;

步骤10、第三方应用装置携带应用实例标识、第三方应用标识、Access Token等参数 信息,通过开放平台的服务API访问用户授权的资源;

步骤11、开放平台的服务API向第三方应用装置返回调用的数据资源;

步骤12、第三方应用装置向用户完成本次服务。

如图3所示,本发明一种基于OAuth协议的开放平台安全认证系统,包括有开放平台 和若干个第三方应用装置(如第三方应用装置1、第三方应用装置2、...、第三方应用装置 n),所述开放平台和第三方应用装置通过网络相连。其中,第三方应用装置可以采取客户 端、或者服务器模式,例如第三方应用装置1和第三方应用装置n分别是用户1和用户m 的手机或计算机,第三方应用装置2是网络服务器;用户可以从不同硬件终端发起对同一 个第三方应用的访问请求,例如用户1分别从第三方应用装置1、或者第三方应用装置2 发出访问请求。

如图4所示,开放平台还可以进一步包括有认证授权单元和计费单元,其中:

认证授权单元,用于接收、并检查第三方应用装置发来的申请未授权的Request Token 的访问请求中,是否携带有和开放平台上保存一致的应用实例标识信息,如果没有,则为 所述第三方应用装置分配新的应用实例标识,并将所述应用实例标识、生成的未经用户授 权的Request Token与对应的token密钥返回给第三方应用装置;然后根据第三方应用装置 在后续OAuth认证请求中所携带的应用实例标识,引导用户对资源进行授权,最后根据应 用实例标识和第三方应用标识信息对第三方应用装置认证通过后,向第三方应用装置下发 Access Token与对应的密钥;

计费单元,用于在第三方应用装置认证成功后,根据第三方应用装置通过开放平台的 服务API访问用户授权的资源时所携带的应用实例标识和第三方应用标识信息,对第三方 应用和最终用户的服务请求进行记录、并计费。

所述第三方应用装置,是下载、并安装有第三方应用程序副本的硬件终端,用于接收 用户发来的访问开放平台的资源请求,并检查本地是否已分配有应用实例标识,如果有, 则携带所述应用实例标识向开放平台的Request Token URL地址发起申请未授权的Request  Token的访问请求;将开放平台返回的应用实例标识更新至本地,并携带所述应用实例标识 进行后续的OAuth认证请求。

所述开放平台和第三方应用装置可以通过互联网、或移动网相连,所述第三方应用装 置可以是手机、计算机、网络服务器。

值得说明的是,当重新下载、并在终端上安装第三方应用程序副本时,原有第三方应 用装置对应的应用实例标识会成为开放平台的垃圾数据,需要定时清除。因此,可以采用 应用实例标识与Access Token相同的有效期,这样当Access Token失效时,应用实例标识 同样做失效处理,开放平台定期清除失效的应用实例标识信息,从而优化系统环境。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和 原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号