OAuth2简介
OAuth2.0 适用于授权的行业标准协议。OAuth 2.0为简化客户端开发提供了特定的授权流,包括web应用、桌面应用、移动端应用等。
OAuth2 相关名词解释
-
Resource owner(资源拥有者):拥有该资源的最终用户,他有访问该资源的账号密码。
-
Resource server(资源服务器):拥有受保护资源的服务器,如果请求包含正确的访问令牌,可以访问资源;
-
Client(客户端):访问资源的客户端,会使用访问令牌去获取资源服务器的资源,可以使浏览器、移动设备或者服务器。
-
Authorization server(认证服务器):用于认证用户的服务器,如果客户端认证通过,发放访问资源令牌给客户端。
四种授权模式
-
Authorization Code (授权码模式):正宗的OAuth2.0的授权模式,客户端现将用户导向认证服务器,登录后获取授权码,然后进行授权,最后根据授权码来获取访问令牌。
-
Implicit(简化模式):和授权码模式相比,取消了获取授权码的过程直接获取访问令牌;
-
Resource Owner Password Credentials(密码模式):客户端直接向用户获取用户名和密码,之后向认证服务器获取访问令牌。
-
Client Credentials(客户端模式):客户端直接通过客户端认证,比如client_id 和 client_secret 从认证服务器获取访问令牌。
两种常见的授权模式:
授权码模式
-
客户端将用户导向认证服务器
-
用户在认证服务器登录并授权
-
认证服务器返回授权码给客户端
-
客户端通过授权码和跳转地址向认证服务器获取访问令牌
-
认证服务器发放访问令牌
密码模式
-
客户端从用户获取用户名和密码
-
客户端通过用户的用户和密码访问认证服务器
-
认证服务器返回资源访问令牌