尽管已颁发有效令牌,但仍从 Dynamics 365 取回 401

Getting back 401 from Dynamics 365 despite being issued valid token

我正在尝试使用 JavaScript

重写当前连接到 Dynamics 365 的客户端应用程序
let URL = "https://<company-name>.operations.dynamics.com/data/FinancialDimensionValues?cross-company=true";
let  body = '';
var headers = {'Content-Type':'application/json'};
let response = ai.https.authorizedRequest(URL, 'GET', body, headers);

目前这个 JavaScript 应用程序可以工作并取回 JSON 数据。我正在尝试使用 C# 重写此应用程序。我首先从 Postman 开始,以确保在继续编写 C# 代码之前我已完成所有身份验证步骤。

使用 Postman,我能够使用 "Client Credentials" 流程成功获取 JWT 令牌,我将客户端 ID 和客户端机密传递给访问令牌请求 URL。但是,当尝试访问 Dynamics 365 中的 API 端点时,即使我正确传递了 JWT 访问令牌,我也会收到 HTTP 401。

这是访问令牌请求URL:

https://login.microsoftonline.com/722b0db7-9629-4304-92a0-dfb4a1debe62/oauth2/token?resource=https://<company-domain-here>.dynamics.com

我在想我必须进行正确的身份验证,否则我将无法取回有效的访问令牌。此外,由于 JavaScript 应用程序已经到位,可以正常工作,我假设 Dynamics 365 已正确配置以允许 API 访问。

我想弄清楚的是我在 Postman 中可能做错了什么导致我收到 401?正在工作的 JavaScript 请求与我通过 Postman 发送的请求之间有什么不同?

问题终于解决了。 如前所述,请遵循提到的 documentation

如果遇到401错误,这里是最后一招。

在 postman Under Authorization--> Add authorization data to--> select Request Headers.

现在启动查询,您将获得 200 ok。

Ref 帮助我弄明白的文章。