OAuth in OpenSocial 序篇

OAuth的基本概念

这个不是本文重点,不过我在学习OAuth中也总结了一些有用的资料:

  1. OAuth官方网站 : http://oauth.net/
  2. OAuth教程Blog : http://hueniverse.com/oauth/
  3. Google OAuth : http://code.google.com/apis/accounts/docs/OAuth.html
  4. 附件是我最初学习OAuth做的PPT,里面把一些经典的例子都涉及到了,有兴趣的可以看一下。
  5. Demo OAuth的好地方,OAuth Playground : http://googlecodesamples.com/oauth_playground/
  6. 另一个OAuth Demo : http://oauthexample.appspot.com/Welcome



 

重点还是关注OpenSocial中的OAuth应用:

主要参考文章:http://wiki.opensocial.org/index.php?title=OAuth_Use_Cases

 

OpenSocial中OAuth的需求

OpenSocial需要OAuth,是很容易理解的,因为OpenSocial的API基本都是取私人数据的,比如如下图的Gadget,是获取Google的联系人,这是非常隐私的私人数据,此处虽然是在Google的ig中取Google的联系人,并且用户在登录状态,但是仍可使用或者某些场景需要OAuth来取私人数据,为什么?

虽然都在Google内,但是我们得分开考虑:

  • ig是个gadget容器,实际上可以理解为Gadget的App Server,在OAuth中为Consumer.
  • 我们要取的联系人是Google的一项服务,实现了Open Social的API,在OAuth中为SP Provider

 
 

 

OAuth 签名用到的key

Consumer Key 和 Secret

对于需要用到OAuth的Gadget,他们都有一对自己使用的Consumer Key和Secret.

这对Key保存在两个地方:

①Social Network:上例就是联系人服务的server,如果通过OAuth的方式取联系人,要在此Server上注册一对Consumer Key和Secret.

②Gadget容器所属的App server:这里也要保存的原因是,Gadget本身不具备发起OAuth Request的能力,OAuth签名等操作实际是在App Server中进行的,因此App Server需要保存这对Key。

保存方式是建立关系映射,例如 mygadget:key&secret,这样gadget发起OAuth请求(此请求非实际请求,而是请求App server作为代理代发OAuth请求的请求+_+),Gadget容器就知道应该使用哪对Key&Secret签名。

这也就建立了Gadget与App Server的联系。

 

还拿上面的例子(并非真相,只是做例子解说),简而言之,Gadget的作者写完取google联系人的gadget后,在google联系人server的OAuth注册处注册了一对key&secret,随后,在gadget容器,也将此key&secret保存(我现在很后悔用ig和google联系人做例子,因为Google可能不需要这么麻烦的= =#,如果是两个不相干的App Server和social network,则这个流程是必须的..,实际上Google注册key&secret时按Domain来的,不过我没domain%>_<%,所以也不清楚真相,有domain的可以到下面的link尝试一下https://www.google.com/accounts/ManageDomains)

 

用来验证Gadget所用key&secret的link : https://www.google.com/gadgets/directory/verify

 

 

public/private Key

有些Gadget容器不但支持Consumer Key和Secret的方式签名。

还支持非对称加密,这个很好理解:

Gadget容器保存自己的keystore,即私钥,用来对OAuth签名,然后将证书发布出去。

Social Site保存证书,以便取得公钥,用来验签名

 

下面这个link可以得到各大Gadget容器的证书:https://opensocialresources.appspot.com/certificates/

  

 

 OpenSocial and 3-legged OAuth

>点我链接至< :OAuth in OpenSocial-第一篇:3-legged OAuth实例分析

 

 

 

 

 OpenSocial and 2-legged OAuth

 

>点我链接至< : OAuth in OpenSocial-第二篇:2-legged OAuth

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值