You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用user_impersonation权限访问D365 Business Central遇权限问题

Teams机器人访问Business Central时令牌缺失user_impersonation权限的解决方案

1. 确认Azure AD应用权限配置

  • 检查机器人对应的Azure AD应用注册,确保已添加Business Central委托权限user_impersonation,且完成租户管理员同意(个人微软账户无需此步骤)。权限必须绑定到机器人的应用注册,而非其他关联应用。
  • 在「API权限」页面验证权限状态,确认user_impersonation权限显示为「已授予[租户名称]管理员同意」。

2. 修正令牌请求的范围参数

你当前获取的令牌仅包含Graph权限,需在请求时指定Business Central的范围:

  • 使用@azure/msal-node(yo Teams默认依赖)获取令牌时,调整scopes参数:
    // 仅请求Business Central权限
    const scopes = ["https://api.businesscentral.dynamics.com/user_impersonation"];
    // 同时请求Graph用户信息权限+Business Central权限
    const scopes = ["User.Read", "https://api.businesscentral.dynamics.com/user_impersonation"];
    
  • 若通过Teams OAuth流程获取令牌,需在授权请求的scope参数中包含上述Business Central范围。

3. 检查Teams应用配置

  • 打开manifest.json,确认webApplicationInfo中的resource字段设置为https://api.businesscentral.dynamics.com,确保授权流程指向正确的资源。

4. 验证令牌内容

获取令牌后,用jwt.ms解析令牌,查看scp字段是否包含user_impersonation,确认权限已正确注入令牌。

内容的提问来源于stack exchange,提问作者Sigar Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 11:28:26