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

Azure多租户场景下客户端凭证流返回的Bearer Token无应用角色问题

Azure跨租户客户端凭证流Token缺失应用角色的解决方法

问题场景

  • 在租户A创建Web API应用注册fake-web-api,添加应用角色fakeAppRole
  • 租户B管理员通过管理员同意链接将该API导入为租户B的企业应用
  • 租户B创建守护应用fake-daemon-app,配置对fake-web-api的fakeAppRole权限并生成客户端密钥
  • 调用API时,客户端凭证流返回的Bearer Token不含roles字段,导致被API拒绝(单租户场景正常)

核心原因

跨租户场景下,管理员完成API权限同意后,应用角色不会自动分配给守护应用,必须手动完成角色分配操作。

解决步骤

  1. 进入租户B的Azure AD企业应用页面
    找到从租户A同步过来的fake-web-api企业应用。

  2. 为守护应用分配应用角色

    • 打开该企业应用的「用户和组」选项
    • 点击「添加用户/组」,在「用户和组」选择器中切换到「应用程序」标签,选中租户B的fake-daemon-app
    • 在「选择角色」列表中勾选fakeAppRole,确认完成分配
  3. 重新获取Token并测试
    使用守护应用的客户端凭证重新请求Token,此时Token的roles字段会包含fakeAppRole,即可正常调用租户A的Web API。

额外检查项

  • 请求Token时的scope必须指定为api://{租户A的fake-web-api客户端ID}/.default,确保跨租户环境下Azure AD能正确识别目标API
  • 确认租户A中fake-web-api的应用角色定义里,allowedMemberTypes包含Application类型(只有允许应用主体的角色才会出现在客户端凭证流的Token中)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 18:10:28