后端服务器应用程序可以利用userinfo端点在OpenID Connect中检索最终用户声明吗?

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

我有3个申请,

  1. 客户端应用程序(RP)
  2. OpenID Provider(OP)
  3. 中介服务器(MS)

客户端应用程序可以验证和检索id_token和授权令牌。然后,RP通过在标头中传递授权令牌,从而使RP使用授权令牌来调用OP。然后,该请求将由OP转发给中介服务器(MS)。 MS需要访问最终用户信息。不能仅将它们作为查询参数或在请求正文中传递。但是RP发送的授权令牌仍可以由MS访问。由于openID Connect docs仅提及要由客户端应用程序(RP)使用的userinfo端点,因此MS使用OP的userinfo端点检索用户声明是否错误?

authentication oauth-2.0 authorization openid-connect
1个回答
1
投票
用户信息端点是由OpenID Connect定义的OAuth 2.0令牌保护的端点。它的行为或多或少类似于OAuth 2.0(OAuth 2.0 Token Introspection)定义的令牌自省端点,为令牌持有者提供了获取经过身份验证的最终用户信息的能力。

从您的应用程序角度来看,您有两个部分。最终用户最先获得的部分实际上是获得访问令牌和ID令牌的。然后,您将拥有一个后端部分(如您所定义的MS),该部分依靠令牌来执行一些验证(例如:针对已知数据库的电子邮件验证)。因此,基本上,MS属于您的应用程序,这仍然在术语

CLIENT的范围内。

替代方法是使用自包含的访问令牌。它们将以JWT的形式出现(类似于ID令牌),通常可以配置为具有必要的用户信息。这样做的好处是您可以避免MS到OP调用用户信息并依靠JWT完整性(注意-当然,您需要来自OP的公钥,但是可以将其缓存一段时间)

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