一种适用于客户端平台的认证授权方法和系统技术方案

技术编号:7644406 阅读:186 留言:0更新日期:2012-08-05 01:25
本发明专利技术公开了一种用于客户端平台的认证授权方法和系统。该方法和系统基于协议的修改,均由客户端平台为接入的应用方提供JS接口进行用户登录、授权认证;启动客户端平台的至少一个应用程序;应用程序调用客户端平台JS接口获取当前登录用户的至少包含用户名的基本信息;如果返回用户未登录、但应用程序要求用户必须登录时,则应用程序调用登录JS接口;通过JS接口回调返回所述基本信息和用户的签名给应用程序;如果应用程序判断此时仅获得所述用户名和所述签名的信息已经足够,则允许用户进入应用程序。从而多用户共享多应用、避免应用伪造授权页、提升用户体验、无需提前后台录入回调地址、在添加应用后无需用户正式授权而获取基本信息。

【技术实现步骤摘要】

本专利技术涉及互联网交互中的安全
,尤其涉及一种互联网平台服务接ロ(客户端平台)的安全认证和授权方法及其系统,属于互联网安全

技术介绍
在互联网时代,某些平台会将自身的服务封装为接ロ,供第三方开发者使用。这些平台我们一般称为开放平台。第三方开发者通过调用开放平台提供的接ロ,可以很方便的导入用户信息、提供诸如充值等服务,为第三方开发者提高了开发效率、节约了大量的开发与运营成本。对开放平台来说,因为要将用户信息提供给第三方开发者,这就涉及到用户的认证与授权。由此,OAuth认证授权协议应运而生,让你可以在Web或桌面程序中使用简单而标准的,安全的API认证。用户希望在第三网站和应用上使用他在社会性网络服务SNS网站上的用户信息,这些第三方网站联系SNS网站,但是由于没有用户认证信息,这时这些用户信息是不允许访问的。比如团购网站,你需要把一条团购信息发到你的新浪微博上并通知你的好友,以前的方法是你需要在团购网站输入你的新浪微博账号,密码才能调用,虽然网站上可能都自谓“不保留新浪微博用户名密码”,但实际可能并没有清除棹,OAuth就由此而产生,即用户访问第三方资源,不再需要网站提交你的用户名,密码。这样好处自己是安全,而且不会泄露你的隐私给不信任的一方。OAuth 协议(见 “RFC 5849”The OAuth I. OProtocol ;以及“Draft-ietf-oauth-v2_23,,:The OAuth 2. OAuthorization Protocol,等关于OAuth协议)致力于使网站和应用程序(应用)App/Application(统称为消费方)能够在无须用户透露其认证证书的情况下,通过API访问某个web服务(统称为服务提供方)的受保护资源。更一般地说,OAuth为API认证提供了ー个可自由实现且通用的方法。ー个典型的例子是某打印服务提供商printer, example. com(消费方),希望在无须用户提供其照片存储站点密码的情况下,访问用户储存在photos, example, net (服务提供方)上的个人照片。如今很多网站的功能都强调彼此间的交互,因此我们需要一种简单,标准的解决方案来安全的完成应用(应用程序/程序)的授权,即应运而生的OAuth。ー个典型的OAuth应用通常包括三种角色(认证和授权的过程中涉及的三方),分别是Consumer :消费方(客户端),要访问服务提供方资源的第三方应用,通常是网站,如提供照片打印服务的网站。在认证过程之前,客户端要向服务提供者申请客户端标识。(上述所说的团购网站,也叫第三方网站)。Service Provider :服务提供者(服务提供方),用户使用服务提供方来存储受保护的资源,如照片,视频,联系人列表。(例如上述所说的新浪微博)。User :用户,存放在服务提供方的受保护的资源的拥有者。再举例如下假设我们做了ー个SNS,它有ー个功能,可以让会员把他们在Google上的联系人导入到SNS上,那么此时的消费方就是SNS,而服务提供者则是Google,用户为SNS使用者。通常,使用OAuth进行认证和授权的过程如下所示I、第三方网站向SNS网站授权服务发出获取请求令牌request token的请求,SNS授权服务响应请求,返回一个尚未认证的request token。2、第三方网站获取响应中包含的request token,按照协议规范,附带这个request token,将其重定向到SNS提供的授权页面(User Authorization URL)。如果用户没有登录,用户向普通登录ー样,输入用户名和密码完成登录。如果用户已经登录(使用记录Cookie的方式),会出现ー个页面,问用户是否允授权共享他的SNS信息给第三方网站。3、一旦用户选择授权第三方网站,SNS网站将把Web浏览器重定向到第三方网站,同时把SNS的用户信息传递过去。用户决定允许或拒绝授权给第三方网站,如果用户拒绝授权给此第三方应用,则被重定向到SNS的页面,而不会再回到第三方应用的页面上。如果用户授权给第三方网站,那么,SNS授权服务接收此请求,将用户重定向到第三方网站提供的页面上,并传递被认证了的request token。这样第三方网站就可以访问SNS网站的用户信息了。4、第三方网站接收到认证的request token后,再次向SNS账号服务发起一次HTTP请求,以换取访问令牌access token。SNS账户授权服务接收请求,验证是否合法。如果合法,则返回一个access token。OAuth的安全机制,比如使用的签名加密方法有HMAC-SHA1,RSA-SHAl (可以自定义)。如HMAC-SHA1这种加密码方法,可以使用私钥来加密要在网络上传输的数据,而这个私钥只有Consumer及服务提供商知道,试图攻击的人即使得到传输在网络上的字符串,没有私钥也无法攻击。私钥如consumer secret&token secret (哈两个密码加一起),要加密的字符串是除oauth_signature外的其它要传输的数据。按參数名字符排列,如果一样,则按内容排。比如domain = kejibo. com&oauth_consumer_key = XYZ&word=welcome......................前面提的加密里面都是固定的字符串,由于oauth_timestamp, oauth_nonce这两个是变化的,攻击者也不能直接偷取使用;而且服务器会验证ー个nonce (混淆码)是否已经被使用。那么这样攻击者就无法自己生成签名,或者偷用户的签名来使用。到目前为止,OAuth协议有两个版本被大家广泛使用,分别为OAuthl. Oa与0Auth2. O。在OAuthl. Oa中,应用方(消费方)需要预先申请ー个请求令牌RequestToken (如,未授权的请求令牌。其通常用于消费方向用户请求对访问受保护资源的授权。经过用户授权的请求令牌可以换取一个访问令牌,只能使用一次,不得用于其他用途。建议为请求令牌设置ー个有限的生命期),在用户授权后(用户授权请求令牌),应用可以获得一个授权过的请求令牌Request Token,在后端将此请求令牌Request Token更换为访问令牌Access Token(如,消费方用请求令牌换取访问令牌。其通常用于消费方代表用户访问受保护资源。访问令牌可以被用于限制访问特定资源,可以只有有限的生命期。服务提供方应当允许用户收回访问令牌。应当只 有访问令牌被用于访问受保护资源),此后均使用这个访问令牌Access Token调用开放平台的服务接ロ。在0Auth2. O中,应用方直接要求用户授权,在用户授权后,应用可以获得ー个授权过的验证码(授权码)Auth Code,在后端将此验证码Auth Code更换为访问令牌AccessToken,此后均使用这个访问令牌Access Token调用开放平台的服务接ロ。OAuth目前支持的OAuth I. Oa和0Auth2. O两个版本的流程。下面将介绍Oauthl. Oa的流程(详细流程见图I)。I :消费方请求 Requ本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种用于客户端平台的认证授权方法,其特征在于由客户端平台为接入的应用方提供JS接ロ,且均通过该客户端平台提供的JS接ロ进行用户登录、授权认证,包括 启动客户端平台的至少ー个应用程序; 应用程序调用客户端平台JS接ロ获取当前登录用户的至少包含用户名的基本信息; 如果返回用户未登录、但应用程序要求用户必须登录时,则应用程序调用登录JS接Π ; 通过JS接ロ回调返回所述基本信息和用户的签名给应用程序; 如果应用程序判断此时仅获得所述用户名和所述签名的信息已经足够,则允许用户进入应用程序。2.如权利要求I所述的方法,其中,还包括 如果返回用户已登录,则返回用户的所述基本信息给应用程序,并附带用户信息的所述签名。3.如权利要求2所述的方法,其中,还包括允许用户进入应用程序之前 所述签名的算法使用应用程序的App Secret作为密钥; 设定ー个允许的时间偏差允许范围; 加密算法加入当前时间戳,当前时间戳与所述签名一起发送给应用程序; 应用程序确定时间偏差在该允许范围内;以及 利用所述时间戳、密钥和所述基本信息一起完成校验。4.如权利要求1、2或3所述的方法,其中还包括 如果应用程序判断仅获得所述用户名和所述签名的信息不足够使用,则调用授权的JS接ロ,并通过新开启的窗ロ显不授权页; 当授权得到同意,则客户端平台将相关信息提交到后端服务器,后端服务器返回授权的请求令牌或验证码; 当授权未得到同意则认证授权流程结束。5.如权利要求4所述的方法,其中,当返回授权的请求令牌或验证码后,进ー步包括 客户端通过JS接ロ回调,通知应用程序请求令牌或验证码; 应用程序将请求令牌或验证码传入后端服务器; 应用程序在后端换取访问令牌,调用服务接ロ ; 应用程序允许用户进入应用程序。6.如权利要求5所述的方法,其中,进ー步包括 上述通过JS接ロ回调、通知应用程序请求令牌或验证码吋,只传递验证码(AuthCode, 0Auth2)或授权过的Request Token (OAuthl),验证码在应用程序的服务端使用且仅使用一次。7.如权利要求1、2、3、5或6所述的方法,其中还包括所述由客户端平台为接入的应用方提供JS接ロ后,识别提供的JS接ロ是否存在,应用程序判断应用程序的服务是否在客户端平台内运行,以采取相应的所述登录、授权认征。8.如权利要求1、2、3、5或6所述的方法,其中还包括 需要用户授权的过程中,在调用JS接ロ的时候,注册回调函数,并通过JS接ロ的回调返回相应結果。9.一种用于客户端平台的认证授权系统,其特征在于由客户端平台为接入的应用方提供JS接ロ,且均通过该客户端平台提供的JS接ロ...

【专利技术属性】
技术研发人员:东玮
申请(专利权)人:奇智软件北京有限公司
类型:发明
国别省市:

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

1
相关领域技术