AADSTS5002710:无效的 JWT 令牌:header 格式错误
AADSTS5002710: Invalid JWT token: header is malformed
我正在尝试在我的客户端 (ReactJS)、Express + Node.js 服务器 (API) 和 Microsoft Graph 之间实现“On-Behalf-Of”流程。
到目前为止,我已经从微软(客户端)请求了一个 accessToken,并向我的 API.
发出了请求
我 运行 进入错误“AADSTS5002710:无效的 JWT 令牌:header 格式错误。”当我尝试从我的 API 向 https://login.microsoftonline.com/tenantID/oauth2/v2.0/token
发出 Axios post 请求时
完整错误:
{
error: 'invalid_request',
error_description: 'AADSTS5002710: Invalid JWT token: header is malformed.\r\n' +
'Trace ID: 068a382b-6f83-40f6-b1b1-7134223f4500\r\n' +
'Correlation ID: f46a2c03-84e8-46b3-b9d6-467174befa0b\r\n' +
'Timestamp: 2021-01-06 16:26:40Z',
error_codes: [ 5002710 ],
timestamp: '2021-01-06 16:26:40Z',
trace_id: '068a382b-6f83-40f6-b1b1-7134223f4500',
correlation_id: 'f46a2c03-84e8-46b3-b9d6-467174befa0b'
}
我请求的body是根据教程“https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow”.
由于 Microsoft 在线服务器,我不断收到上述错误。
我已经用我自己的自定义范围发出了原始(客户端)请求
api://54ee17f...cfe06/Access.Test
我按照教程在 Postman 中使用 On-Behalf-Of 流程。不过效果不错。
我的步骤:
- 给WebAPIAAPI添加WebAPIB的API权限
- 请求 Web API A 以获取访问令牌(下一步的
assertion
)和授权码流
得到
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize
?scope={like api://1108f6-xxxxxxx-9f622/test} openid
&redirect_uri={redirect_uri of Web API A}
&nonce=123
&client_id={client-id of Web API A}
&response_type=id_token token
- 请求 Web API B 以获取 Microsoft Graph 的访问令牌 API
POST
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
&client_id={client_id of Web API B}
&client_secret={client_secret}
&assertion={access token from previous step}
&scope=https://graph.microsoft.com/user.read offline_access
&requested_token_use=on_behalf_of
- 调用 Microsoft Graph API,例如
GET https://graph.microsoft.com/v1.0/users
。
您可以在 https://jwt.io/ 中解码您的访问令牌(断言),并检查 HEADER
。
我正在尝试在我的客户端 (ReactJS)、Express + Node.js 服务器 (API) 和 Microsoft Graph 之间实现“On-Behalf-Of”流程。
到目前为止,我已经从微软(客户端)请求了一个 accessToken,并向我的 API.
发出了请求我 运行 进入错误“AADSTS5002710:无效的 JWT 令牌:header 格式错误。”当我尝试从我的 API 向 https://login.microsoftonline.com/tenantID/oauth2/v2.0/token
完整错误:
{
error: 'invalid_request',
error_description: 'AADSTS5002710: Invalid JWT token: header is malformed.\r\n' +
'Trace ID: 068a382b-6f83-40f6-b1b1-7134223f4500\r\n' +
'Correlation ID: f46a2c03-84e8-46b3-b9d6-467174befa0b\r\n' +
'Timestamp: 2021-01-06 16:26:40Z',
error_codes: [ 5002710 ],
timestamp: '2021-01-06 16:26:40Z',
trace_id: '068a382b-6f83-40f6-b1b1-7134223f4500',
correlation_id: 'f46a2c03-84e8-46b3-b9d6-467174befa0b'
}
我请求的body是根据教程“https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow”.
由于 Microsoft 在线服务器,我不断收到上述错误。
我已经用我自己的自定义范围发出了原始(客户端)请求 api://54ee17f...cfe06/Access.Test
我按照教程在 Postman 中使用 On-Behalf-Of 流程。不过效果不错。
我的步骤:
- 给WebAPIAAPI添加WebAPIB的API权限
- 请求 Web API A 以获取访问令牌(下一步的
assertion
)和授权码流
得到
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize
?scope={like api://1108f6-xxxxxxx-9f622/test} openid
&redirect_uri={redirect_uri of Web API A}
&nonce=123
&client_id={client-id of Web API A}
&response_type=id_token token
- 请求 Web API B 以获取 Microsoft Graph 的访问令牌 API
POST
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
&client_id={client_id of Web API B}
&client_secret={client_secret}
&assertion={access token from previous step}
&scope=https://graph.microsoft.com/user.read offline_access
&requested_token_use=on_behalf_of
- 调用 Microsoft Graph API,例如
GET https://graph.microsoft.com/v1.0/users
。
您可以在 https://jwt.io/ 中解码您的访问令牌(断言),并检查 HEADER
。