Spring Cloud Security OAuth2(一)—— OAuth2协议简介
一、什么是Oauth2
网上解释: OAuth(开放授权)是一个开放标准。允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用。
例子解析:
用户需要登录豆瓣网站,豆瓣提供了微信的第三方登录方式,用户只需要用微信扫码(登录账号密码)方式就能登录豆瓣网站,而不需要提供豆瓣网站的登录账号的密码。这个协议就是Oauth2。
二、名词定义
(1) Third-party application:第三方应用程序,本文中又称"客户端"(client),即上例的微信授权平台。
(2)HTTP service:服务提供商,即上例的微信授权平台。
(3)Resource Owner:资源所有者,即登录用户。
(4)User Agent:用户代理,本文中就是指浏览器。
(5)Authorization server:认证服务器,即服务提供商专门用来处理认证的服务器,即微信授权平台的服务器。
(6)Resource server:资源服务器,即给用户提供资源的服务器,即豆瓣的服务器。
三、交互流程
四、授权模式
客户端必须得到用户的授权(authorization grant),才能获得令牌(access token)。oAuth 2.0 定义了四种授权方式。
- implicit:简化模式,不推荐使用
- authorization code:授权码模式
- resource owner password credentials:密码模式
- client credentials:客户端模式