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

时间:2019-10-04 03:53:54

标签: oauth-2.0 authorization openid-connect websecurity

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

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

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

我们如何仅通过访问令牌JWT知道谁是主叫方? OIDC提到azp是告诉谁是Identity Token的授权方的一种方法,但没有为Access Token定义等效项。有人有什么主意吗?

1 个答案:

答案 0 :(得分:2)

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

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

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

相关问题