概念
- OAuth2是OAuth协议的延续版本,是一种在系统之间的代理授权协议。
- OAuth2提供一个宽泛的协议框架,具体安全场景需要定制。
- OAuth2的本质是如何获取token和如何使用token。
授权模式
1.授权码模式
(1)客户端将用户导向认证服务器
(2)认证服务器重定向事先指定的"重定向URI,并附上授权码返回客户端
(3)客户端用带上的code请求access_token返回认证服务器
(4)认证服务器核对后发放access token refresh token给客户端
(4)客户端用拿到的access_token访问资源服务器中的资源
2.简化模式
(1)用户使用客户端,客户端将用户导向认证服务器
(2)认证服务器重定向事先指定的"重定向URI”,并附上hash令牌
(3)用户通过认证服务器返回给客户端的url进入到浏览器
(4)浏览器向资源服务器发出请求,不包括上一步收到的hash
(5)资源服务器返回浏览器一个网页,其中包含的代码可取出hash中的token
(6)浏览器将资源服务器返回的网页发送给客户端
3.密码模式
(1)用户访问客户端并输入用户名和密码
(2)客户端使用用户名和密码向认证服务器索要token
(3)认证服务器返回token
4.客户端模式
(1)用户访问客户端并输入用户名和密码
(2)客户端用自己的名义向认证服务器索要token
(3)认证服务器返回token
OAuth2的误区
- OAuth2并不是一个认证协议
- OAuth2并没有授权处理机制
- OAuth2并没有定义token格式
- OAuth2仅是协议授权框架,仅用于授权代理