Azure多租户ADB2C:如何让其他租户客户端访问目标API
跨租户Azure AD B2C API访问配置方案
1. 确认租户A的API多租户配置生效
除了Manifest中signInAudience设为AzureADMultipleOrgs,还要在API应用注册的概述页面,把「支持的账户类型」设置为「任何组织目录中的账户」——仅修改Manifest可能存在UI与配置不同步的情况,需确保UI层面配置一致。
2. 手动在租户B/C的客户端应用中添加API权限
跨租户API不会自动出现在权限列表中,需手动指定API的应用ID URI:
- 进入租户B/C的React客户端应用注册,切换到「API权限」页面
- 点击「添加权限」→选择「我的API」→点击「搜索API」
- 输入租户A中API的应用ID URI(即你配置的
https://MyMachine.onmicrosoft.com/api/xxx),找到目标API后选择Core.API.All范围 - 添加完成后,点击「授予管理员同意」(委托权限需租户B/C管理员操作,应用权限同理)
3. 验证租户A的API范围配置
- 进入租户A的API应用「公开API」页面,确认
Core.API.All范围状态为「已启用」,范围名称、受众URI完全匹配配置值 - 检查范围的「谁能同意」设置:若允许其他租户的用户/管理员授权,需设为「管理员和用户」;若仅允许管理员,客户端所在租户的管理员必须先完成同意操作
4. 修正授权请求参数
确保React客户端发起的授权请求中参数正确:
scope参数需包含完整范围值:https://MyMachine.onmicrosoft.com/api/xxx/Core.API.Alltenant参数明确指定租户A的ID或域名(ADB2C场景不建议使用common,避免混淆租户上下文)
5. 排查租户访问限制
虽然所有租户拥有相同Owner,但Azure AD租户默认隔离,需确认:
- 租户B/C未配置限制外部API访问的租户级策略
- 租户A的API应用未设置IP限制、条件访问规则等阻止跨租户请求的配置
内容的提问来源于stack exchange,提问作者K.Z
相关产品推荐
相关产品推荐

