我有3个申请,
客户端应用程序可以验证和检索id_token和授权令牌。然后,RP通过在标头中传递授权令牌,从而使RP使用授权令牌来调用OP。然后,该请求将由OP转发给中介服务器(MS)。 MS需要访问最终用户信息。不能仅将它们作为查询参数或在请求正文中传递。但是RP发送的授权令牌仍可以由MS访问。由于openID Connect docs仅提及要由客户端应用程序(RP)使用的userinfo端点,因此MS使用OP的userinfo端点检索用户声明是否错误?
从您的应用程序角度来看,您有两个部分。最终用户最先获得的部分实际上是获得访问令牌和ID令牌的。然后,您将拥有一个后端部分(如您所定义的MS),该部分依靠令牌来执行一些验证(例如:针对已知数据库的电子邮件验证)。因此,基本上,MS属于您的应用程序,这仍然在术语
CLIENT的范围内。
替代方法是使用自包含的访问令牌。它们将以JWT的形式出现(类似于ID令牌),通常可以配置为具有必要的用户信息。这样做的好处是您可以避免MS到OP调用用户信息并依靠JWT完整性(注意-当然,您需要来自OP的公钥,但是可以将其缓存一段时间)