OAuth学习总结

1、为什么需要OAuth?

 新浪微博就是你的家。偶尔你会想让一些人(第三方应用)去你的家里帮你做一些事,或取点东西。你可以复制一把钥匙(用户名和密码)给他们,但这里有三个问题:

1)别人拿了钥匙后可以去所有的房间
2)别人拿到你的钥匙后也许会不小心丢到,甚至故意送到它人手里。这样你都不知到谁有你家钥匙。
3)过一段时间你也许会想要回自己的钥匙,但别人不还怎么办?

OAuth 是高级钥匙:

1)你可以配置不同权限的钥匙。有些只能进大厅(读取你的微博流)。有些钥匙可以进储藏柜(读取你的相片)
2)钥匙上带着指纹验证的(指纹 = appkey)。 收到钥匙的人只能自己用,不能转让
3)你可以远程废除之前发出的钥匙

相对来说, OAuth比给出用户名密码安全。

 

2、OAuth的产生及版本

 在OAuth诞生前,Web安全方面的标准协议只有OpenID,不过它关注的是验证,即WHO的问题,而不是授权,即WHAT的问题。好在FlickrAuth和GoogleAuthSub等私有协议在授权方面做了不少有益的尝试,从而为OAuth的诞生奠定了基础。

  • 2007-12 OAuth 1.0发布并迅速成为工业标准。
  • 2008-06 OAuth 1.0 Revision A发布,这是个稍作修改的修订版本,主要修正一个安全方面的漏洞。
  • 2010-04,OAuth 1.0 协议发布为 RFC 5849
  • 2011-05 OAuth 2.0 草案发布
  • 2012-10 OAuth 2.0 协议发布为 RFC 6749
Oauth 1.0, 1.0a是同一个体系的。1.0早期为google工程师设计。他们随后发现这个协议存在session fixation attack。 1.0a修复了这个漏洞。但在使用过程中人们发现开发人员不能很好地实现协议所要求的数字签名。这造成大量的漏洞。于是ietf工作组重新设计了oauth2.0。新协议不再需要数字签名。这个协议和1.0不能兼容。OAuth 1.0 协议过于复杂,易用性差,所以并没有得到普及。

 

posted on 2018-03-06 22:51  时间朋友  阅读(221)  评论(0编辑  收藏  举报

导航