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

使用ADF通过服务主体认证从Dataverse REST API取数遇问题求助

问题解决方法

解决ADF复制数据活动的认证与路径问题

针对你遇到的两种错误,正确配置方式如下:

  1. 设置正确的REST链接服务Base URL
    将链接服务的Base URL设为Dataverse根地址:https://<org-url>.crm.dynamics.com,不要添加/.default后缀。

  2. 配置服务主体认证的作用域
    在链接服务的服务主体认证设置中,找到**作用域(Scope)**字段,填写:https://<org-url>.crm.dynamics.com/.default。这是关键步骤——ADF默认不会自动添加该作用域,而Dataverse认证必须指定此作用域才能获取有效令牌。

  3. 验证服务主体权限
    确保你的服务主体已在Dataverse中被授予足够权限(比如系统管理员角色,或目标表的读取权限),否则即便认证通过也会出现权限不足的错误。

  4. 配置复制活动的相对路径
    在复制数据活动的源设置里,相对路径填写:/api/data/v9.2/<table>,最终请求地址会自动拼接为正确的https://<org-url>.crm.dynamics.com/api/data/v9.2/<table>。

为什么获取令牌需要/.default部分?

  • /.default是Azure AD定义的静态权限作用域,代表该服务主体在目标资源(此处为Dataverse)上被管理员授予的所有权限集合。
  • Dataverse的Web API依赖Azure AD的OAuth 2.0认证机制,服务主体必须指定这个作用域,才能让Azure AD生成包含对应Dataverse权限的访问令牌。
  • 你的Python代码中credential.get_token(BASE_URL + '/.default')就是显式指定了该作用域,因此能拿到有效令牌;而ADF默认若不手动设置作用域,会直接用Base URL作为作用域请求令牌,不符合Dataverse的认证要求,因此出现401错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 00:12:40