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

D365 API身份验证是否仅能使用AAD/OAuth?非交互自动化访问替代方案咨询

Dynamics 365 非交互式OData API对接的可用身份验证方案

你从本地NAV迁移到Dynamics 365 Business Central(BC)后走OData端点直连的需求是完全可实现的。你之前遇到的“OAuth必须人工交互”“非交互方案只有即将弃用的Basic Auth”的认知偏差,主要是官方文档默认优先展示面向终端用户的对接场景,没有覆盖纯自动化后台同步的需求,实际有3类可落地的适配方案:

  • 官方长期支持的非交互式OAuth(服务对服务授权模式)
    你之前看到的需要人工跳转登录页的OAuth,只是OAuth框架下的「授权码模式」,面向终端用户使用场景;但AAD同时支持**客户端凭证授权(Client Credentials Grant)**的非交互模式,全程没有任何人工介入环节:
    1. 在AAD中注册一个专属的服务应用,给这个应用分配对应BC环境的OData端点读写权限
    2. 用应用的客户端ID+客户端密钥/自签名证书直接申请访问令牌
    3. 带令牌调用OData接口即可完成认证
      这里需要澄清一个常见误解:文档里提到的“Connect App配置”只是这个模式下给应用分配BC操作权限的可视化入口,并不是要求你做一个嵌入D365界面的交互式应用,完全和你想直接后台调接口的需求兼容。这个模式是微软明确承诺长期维护的对接方式,不存在即将弃用的风险。
  • BC专属Web服务访问密钥(非弃用的Basic Auth变种)
    你之前看到的即将被弃用的Basic Auth,特指直接使用用户日常登录的账号密码做接口认证的模式;而BC内置的每个独立账号都可以生成单独的、仅用于Web服务访问的专用密钥,这是一套独立的认证机制,这类专用密钥目前不在官方的弃用清单内,也没有明确的下线时间:
    1. 创建一个仅用于自动化同步的专属服务账号,给这个账号分配对应要操作的表/Web服务端点的读写权限
    2. 在账号设置中生成独立的Web服务访问密钥(这个密钥和用户日常登录的密码完全隔离,可以单独吊销,不影响账号的日常登录功能)
    3. 调用OData接口时,用「服务账号+专用密钥」拼接成Basic Auth请求头即可完成认证,全程无人工交互,也不需要提前做AAD配置。
  • 域环境下的Windows集成认证
    如果迁移后的BC是本地自托管部署、且你的同步程序运行在企业内网域环境中,还可以直接用程序运行时关联的域账号身份自动完成认证,不需要额外存储任何密钥或做AAD配置,认证流程完全对上层业务透明,适配现有自动化流程的改造成本最低。

选型参考:

  • 如果IT迁移后用的是SaaS版BC,优先选客户端凭证授权的非交互OAuth模式,这是最稳定、长期可用的方案,不会遇到后续版本升级导致的认证失效问题
  • 如果处于迁移过渡期、需要快速跑通同步逻辑,可以先用专属服务账号+Web服务访问密钥的方式对接,减少前期配置成本
  • 不管选哪种方案,都不要直接用用户日常登录密码做全量Basic Auth认证,这是官方明确标记的即将淘汰的方式,后续版本升级会直接阻断这类请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 21:15:00