微连接(Weibo Connect)是新浪微博针对第三方网站提供的社会化网络接入方案。微连接基于新浪微博亿级用户基数和社交网络传播特性,为第三方网站提供用户身份系统及社交关系导入、内容引入及分发传播、用户人群特征分析、社会化传播效果监控等服务。
微连接的其中一种实现方式是微博登陆功能,通过OAuth协议,用微博账号即可登陆第三方网站,在降低新用户注册成本的同时,更能利用微博社交关系提高网站用户黏性,有效传播网站内容。
1、什么是OAuth协议?
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。
具体到通过微博实现网站接入的情况,我的知蚁博客是第三方应用,浏览我博客的人是用户,某一网站指新浪微博,则OAuth协议可理解为:“允许知蚁博客访问用户在新浪微博上的一些资源(如微博用户名、最近的微博、粉丝数等等),而这一操作第三方应用(知蚁博客)并不需要知道用户的新浪微博用户名和密码。”与此同时,第三方应用(知蚁博客)在确认用户身份后,可以给予用户注册用户的权限,这样第三方就不需要自己实现注册用户功能了。
因为第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAuth协议是安全的。同时,任何第三方都可以使用OAuth认证服务,任何服务提供商都可以实现自身的OAuth认证服务,因而OAuth协议是开放的。
2、使用OAuth进行认证与授权的流程
- 用户访问客户端的网站,想操作用户存放在服务提供方的资源。
- 客户端向服务提供方请求一个临时令牌。
- 服务提供方验证客户端的身份后,授予一个临时令牌。
- 客户端获得临时令牌后,将用户引导至服务提供方的授权页面请求用户授权。在这个过程中将临时令牌和客户端的回调连接发送给服务提供方。
- 用户在服务提供方的网页上输入用户名和密码,然后授权该客户端访问所请求的资源。
- 授权成功后,服务提供方引导用户返回客户端的网页。
- 客户端根据临时令牌从服务提供方那里获取访问令牌。
- 服务提供方根据临时令牌和用户的授权情况授予客户端访问令牌。
- 客户端使用获取的访问令牌访问用户存放在服务提供方上的受保护的资源。
仍然以新浪微博接入知蚁博客网站为例,知蚁博客是客户端,新浪微博是服务提供商,用户就是拥有新浪微博账号的你我或他了。
3、OAuth的版本
OAuth Core 1.0 版本发布于2007年12月4日,由于存在可被会话定向攻击(session fixation attack)的缘故,2009年6月24日发布了OAuth Core 1.0 Revision A 版本。最终在2010年4月,OAuth成为了RFC标准。
最新的版本是OAuth 2.0,OAuth 2.0是OAuth协议的下一版本,但不向后兼容OAuth 1.0。OAuth 2.0关注客户端开发者的简易性,同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程。
原创文章请注明转载于知蚁博客,本文地址:http://www.letuknowit.com/archives/163