1
根据Azure AD documentation,Azure AD v2.0 ID令牌应包含访问令牌哈希,at_hash
声明,当ID令牌为与Access令牌一起发行。Azure AD v2.0中的OAuth:Azure AD v2.0中缺少at_hash声明id_token
但是,似乎at_hash
声明从ID令牌中丢失。在调用Azure AD访问令牌请求v2.0端点https://login.microsoftonline.com/{my_tenant}/oauth2/v2.0/token
后,由Azure返回的id_token不包含at_hash
索赔,尽管发布了访问令牌。响应身体的
实施例通过天青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_token包含在以下权利要求。它不包含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"
根据[文档约“ID令牌权利要求”](https://docs.microsoft.com/en-us/azure:然而,使用类似下面请求隐式请求流时这个要求就发出/ active-directory/develop/active-directory-v2-tokens#令牌类型):只有使用OAuth 2.0访问令牌发布ID令牌时,访问令牌散列才会包含在ID令牌中。 由于'at_hash'声明的目的是接收者可以使用它来验证它接收到的访问令牌,所以当使用授权返回访问令牌时,为什么'at_hash'没有被包含在声明中?代码流? –
这只是基于测试而不能找到有关它的官方文档。 –