Dynamics Business 365 Central API 和 Postman

问题描述 投票:0回答:2

我确实很欣赏这样一个事实:在我之前有很多人询问过此类问题(也许微软是有原因的?),但我无法从阅读中找到解决我的问题的方法那些。

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

我要授权和接收令牌的部分工作正常,尽管需要一些时间才能正确完成,并且我必须使用 Fiddler 来实际查看错误消息。但我让它工作了,所以邮递员现在可以检索令牌并将其存储以供以后使用。

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

我不知道为什么会发生这种情况。也许应用程序配置错误或者URL不正确,我真的不明白。

我正在尝试调用“https://api.businesscentral.dynamics.com/v2.0/Production/api/v2.0”,我相信它应该为我提供可用的 API 列表,但如上所述,401。

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

更新1

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

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

Postman 访问令牌 URL:https://login.microsoftonline.com/98...73/oauth2/v2.0/token

那么也许这里有问题?

更新2

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

但是,当我尝试检索可用的 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“未经授权”、“提供的凭据不正确”。如果我尝试获取 CRONUS 的详细信息,也会发生同样的情况。 但我不明白为什么,因为令牌刚刚被证明可以工作......

azure-active-directory postman dynamics-365 dynamics-business-central
2个回答
1
投票

显然,您的令牌是错误的,并且您的

scope
设置不正确。你可以按照我的配置来配置你的postman。范围应设置为:
https://api.businesscentral.dynamics.com/.default

解析token:


0
投票

我遇到了此错误,并将其追溯到 Azure 应用程序注册设置中的“重定向 URI”。它被设置为“https://localhost:8080/login”,我认为这可能适合 BC 的本地安装。我正在云版本中工作。我将其更改为“https://businesscentral.dynamics.com/”,这为我解决了问题

© www.soinside.com 2019 - 2024. All rights reserved.