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

如何让Entra外部租户的客户账户访问内部租户Web API?

解决外部客户账户访问内部租户Web API的问题

问题原因

AADSTS500207错误是因为Entra External ID for Customers的客户账户属于专属租户的外部用户类型,默认无法直接访问其他租户(内部租户A)的资源,必须显式配置跨租户信任关系。

解决方案步骤

1. 在内部租户A中配置对外部租户B的信任

  • 登录租户A的Entra管理门户,进入企业应用程序,点击新建应用,选择从库中添加,搜索外部租户B中SPA应用的名称,将该应用添加到租户A的企业应用列表。
  • 或者直接进入租户A的Web API应用注册页面,在已授权的客户端应用中,添加租户B的SPA应用的clientId,并勾选对应的API权限范围。

2. 配置租户A的跨租户访问规则

  • 在租户A的Entra门户中,进入跨租户访问设置 -> 组织设置,添加外部租户B的租户ID,将其访问权限设置为允许访问。
  • 确认针对用户和应用的访问规则中,没有阻止来自租户B的客户类型账户访问。

3. 完善应用权限配置

  • 在租户B的SPA应用注册页面,进入API权限,点击添加权限,选择我的组织使用的API,搜索内部租户A的Web API,添加所需权限,并完成管理员同意(如果API要求管理员级别的同意)。
  • 确认租户A的Web API应用注册的signInAudience已设置为AzureADandPersonalMicrosoftAccount,且公开API中已正确定义权限范围。

4. 调整MSAL调用逻辑

  • 保持MSAL的authority为租户B的CIAM地址(https://xxxx.ciamlogin.com),确保外部客户能正常登录。
  • 调用acquireTokenSilent时,指定租户A Web API的完整权限范围,示例代码:
    acquireTokenSilent({
      scopes: ["api://<租户A Web API的clientId>/<权限范围名称>"],
      account: currentAccount
    })
    

关键注意事项

  • 不能切换到organizations或common权威,因为这两个权威仅支持工作/学校账户或个人Microsoft账户,无法兼容Entra External ID的客户账户登录。
  • 所有跨租户的权限配置必须完成管理员同意,否则用户端会出现权限不足的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 05:49:56