Microsoft Fabric中非管理员用户Salesforce OAuth失败(OAUTH_APPROVAL_ERROR_GENERIC)
Salesforce OAuth 连接Microsoft Fabric Dataflow Gen2问题解答
核心结论
Fabric Dataflow Gen2的Salesforce Object连接器在处理需要多因素认证(MFA/OTP)的非管理员用户OAuth授权流程时,确实存在兼容性问题,会触发OAUTH_APPROVAL_ERROR_GENERIC错误;未触发MFA时流程正常,说明问题出在MFA触发后的授权回调环节。
解决方案(无需禁用全局安全功能或授予管理员权限)
1. 针对Connected App豁免MFA要求
在Salesforce中调整Connected App的OAuth策略,仅对该App豁免MFA(不影响用户其他场景的MFA要求):
- 进入Setup → 应用程序 → 已连接的应用程序 → 管理已连接的应用程序 → 选择你的Connected App
- 进入「OAuth 策略」页面,找到「已连接应用的MFA」选项,设置为**「仅针对高风险会话要求MFA」**,或直接为该App配置MFA豁免(若Salesforce版本支持)
- 保存设置后,非管理员用户授权该App时将不会触发OTP,OAuth流程可正常完成
2. 调整会话安全设置以优化授权流程
若需要保留MFA,可调整Salesforce的会话安全规则,确保授权Connected App时的会话被识别为可信:
- 进入Setup → 安全 → 会话设置
- 找到「会话安全级别」,为非管理员用户的Profile配置「可信会话」规则,将该Connected App的回调域名加入可信列表
- 开启「为刷新令牌流放宽IP限制」选项,确保授权后的令牌刷新流程不受IP或MFA限制
3. 补充完整OAuth范围
检查并补充Connected App的OAuth范围,确保包含openid(MFA授权流程可能依赖该范围):
- 在Connected App的「OAuth 范围」中添加
openid,保留原有的api、refresh_token范围 - 保存后重新授权测试
已知限制
- Microsoft Fabric的Salesforce Object连接器当前对Salesforce的MFA授权流程支持不完善,非管理员用户触发MFA时,回调环节无法正确传递授权会话信息,导致通用授权错误
- 该问题仅影响非管理员用户,管理员用户因拥有更高的会话权限,MFA触发后的流程可正常完成
内容的提问来源于stack exchange,提问作者Suraj Negi
相关产品推荐
相关产品推荐

