Azure active directory Azure AD v2.0的OAuth:Azure AD v2.0 id_令牌中缺少at_哈希声明

Azure active directory Azure AD v2.0的OAuth:Azure AD v2.0 id_令牌中缺少at_哈希声明,azure-active-directory,Azure Active Directory,根据,Azure AD v2.0 ID令牌应包含访问令牌哈希,即当ID令牌与访问令牌一起发出时,at_哈希声明 但是,ID标记中似乎缺少at_hash声明。调用Azure AD访问令牌请求v2.0端点后https://login.microsoftonline.com/{my_tenant}/oauth2/v2.0/token,Azure返回的id_token在_hash声明中不包含,尽管发出了访问令牌 Azure AD v2.0返回的响应正文示例: "token_type": "Beare

根据,Azure AD v2.0 ID令牌应包含访问令牌哈希,即当ID令牌与访问令牌一起发出时,
at_哈希
声明

但是,ID标记中似乎缺少
at_hash
声明。调用Azure AD访问令牌请求v2.0端点后
https://login.microsoftonline.com/{my_tenant}/oauth2/v2.0/token
,Azure返回的id_token在_hash声明中不包含
,尽管发出了访问令牌

Azure AD v2.0返回的响应正文示例:

  "token_type": "Bearer",
  "scope": "User.Read",
  "expires_in": 3599,
  "ext_expires_in": 0,
  "access_token": "eyJ0eXAiO ...",
  "refresh_token": "OAQABAAAAAAA9kTklh ..."
  "id_token": "eyJ0eXAiOiJKV1QiLC ..."
id_令牌包含以下声明。它不包含
at_hash
声明

  "aud": "... GUID ... ",
  "iss": "https://login.microsoftonline.com/.../v2.0",
  "iat": 1502324474,
  "nbf": 1502324474,
  "exp": 1502328374,
  "aio": "ATQA ... 7liW+Hb",
  "name": "... some name ... ",
  "nonce": "... GUID ...",
  "oid": "... GUID ...",
  "preferred_username": "... some preferred name ...",
  "sub": "KIuLx ... ifCaZUUi3b",
  "tid": "... GUID ...",
  "ver": "2.0"

根据上面的请求,您正在使用授权代码流。似乎这一索赔不是由这一流程发出的。但是,在使用类似于以下隐式流的请求进行请求时,不会发出此声明:

POST: https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
response_type=token+id_token
&client_id={client_id}
&redirect_uri={redirect_uri}
&scope=openid+mail.read
&state=123
&nonce=456

根据:只有当ID令牌与OAuth 2.0访问令牌一起发出时,访问令牌散列才会包含在ID令牌中。由于
at_hash
声明的目的是接收方可以使用它来验证其接收的访问令牌,当使用授权码流返回访问令牌时,是否有任何理由不将
at_hash
包括在索赔中?这仅基于测试,无法找到关于它的官方文档。