在OpenID Connect的混合流程中,如果您可以请求access_token,那么'code'参数的目的是什么?

时间:2017-11-06 16:05:08

标签: openid-connect identityserver4

根据我对OpenID Connect和OAuth 2中的授权代码流的理解,从授权端点返回到依赖方的代码参数应该在后续的access_token请求中进行交换。但是,在混合流程中,您可以请求从授权端点返回代码,access_token和id_token。那么,如果您已经拥有access_token,为什么还需要代码参数?

1 个答案:

答案 0 :(得分:1)

我至少可以想到两个原因,两者都与客户端能够对令牌端点进行身份验证有关,而不是授权端点:

  • 您通常只能从令牌端点接收refresh_token,而不是授权端点。因此,如果您需要,那么您首先要交换代码。
  • 提供者可以选择(或被配置)返回从授权端点返回的ID令牌中设置的较少或最小声明,以及来自令牌端点或通过UserInfo端点的ID令牌中的进一步信息。我不认为建议直接从授权终端发送敏感声明。