【问题标题】:Dynamics Business 365 Central API and PostmanDynamics Business 365 Central API 和 Postman
【发布时间】:2021-05-19 09:26:47
【问题描述】:

我很感激在我之前有很多人问过这类问题(也许是微软的原因?),但我一直无法找到解决问题的方法从阅读那些。

我正在尝试从 Postman (AAD auth) 调用 Dynamics 365 BC API (v.2.0),并且我已尝试尽可能地遵循描述,尽管它们在某些地方似乎不同步. https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-develop-connect-apps

我要授权和接收令牌的部分工作正常,但需要一些时间才能正确处理,而且我必须使用 Fiddler 才能真正看到错误消息。但是我让它工作了,所以 Postman 现在可以检索令牌并将其存储以供以后使用。

不起作用的部分是对 Dynamics BC API 的实际调用。当我尝试使用检索到的令牌调用 Dynamics BC API 时,我不断收到 401“未授权”、“提供的凭据不正确”错误。

我不知道为什么会这样。可能是应用配置错了,也可能是网址不对,我真的不明白。

我正在尝试调用“https://api.businesscentral.dynamics.com/v2.0/production/api/v2.0”,我认为它应该给我一个可用的 API 列表,但作为如上所述,401。

当我已成功从 Azure 检索令牌时,这可能是什么原因?

更新 1

我正在探索 jwt 令牌并对这部分感到好奇,因为它可能是错误的,除非我误解了描述。它表示令牌的“iss”部分应以“/v2.0”结尾,如果令牌是由 v2.0 端点发出的,而这里似乎不是这种情况(见图)。

我使用的邮递员身份验证网址是:https://login.microsoftonline.com/98...73/oauth2/v2.0/authorize

邮递员访问令牌网址:https://login.microsoftonline.com/98...73/oauth2/v2.0/token

所以这里可能有问题?

更新 2

好的,所以我将 Postman 中的范围更改为与您相同的范围,现在我得到提示,以我创建的名称授予对应用程序的访问权限,这很好。 据我记得,指南文章中没有提到关于范围的内容,而 Postman 需要一个范围,所以我创建了一个并使用了它 - 显然这不正确,应该在该指南文章中更新(微软)。

但是,当我尝试检索可用的 API 时,我仍然收到奇怪的响应。

{
    "error": {
        "code": "Internal_CompanyNotFound",
        "message": "The specified company ID, 98...73, does not exist.  CorrelationId:  434d...235d."
    }
}

更新 3

删除该错误消息,该消息用于尝试检索公司,并且该请求可能有问题。

对可用 API 的请求现在有效 - 似乎整个问题都与指南文章未涵盖的所需范围有关。

感谢卡尔的帮助! :)

更新 4

不过还是有些奇怪。如果我尝试指南文章中提到的请求以获取公司“端点/公司”,我会按预期收到 CRONUS 公司的回复,但如果我尝试调用“端点/公司(cronus-company-id)/客户” " 为 CRONUS 获取客户,然后我得到 401 "Unauthorized", "The credentials provided are wrong"。如果我尝试获取 CRONUS 的详细信息,也会发生同样的情况。 我不明白为什么,因为令牌刚刚被证明有效......

【问题讨论】:

  • 使用jwt.ms 解析您的访问令牌并提供屏幕截图。
  • 嗯,我觉得这样做不太舒服。
  • 您有兴趣查看已解析对象的哪些部分?
  • 我想看看aud 索赔。
  • Carl,如果你现在想弄清楚我的问题是什么,你现在可以停下来了。事实证明,无论是谁创建了我对这个测试 BC 的帐户访问权限,都没有给我所需的权限来做我想做的事情。它现在已经修复,现在可以工作了。所以感谢您迄今为止的所有帮助:)

标签: azure-active-directory postman dynamics-365 dynamics-business-central


【解决方案1】:

显然,您的令牌是错误的,并且您的 scope 设置不正确。你可以根据我的配置来配置你的邮递员。范围应设置为:https://api.businesscentral.dynamics.com/.default

解析令牌:

【讨论】:

  • 你知道是什么导致了这个 Carl 吗?请参阅我的更新 4。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-23
  • 2021-11-22
  • 1970-01-01
  • 1970-01-01
  • 2020-05-28
相关资源
最近更新 更多