面试题答案
一键面试主要角色
- 资源所有者(Resource Owner):拥有受保护资源的用户,可以授权第三方应用访问其资源。
- 客户端(Client):想要访问受保护资源的第三方应用,需要获得资源所有者的授权。
- 授权服务器(Authorization Server):验证资源所有者的身份,并向客户端颁发授权码和访问令牌。
- 资源服务器(Resource Server):托管受保护资源的服务器,通过验证访问令牌来决定是否允许客户端访问资源。
基本认证流程及交互步骤
- 客户端请求授权:
- 客户端向资源所有者展示请求授权的界面,请求访问特定资源的权限。
- 资源所有者授权:
- 资源所有者确认授权请求,如果同意,资源所有者将被重定向到授权服务器。
- 授权服务器对资源所有者进行身份验证。
- 验证通过后,授权服务器向资源所有者展示客户端请求的权限范围,资源所有者确认授权。
- 授权服务器颁发授权码:
- 授权服务器生成一个授权码,并将资源所有者重定向回客户端,同时在重定向URL中附上授权码。
- 客户端请求访问令牌:
- 客户端收到授权码后,使用授权码向授权服务器请求访问令牌。这个请求通常包含客户端的身份信息(如客户端ID和客户端密钥)。
- 授权服务器验证并颁发访问令牌:
- 授权服务器验证客户端身份和授权码的有效性。
- 验证通过后,授权服务器颁发访问令牌给客户端,该令牌用于访问受保护资源。
- 客户端使用访问令牌访问资源:
- 客户端将访问令牌包含在请求头或请求参数中,向资源服务器请求访问受保护资源。
- 资源服务器验证访问令牌并返回资源:
- 资源服务器验证访问令牌的有效性。
- 如果令牌有效,资源服务器返回客户端请求的受保护资源。