`

未来的授权标准 -- OAuth 2.0

阅读更多

如果你在当前这个阶段选择在互联网领域创业,那么你会发现,与十年之前相比,你所面临的机遇和能够利用的资源已经丰富得多了。互联网服务之间的整合已经成为必然趋势,许多服务提供商为了给自己的用户提供更好的服务,允许第三方通过调用“开放API”为用户提供更多应用;而且,以国外的google、facebook、twitter为首,有一些用户规模大、技术实力强的服务提供商,为第三方提供了一整套自成体系、纷繁复杂的“开放API”,成为真正的“开放平台”。

开放平台的核心问题在于用户验证和授权。对于服务提供商来说,一般不会希望第三方直接使用用户名和密码来验证用户身份,除非双方具有很强的信任关系。实际上,由于国内业界在开放授权问题上缺乏经验和共识,造成互联网公司之间很多的合作大费周章,甚至于中途夭折。这首先会造成用户享受不到更丰富和更安全的服务,而且从长远来看,会阻碍整个产业的整合和进步。

OAuth协议正是为了解决服务整合时“验证和授权”这一根本问题而生的。实际上,它是业内各大开放平台在尝试解决用户授权问题上的经验总结和知识结晶。

OAuth从1.0版本开始,中间经过很多次的论证、实践和修改,发展出了好几个版本,现在已经发展到2.0版本。所有的版本如下所示:

各个版本的大致关系:

OAuth在2007年10月完成1.0版本,之后直到2009年6月才为了解决一个安全问题而进行了一次修改,这就是1.0a版本。OAuth 1.0a在2010年4月正式成为RFC,在1.0a版本的基础上进行了一些勘误,这就是RFC5849。现在,如果你想实现OAuth 1.0协议,那么应该以RFC5849这个版本为准。

OAuth WRAP的全称是“OAuth Web Resource Authorization Profiles”,它的提出是为了对OAuth 1.0进行简化,解决OAuth 1.0实现困难的缺点。OAuth 2.0以OAuth WRAP协议为基础,以简化实现为原则,并对更多的接入形式予以支持,如按照官方的描述,OAuth 2.0能够同时支持“Web应用、桌面应用、移动终端、家庭设备”等等。注意OAuth 2.0与OAuth 1.0并不兼容,是一套全新的协议。

OAuth 2.0目前还不太稳定,从2010年4月到2010年7月,该协议已经发展出10个子版本,上面列出的参考链接是它的第10个版本,也是目前最新的版本。在这10个版本的变迁中,已经发生了非常多的变化,例如:最开始版本中最引人注意的是6个Flow(即User-Agent Flow、Web Server Flow、Device Flow、Username and Password Flow、Client Credentials Flow、Assertion Flow),用来适应各种授权环境,而最新版本中Flow的概念已经过时,而代之以整合之后的Profile概念;又如,Device Flow已经从第7个版本开始从主协议中拿掉,要单独成为另一个子协议。

OAuth 2.0目前由IETF的OAuth工作组进行推进,并受到Yahoo、Facebook、Microsoft等大公司的多方支持,由来自这些公司的技术专家进行修改和维护。相信,经过多年的发展,OAuth 2.0将成为未来开放平台领域标准的授权协议,并且随着技术发展,这将不仅仅是一个简单的协议,而会成为一个解决各种环境下授权问题的标准的协议族。

分享到:
评论
1 楼 xufun 2012-06-26  
路过,拜读学习了。
谢谢!

相关推荐

Global site tag (gtag.js) - Google Analytics