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

如何在ADF链接服务中使用无密钥Service Principal配置跨租户认证

跨租户ADF无密钥SP认证的Azure SQL迁移方案

方案1:带联合凭据(Federated Credentials)的服务主体(Service Principal)

这是当前推荐的无密钥跨租户认证方案,通过Azure AD联合身份凭据实现SP的无密钥身份验证:

  • 在租户B创建并配置SP
    登录租户B的Azure门户,创建新服务主体;进入SP的「证书和密码」→「联合凭据」,添加一条新凭据:

    • 凭据类型选「Azure资源」
    • 关联租户A的ADF托管标识(或手动输入MI的issuer和subject值,可通过Azure CLI命令az identity show --id <ADF-MI资源ID> --query "{issuer: issuer, subject: subject}"获取)
    • 设置凭据过期时间
  • 为租户B的SP授予数据访问权限
    在租户A的Azure SQL中创建对应SP的Azure AD登录名:

    CREATE LOGIN [租户B-SP名称] FROM EXTERNAL PROVIDER;
    

    在目标数据库创建用户并分配只读权限:

    CREATE USER [租户B-SP名称] FROM LOGIN [租户B-SP名称];
    ALTER ROLE db_datareader ADD MEMBER [租户B-SP名称];
    

    同样在租户B的Azure SQL中为该SP创建登录和用户,分配db_datawriter等写入权限。

  • 在ADF中配置链接服务
    配置源/目标Azure SQL链接服务时,选择「服务主体」认证方式,输入租户B的SP客户端ID和租户ID;认证类型选「联合凭据」,无需输入客户端密钥或证书,ADF会通过自身托管标识与SP的联合凭据完成身份验证。

方案2:托管标识作为外部来宾用户(Guest User)

若无法使用联合凭据,可尝试将租户A的ADF托管标识添加为租户B的外部来宾用户:

  • 在租户B中添加ADF MI为来宾用户
    登录租户B的Azure AD,进入「用户」→「新建来宾用户」,输入租户A的ADF MI对象ID或用户主体名称;为该来宾用户分配Azure SQL访问权限(可通过Azure AD角色或SQL登录/用户配置)。

  • 配置ADF链接服务
    配置租户B的Azure SQL链接服务时,选择「托管标识」认证方式,ADF的MI会以租户B的来宾用户身份完成认证。

注意:此方案要求租户B的Azure AD允许外部来宾用户访问,部分场景下权限限制较多,稳定性不如联合凭据方案。

关键注意事项

  • 联合凭据方案需要Azure AD Premium P1/P2许可证(多租户场景)。
  • 确保跨租户Azure AD信任关系配置正确,租户A的ADF MI可被租户B的Azure AD识别。
  • 测试链接服务时,需验证SP/MI的权限覆盖数据读取、写入操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 23:42:38