MST

星途 面试题库

面试题:微服务架构下OAuth 2.0的基本流程

请阐述在微服务架构场景中,OAuth 2.0实现授权的基本流程,包括涉及的主要角色及其交互步骤。
18.6万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试

主要角色

  1. 资源拥有者(Resource Owner):通常是用户,拥有受保护的资源,并且有权授予第三方应用访问这些资源的权限。
  2. 客户端(Client):即第三方应用,它需要获取资源拥有者的授权,以访问受保护的资源。
  3. 授权服务器(Authorization Server):负责验证资源拥有者的身份,并颁发授权码(Authorization Code)和访问令牌(Access Token)。
  4. 资源服务器(Resource Server):托管受保护的资源,验证访问令牌的有效性,并在令牌有效时提供资源访问。

基本流程

  1. 用户请求第三方应用资源:客户端(第三方应用)向用户展示一个请求访问其资源的界面。
  2. 重定向到授权服务器:用户同意后,客户端将用户重定向到授权服务器,附带客户端ID、重定向URI和授权类型(如授权码模式authorization_code)等参数。
  3. 授权服务器验证用户身份:授权服务器对用户进行身份验证,通常通过用户名和密码等方式。
  4. 用户授权:授权服务器向用户展示客户端请求的权限范围,用户决定是否授权给客户端访问其资源。
  5. 颁发授权码:如果用户授权,授权服务器生成一个授权码,并将用户重定向回客户端指定的重定向URI,同时将授权码作为参数传递。
  6. 客户端请求访问令牌:客户端收到授权码后,使用授权码、客户端ID和客户端密钥(如果需要)向授权服务器请求访问令牌。
  7. 授权服务器验证并颁发访问令牌:授权服务器验证授权码、客户端ID和密钥(如果有)的有效性,验证通过后颁发访问令牌(Access Token),可能还包括刷新令牌(Refresh Token,用于在访问令牌过期时获取新的访问令牌)。
  8. 客户端使用访问令牌访问资源:客户端使用访问令牌向资源服务器请求访问受保护的资源。
  9. 资源服务器验证令牌并返回资源:资源服务器验证访问令牌的有效性,如果有效则返回相应的资源给客户端。