OData 调用 D365FO 时出现 401

401 on OData call to D365FO

我正在尝试进行 OData 调用以检索 D365FO 数据实体。
https://[root_URL]/data/CostGroups
在我的浏览器中登录 D365FO 时,此调用有效。

curl_setopt($curl, CURLOPT_HTTPHEADER, [
    'Accept: application/json',
    'OData-MaxVersion: 4.0',
    'OData-Version: 4.0',
    'Authorization: Bearer ' . $this->accessToken
]);

响应是“401 未经授权”

有谁知道出了什么问题,或者我如何才能找到有关失败的更多信息?我可以在 D365FO 的任何地方查找我的尝试日志吗?

resource 似乎不正确。它应该是实例的基础 URL,没有尾随 '/'。

您的 "aud" 字段是 https://erp.dynamics.com。在这种情况下,它应该是您的 [root URL]。像这样:

当您 post 请求 https://login.microsoftonline.com/[tenant ID]/oauth2/token 时检查您的 resource