Azure AD:需要使用访问令牌验证收到的id_token吗?

时间:2017-11-20 00:24:52

标签: oauth-2.0 azure-active-directory openid-connect

我正在使用Azure AD(使用/oauth2/v2.0/authorize)对这些范围进行授权:

openid email profile https://graph.microsoft.com/user.read

作为回应,我收到了id_token和授权码。我忽略了这个id_token,并使用授权代码获取访问令牌(使用/oauth2/v2.0/token

当我获得访问令牌时,我再次获得id_token。

Microsoft docs州:

  

当您的应用收到ID令牌时,它必须验证签名以证明令牌的真实性,并验证令牌中的一些声明以证明其有效性。

但是,由于我的应用程序根据自己的HTTPS帖子收到了ID令牌给Microsoft服务器,因此使用ID令牌而不验证它是否安全?

1 个答案:

答案 0 :(得分:0)

根据你所描述的,

  1. 您正在使用OpenID Connect
  2. 您正在使用hybrid flow(使用response_type=code id_token
  3. 如果您不希望授权请求中包含ID令牌,则可以使用其他Authorization code flowImplicit flow

    这些流类型是从 response_type 参数中选择的,而不是从声明中选择的。

    对于授权代码流程,

    <强> response_type=code

    对于隐式流程,

    response_type=id_token token response_type=id_token

    请注意,隐式流不会产生访问令牌,适用于无法保护刷新令牌的JavaScript或类似客户端。

    从令牌端点或授权端点(基于隐式流)获取id令牌后,您只需验证一次。