OAuth2.0和SSO受权

1、OAuth2.0受权协议安全

  一种安全的登录协议,用户提交的帐户密码不提交到本APP,而是提交到受权服务器,待服务器确认后,返回本APP一个访问令牌,本APP便可用该访问令牌访问资源服务器的资源。因为用户的帐号密码并不与本APP直接交互,而是与官方服务器交互,于是它是安全的。服务器

图示:cookie

受权图示

流程:app

  一、获取未受权的Request Token。url

    url:request token url。spa

    param:appKey/appSecret,签名方法/签名(如HMAC-SHA1),timeStamp(时间戳:距1970/0/0/0/0/0的秒数),nonce(随机生成的string,防止重复请求).net

    response:Oauth_Token/Oauth_Secretblog

  二、获取用户受权的Request Token。token

    url:user authorizition url。资源

    param:Oauth_Token(上个步骤返回的令牌),callback_url(受权成功后返回的地址)

    response:Oauth_Token(被用户受权或否决的令牌)

  三、用已受权的Request Token换取AccessToken。

    url:access token url。

    param:appKey,Oauth_Token(上个步骤返回的令牌),签名,TimeStamp,nonce

    response:Access_Token/Secret

 

2、SSO受权技术

  全称:Single Sign On,用户只需登录一次便可访问相互信任的子系统。用户访问系统1时,登录成功后会返回一个ticket,当用户访问系统2时,会把ticket带上,待验证合法后便可访问系统2。听起来跟cookie有点像,没错,Web-SSO便有基于cookie的实现方案。

  以新浪微博为例,不少手机APP在点击新浪受权时,会跳到新浪客户端的登录页面,这里就用到SSO技术啦。在本APP受权新浪微博时,会先检测手机是否安装了新浪微博客户端。

  [[UIApplicationsharedApplication] openURL:xxx]能够打开另外一个APP。这里sinaweibosso://login为客户端的url并传递三个参数,AppKey,RedirectURI,ssoCallbackScheme。

  ssoCallbackScheme是返回的App Url地址,即本身定义的sinaweibosso.appKey。

  登录成功后,客户端会直接把AccessToken返回给本App,就完成了一次受权。  

by sschu

参考:http://www.haogongju.net/art/1882644

相关文章
相关标签/搜索