OAuth2.0和SSO授权

一、OAuth2.0授权协议

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

授权图示


授权过程

流程:

1、获取未授权的Request Token。

url:request token url。

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

response:Oauth_Token/Auth_Secret

2、获取用户授权的Request Token。

url:user authorizition url。

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

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

3、用已授权的Request Token换取AccessToken。

url:access token url。

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

response:Access_Token/Secret

参考新浪微博:http://open.weibo.com/wiki/授权机制说明

二、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,就完成了一次授权。

参考新浪微博:http://open.weibo.com/wiki/移动应用SSO授权

推荐阅读更多精彩内容

  • OAuth2.0: 一种安全的登陆协议,用户的账户密码不提交到本APP,而是提交到授权服务器,待服务器确认后,返回...
    雷潮阅读 2,102评论 0 3
  • 一、OAuth2.0授权协议 一种安全的登陆协议,用户提交的账户密码不提交到本APP,而是提交到授权服务器,待服务...
    落寒z阅读 646评论 0 4
  • 登录的业务逻辑 { http:是短连接. 服务器如何判断当前用户是否登录? // 1. 如果是即时通信类:长连接....
    VincentHK阅读 1,728评论 0 9
  • 登录的业务逻辑 { http:是短连接. 服务器如何判断当前用户是否登录? // 1. 如果是即时通信类:长连接....
    wvqusrtg阅读 695评论 0 0
  • 在樂素坤博士的健康農場裡,少不了黑胡椒苦瓜湯。 人的大腦超過85%是水,除了經常補充好水外,經常保持清涼...
    羽美洁阅读 1,214评论 0 5
  • 文/泥璐
    泥璐阅读 355评论 9 15
  • 爱是妈妈的电话中的絮絮叨叨,爱是爸爸告诉我们的打铁还的自身硬,爱是老公忍受我的小脾气小性格,爱是女儿甜甜的“妈妈,...
    NANA0阅读 94评论 2 2