【发布时间】:2018-06-04 20:38:42
【问题描述】:
在 OAuth2 的上下文中,我想确切地知道我的应用程序的哪些组件被认为是“客户端”。
以下是来自rfc6749的相关操作
第 1.1 节:
客户
代表资源所有者并经其授权发出受保护资源请求的应用程序。术语“客户端”并不意味着任何特定的实现特征(例如,应用程序是在服务器、桌面还是其他设备上执行)。
第 2.1 节:
客户端可以实现为分布式组件集,每个组件具有不同的客户端类型和安全上下文(例如,具有机密服务器的分布式客户端-基于组件和公共的基于浏览器的组件)。如果授权服务器不为此类客户端提供支持或不提供有关其注册的指导,则客户端应将每个组件注册为单独的客户端。
场景 1:
- 我的应用程序 (A) 由一个基于浏览器的前端(组件 A1)和一个后端 API(组件 A2)组成。
- 后端 (A2) 从 Google 的授权服务器 (G1) 获取访问令牌 (Authorization Code Grant) 以访问 Google 的资源服务器 (G2)
以下哪些说法是正确的?
- “客户”指的是 (A)。 (A) 是机密的,由公共组件 (A1) 和机密组件 (A2) 组成。
- “客户”指的是 (A2)。 (A2) 是机密客户。
- 将 (A1) 称为客户端是不正确的,因为 (A1) 不会向 (G2) 发出受保护的资源请求。
场景 2:
- 我的应用程序 (A) 由一个基于浏览器的前端(组件 A1)和一个后端 API(组件 A2)组成。
- 基于浏览器的前端 (A1) 从 Google 的授权服务器 (G1) 获取访问令牌 (Implicit Grant) 以访问 Google 的资源服务器 (G2)
以下哪些说法是正确的?
- “客户”指的是 (A)。 (A) 是公共客户端,由公共组件 (A1) 和机密组件 (A2) 组成。
- “客户”指的是 (A1)。 (A1) 是公共客户。
- 将 (A2) 称为客户端是不正确的,因为 (A2) 不会向 (G2) 发出受保护的资源请求。
【问题讨论】: