在OpenID Connect Core 1.0 incorporating errata set 1 Section 12.2是说:如何刷新id_token
12.2. Successful Refresh Response
Upon successful validation of the Refresh Token, the response body is the Token Response of Section 3.1.3.3 except that it might not contain an id_token.
本来当获取id_token,它是一个签名,也许加密,智威汤逊。 然后,id_token转发到同一安全域内的其他服务。 这些其他服务需要确保最终用户验证了请求。 这对原始请求很有效。 但是,在刷新方案中,如果id_token过期,“其他服务”没有方法来确认用户。
确定在用户信息端点有相同的信息,但这需要“其他服务”来获取访问令牌。 基于最不重要的原则,访问令牌具有比被转发的id_token更多的特权。
我知道的唯一的其他选项是将id_token复制到另一个JWT并发送它,但这当然是更多的“make work”。
在我看来,如果没有原始请求的范围更改,则不返回id_token是一个问题。