我正在使用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。
当您的应用收到ID令牌时,它必须验证签名以证明令牌的真实性,并验证令牌中的一些声明以证明其有效性。
但是,由于我的应用程序根据自己的HTTPS帖子收到了ID令牌给Microsoft服务器,因此使用ID令牌而不验证它是否安全?
答案 0 :(得分:0)
根据你所描述的,
response_type=code id_token
)如果您不希望授权请求中包含ID令牌,则可以使用其他Authorization code flow或Implicit flow
这些流类型是从 response_type 参数中选择的,而不是从声明中选择的。
对于授权代码流程,
<强> response_type=code
强>
对于隐式流程,
response_type=id_token token
或 response_type=id_token
请注意,隐式流不会产生访问令牌,适用于无法保护刷新令牌的JavaScript或类似客户端。
从令牌端点或授权端点(基于隐式流)获取id令牌后,您只需验证一次。