如何授权进入下游API?

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

我们使用OAuth 2.0进行授权。

服务器端 Web 应用程序首先将客户端凭据发送到授权服务器并获取 JWT 令牌。然后它向 API-1 发送请求。 API-1 需要向 API-2 发送自己的请求。

是否可以使用 API-1 已从客户端收到的相同 JWT 在 API-2 中进行授权?

如果不是,这种场景可以采用什么授权方式?

从我读过的文档来看,似乎不可能重用相同的 JWT,但我也不确定这里使用的正确方法是什么。

oauth-2.0 jwt authorization
1个回答
0
投票

访问令牌被设计为供多个 API 使用,因此转发令牌是一个很好的默认操作。这以可验证和可审计的方式传递用户身份和其他令牌声明。然后,每个 API 在允许请求之前都会验证 JWT。

令牌转发通常与范围和受众检查相结合,以设置边界。例如,对于

sales
业务领域,代币可能具有以下值:

aud: api.mycompany.com
scope: openid sales

每个 API 必须检查其所需的受众和范围。这些可以以多种方式设计,例如,如果需要,不同的 API 操作可能需要不同的范围。如果将上述令牌发送到需要不同范围的

finance
API,它将被拒绝并显示 403 错误。

当跨越信任边界时,通常会避免令牌转发,例如,如果担心上游 API 滥用令牌。在这种情况下,可以使用某种“令牌交换”,尽管权限可能会减少,但它会继续流动身份。

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