前言
OAuth是Open Authorization的简写。OAuth协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使用OAUTH认证服务,任何服务提供商都可以实现自身的OAuth认证服务,因而OAuth是开放的。业界提供了OAuth的多种实现如PHP、JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAuth是简易的。
OAuth2是OAuth协议的2.0版本,不向后兼容OAuth1.0。
OAuth 2.0定义了四种授权方式,其中的授权码模式(authorization code)是功能最完整、流程最严密的授权模式。
需要知道的基础概念
首先需要了解几个基本的服务方:
(1) Third-party application:第三方应用程序,又称"客户端"(client),比如禅道
(2)Resource Owner:资源所有者,又称"用户"(user),即登录用户。
(3)User Agent:用户代理,本文中就是指浏览器。
(4)Authorization server:认证服务器,即服务提供商专门用来处理认证的服务器或提供认证服务的提供商,如:赛赋IDaaS服务
(5)Resource server:资源服务器,即服务提供商存放用户生成的资源的服务器。它