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

如何为多租户应用使用Azure服务主体?跨租户访问方案咨询

跨Azure租户安全访问的可行方案

核心场景回顾

我方租户A的应用需要通过Service Principal(SP)访问多个合作方租户B的特定资源,现有通过租户A的appId在租户B创建SP的方式存在越权风险——合作方若更换其他租户ID,可能访问非授权的租户资源。

方案一:限制范围的多租户应用 + 最小权限RBAC

  1. 配置多租户应用的租户白名单
    将租户A中的应用注册设置为仅允许指定租户访问,把所有合作方的租户B ID添加到允许列表中。这样,仅这些租户能为该应用创建对应的SP,杜绝随意访问其他租户的可能。
  2. 在租户B中创建SP并分配最小权限
    仍使用命令创建SP:
    az ad sp create --id <租户A应用的appId>
    
    然后为该SP分配仅能访问目标特定资源的RBAC角色(比如Reader或自定义角色),遵循最小权限原则,避免过度授权。
  3. 认证时指定目标租户ID
    租户A的SP获取访问令牌时,必须明确指定租户B的ID,确保令牌仅对该租户的资源有效,从认证层面限制访问范围。

方案二:为每个租户创建独立的带证书认证的SP

  1. 每个合作方租户单独创建SP
    针对每个租户B,单独在该租户内创建Service Principal,使用客户端证书作为认证凭证,证书由我方统一管理。
  2. 独立权限分配
    每个SP仅被分配对应租户B内特定资源的权限,完全隔离不同合作方的访问范围,即使某一凭证泄露,也只会影响单个租户的资源。
  3. 管理注意事项
    该方案隔离性更强,但需要维护多套证书和SP,管理成本较高,适合合作方数量较少或对安全隔离要求极高的场景。

方案选择建议

  • 若合作方数量多、希望降低管理成本:优先选择方案一,配合租户白名单和最小权限RBAC,既能满足跨租户访问需求,又能有效控制越权风险。
  • 若合作方数量少、对安全隔离要求极高:选择方案二,通过独立凭证和权限实现完全隔离。

通用安全建议

  • 启用Azure AD的登录和访问日志监控,实时跟踪SP的访问行为,及时发现异常操作。
  • 禁止用户自助同意应用权限,必须由租户B的管理员预先创建SP并分配权限,确保访问授权可控。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:01:17