OAuth2:客户端凭证与令牌交换流程中的委托不同吗?

问题描述 投票:0回答:1

据我了解,OAuth2 中的令牌交换流程是对传统 OA2 描述的补充,使资源服务器能够代表资源所有者(客户端)访问下游资源。 “委托”的定义如下如下

委托语义与模拟语义不同,尽管两者密切相关。通过委托语义,主体 A 仍然拥有独立于 B 的自己的身份,并且可以明确地理解,虽然 B 可能已将其部分权利委托给 A,但所采取的任何行动都是由代表 B 的 A 采取的。从某种意义上说,A 是B 的代理人。

我很难理解:这与客户端凭证传统流程有什么不同吗? (除了语义差异)

客户端凭据(或其他形式的客户端身份验证)可以 当授权范围为时,用作授权授予 仅限于客户端控制下的受保护资源, 或事先经授权安排的受保护资源 服务器。客户端凭据用作授权授予 通常当客户代表自己行事时(客户是 也是资源所有者)或正在请求访问受保护的 资源基于事先安排的授权 授权服务器。

根据我的理解,令牌交换和客户端凭据下的委托都允许从下游服务器作为资源服务器(服务器)访问资源,而不是作为资源所有者(客户端)。

security oauth-2.0 clientcredential token-exchange
1个回答
0
投票

关键区别在于令牌交换用于基于用户的流程。用户已通过身份验证并同意创建委托。

在基于用户的流程中,资源服务器经常互相调用。在微服务设置中,转发原始令牌是很常见的,其中每个 RS 还会检查自己所需的范围和声明。或者,可以转发新的令牌。

如果上游RS需要使用用户身份,请使用令牌交换来获取新的访问令牌。这通常会继续使用用户同意的范围,并且在某些情况下可能会缩小范围。同时,用户 ID 在访问令牌中安全发送,而不是在 URL 路径段或标头中发送,这不是一个安全的设计。

如果上游 RS 不对用户拥有的数据进行操作,则可以使用客户端凭据流来获取新的访问令牌。例如,返回汇率的第三方 API。

© www.soinside.com 2019 - 2024. All rights reserved.