在OIDC中,/ token调用不需要scope = openid吗?

时间:2017-06-09 11:35:51

标签: oauth-2.0 openid-connect oidc

当我发送/token请求,然后发送/authorize Open Id Connect服务器请求时,我知道需要为scope=openid电话设置/authorize。我的问题是,/token来电也需要吗?

OIDC spec中,它没有说明这一点。

  

3.1.3.1。令牌请求

     

客户通过提交授权授权来发出令牌请求   (以授权码的形式)使用的令牌端点   grant_type value authorization_code,如第4.1.3节所述   OAuth 2.0 [RFC6749]。如果客户是机密客户,那么它   必须使用身份验证对令牌端点进行身份验证   为其client_id注册的方法,如第9节所述。

     

客户端使用HTTP将参数发送到令牌端点   POST方法和表单序列化,按照第13.2节描述   在OAuth 2.0 [RFC6749]的4.1.3节中。

如果是这种情况,如果请求是ODIC或OAuth2,/token端点实现如何实现?它是如何知道它是否应该发送id_token

2 个答案:

答案 0 :(得分:1)

令牌请求由客户需要提供的所谓授权完成,通常(在您的情况下)授权代码。授权在特定上下文中发出,授权服务器会跟踪该上下文。

在您的情况下,授权服务器将跟踪代码是在包含“openid”范围的授权请求上发出的事实,并且该范围由用户授予。因此,当代码在令牌端点兑换时,响应中包含id_token

答案 1 :(得分:0)

OpenID Connect Core 1.0 incorporating errata set 1 部分:3.1.2.1。 身份验证请求

  

OpenID Connect使用以下OAuth 2.0请求参数   授权代码流程:

     

范围要求。 OpenID Connect请求必须包含openid范围   值。如果openid范围值不存在,则行为为   完全没有说明。可能存在其他范围值。范围值   使用不被实现理解的应该被忽略。   有关此定义的其他范围值,请参见第5.4节和第11节   说明书

“必须包含openid范围值”,这是OpenID Connect请求的决定因素。

令牌请求中没有任何内容与OAuth 2.0不同。身份验证请求,即First,调用授权端点,scope = openid,返回的授权码是获取访问令牌和ID令牌的授权。如3.1.3.3中所述。成功的令牌响应

在从客户端接收并验证有效且授权的令牌请求后,授权服务器返回包含ID令牌和访问令牌的成功响应。