如何在OIDC / OAuth2流中在“资源服务器”上标识“客户端应用程序”

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

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

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

我们的一项API服务(例如,机票预订应用程序)需要知道谁是呼叫者,以便进行某些应用程序特定的验证以及进行发票记录等工作。

我们如何仅通过访问令牌JWT知道谁是呼叫者?尽管OIDC提到azp作为告诉谁是Identity Token的授权方的手段,但Access Token并没有定义等效项。有人有什么想法吗?

oauth-2.0 authorization oidc websecurity
1个回答
2
投票

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

公开此端点是为了验证令牌的有效性以及检索某些信息,例如范围,最终用户的用户名,以及对于您而言重要的是客户端的客户端ID(Introspection Response)。

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

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