目录
前言
一、OAuth2是什么?
二、授权模式
1.授权码模式
2.密码模式
3.客户端模式
总结
前言
本文主要介绍一下OAuth2的四种授权模式
一、OAuth2是什么?
讲解OAuth2之前,先了解几个专用名词。
- Third-party application:第三方应用程序,又称“客户端”(client)
- HTTP service:HTTP服务提供商,简称“服务提供商”
- Resource Owner:资源所有者
- User Agent:用户代理
- Authorization server:认证服务器
- Resource server:资源服务器
OAuth的作用就是让客户端安全可控地获取用户的授权,与服务提供商进行互动。
OAuth就是在客户端与服务提供商之间,设置了一个授权层(authorization layer)。客户端不能直接登录服务提供商,只能登录授权层,以此将用户与客户端区分开来。客户端登录授权层所用的令牌(token),与用户的密码不同,用户可以在登录的时候,指定授权层令牌的权限范围和有效期。
二、授权模式
1.授权码模式
如图所示:
操作步骤:
(A)用户访问客户端,后者将前者导向认证服务器。
(B)用户选择是否给予客户端授权。
(C)假设用户给予授权,认证服务器将用户导向客户端事先指定的"重定向URI"(redirection URI),同时附上一个授权码。
(D)客户端收到授权码,附上早先的"重定向URI",向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。
(E)认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)。
2.密码模式
如图所示:
操作步骤:
(A)用户向客户端提供用户名和密码。
(B)客户端将用户名和密码发给认证服务器,向后者请求令牌。
(C)认证服务器确认无误后,向客户端提供访问令牌。
3.客户端模式
如图所示:
操作步骤:
(A)客户端向认证服务器进行身份认证,并要求一个访问令牌。
(B)认证服务器确认无误后,向客户端提供访问令牌。
总结
这就是OAuth的三种常用授权模式的操作步骤。