如何生成有效的access_token与Business Central交互

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

我正在尝试创建一个与 Microsoft Business Central 交互的自动化系统。为此,我创建了一个 Azure 应用程序(守护进程)。

此应用已获得管理员授予在 BC 上读/写的权限,例如 Financials.ReadWrite.All 和 API.ReadWrite.All 等权限,并已获得同意。

生成访问令牌时,我可以列出环境和公司,但无法列出项目https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/api-reference/v2。 0/api/dynamics_item_get

我还需要什么其他许可?

这是我在尝试列出时遇到的错误:

{
  "error": {
    "code":"Internal_ServerError",
    "message":"Sorry, the current permissions prevented the action.(Page APIV2 - Items Execute: _Exclude_APIV2_)"
  }
}

如果我从这里获取令牌,并使用我的用户,它就可以工作:https://developer.microsoft.com/en-us/graph/graph-explorer

azure azure-ad-msal erp dynamics-business-central
3个回答
0
投票

您需要在 Business Central 中注册 Azure 应用程序并为其分配所需的权限。

您可以通过 Azure Active Directory 应用程序页面执行此操作。


0
投票

如果您在 oauth 应用程序中选择 app_access 权限,您还需要在业务中心内授予权限,正如 Ramon 已经解释的那样

如果您不分配该权限,并已在 oauth 应用程序内授予同意,则该应用程序可以访问该租户内的所有环境


0
投票

这是一个棘手的问题,因为如果您遵循所有基本文档来使用机密(或证书)设置应用程序注册,在 Entra 中创建权利,将应用程序添加到 Business Central 中的“Entra 应用程序”部分,并为其提供 D365 自动化和 D365 扩展 MGT 用户组,您可以生成有效的令牌来获取您的环境和公司,但是对于任何更深入的 API 调用,您都会遇到上述错误。

我还可以通过添加 D365 总线完全访问用户权限集(针对正确的公司)来解决该问题,以便能够执行其他所需的操作。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.