SSIS通过TDS端点连接Dynamics CRM Online的故障解决方案问询
可行解决方案
方案1:使用Azure AD服务主体验证(优先推荐)
这一方案可以完全规避MFA、设备域加入的条件访问限制,适合无人值守的SSIS任务场景:
- 在Azure Portal中注册新的应用,生成客户端ID和客户端密钥,为该应用配置Dynamics 365的应用权限(而非委托权限),并提交管理员权限同意
- 进入Power Platform管理中心,将该应用注册为对应Dynamics 365环境的应用用户,为其分配对应的数据访问权限(如TDS查询所需的只读权限、系统定制权限等)
- SSIS中创建ADO.NET连接时,使用如下格式的连接字符串:
Server=<你的组织域名>.crm3.dynamics.com,5558;Authentication=Active Directory Service Principal;UID=<应用客户端ID>;PWD=<应用客户端密钥>;Encrypt=Yes
方案2:配置专用账号的条件访问例外
如果你们的IT策略允许针对特殊场景做条件访问豁免,可采用该方案:
- 申请一个仅用于SSIS集成的专用AAD账号,在Azure AD条件访问策略中为该账号添加两项豁免:豁免MFA要求、豁免设备域加入要求
- 将该账号的密码设置为永不过期,避免定期修改密码导致SSIS包运行中断
- 在Dynamics 365环境中为该账号分配所需的数据访问权限,之后即可使用AAD-Password验证方式正常连接TDS端点
注意事项
- 确保SSIS运行环境的.NET Framework版本不低于4.7.2,低版本不支持服务主体身份验证
- 优先使用5558端口连接TDS端点,避免1433端口被本地或企业防火墙拦截
- 服务主体方案的安全性远高于专用账号方案,不会因为人员变动、密码泄露产生额外安全风险
内容的提问来源于stack exchange,提问作者Vic
相关产品推荐
相关产品推荐

