1

我有多个客户端应用程序连接到微服务设置中的多个不同 API 服务。我使用 OIDC 进行用户身份验证,然后使用 OAuth2 访问令牌为客户端应用程序授权 API 服务(资源服务器)。

如果许多不同的应用程序具有所需范围的访问令牌,则它们可以调用相同的 API。Tha API 服务器仅检查访问令牌中是否存在声明以允许调用。

我们的一项 API 服务(例如,订票应用程序)需要知道调用者是谁,以进行一些特定于应用程序的验证,并为发票等进行一些日志记录。

我们如何仅从 Access Token 知道调用者是谁JWT?虽然 OIDC 提到azp作为一种方法来判断授权方是谁 为Identity Token,但没有为Access Token. 有人有什么想法吗?

4

1 回答 1

1

您可以使用 OAuth 2.0 ( OAuth 2.0 Token Introspection )定义的令牌自省端点

公开此端点以验证令牌的有效性以及检索一些信息,例如范围、最终用户的用户名以及对于您的情况而言重要的是客户端的客户端 ID(自省响应)。

或者,检查您的授权服务器的访问令牌 JWT 配置。由于您获得了 JWT,因此可以将客户端 ID 添加到 JWT,这将避免这种额外的自省调用。

于 2019-10-04T09:32:22.137 回答