OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容。OAuth是OpenID的一个补充,但是完全不同的服务。

OAuth协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使用OAuth认证服务,任何服务提供商都可以实现自身的OAuth认证服务,因而OAuth是开放的。业界提供了OAuth的多种实现如PHP、JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAuth是简易的。

OAuth协议的特点:(1). 简单:不管是OAuth服务提供者还是应用开发者,都很容易于理解与使用;(2). 安全:没有涉及到用户密钥等信息,更安全更灵活;(3). 开放:任何服务提供商都可以实现OAuth,任何软件开发商都可以使用OAuth。互联网很多服务如Open API,很多大公司如Google,Yahoo,Microsoft等都提供了OAuth认证服务,这些都足以说明OAuth标准逐渐成为开放资源授权的标准。

OAuth开始于2006年11月,当时布莱恩·库克(Blaine Cook)正在开发Twitter的OpenID实现。与此同时,Ma.gnolia需要一个解决方案允许使用OpenID的成员授权Dashboard访问他们的服务。这样库克、克里斯·梅西纳(Chris Messina)和来自Ma.gnolia的拉里·哈尔夫(Larry Halff)与戴维·雷科尔顿(David Recordon)会面讨论在Twitter和Ma.gnolia API上使用OpenID进行委托授权。 他们讨论得出没有开放标准完成API访问的委托。2007年4月,成立了OAuth讨论组,这个由实现者组成的小组撰写了一个开放协议的提议草案。来自Google的德维特·克林顿(DeWitt Clinton)获悉OAuth项目后,表示他有兴趣支持这个工作。

2007年7月,团队起草了最初的规范。随后,Eran Hammer-Lahav加入团队并协调了许多OAuth的稿件,创建了更为正式的规范。2007年10月, OAuth核心 1.0最后的草案发布了。2008年11月,在明尼阿波利斯举行的互联网工程任务组第73次会议上, 举行了OAuth的BoF[1]讨论将该协议纳入IETF做进一步的规范化工作。 这个会议参加的人很多,关于正式地授权在IETF设立一个OAuth工作组这一议题得到了广泛的支持。2010年4月,OAuth 1.0协议发表为RFC 5849,一个非正式RFC。OAuth 2.0是OAuth协议的下一版本,但不向前兼容OAuth 1.0。 OAuth 2.0关注客户端开发者的简易性,同时为Web应用,桌面应用和手机和起居室设备提供专门的认证流程。

相关导航