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

OBO流生成的Bearer Token中出现Application Roles的疑问

OBO流令牌包含用户角色的原因解析
  • 你对文档的理解存在部分偏差:MS Learn提到的“角色仅关联用户主体而非代理应用”,意思是中间服务(代理应用)不需要被分配后端API的Application Roles,但用户本身如果被分配了后端API的Application Roles,这些角色会被包含在OBO生成的访问令牌里。因为OBO流的核心是以用户的身份和权限去调用后端API,所以令牌会携带用户的所有相关权限信息,包括用户被分配的角色。

  • OBO令牌的权限逻辑:当你通过OBO流换取后端API的访问令牌时,Entra ID会结合两个维度的权限:

    1. 中间服务拥有的委托权限(即你在Entra ID中给中间服务配置的、访问后端API的Delegated类型权限)
    2. 当前用户自身的权限属性(包括用户被分配的后端API的Application Roles)
      最终生成的令牌会同时包含这两部分信息,确保后端API能基于用户的角色做授权判断。
  • 托管标识无角色不影响的原因:中间服务的托管标识只需要具备调用后端API的委托权限即可,不需要被分配任何Application Roles——因为角色是绑定到用户主体的,而非代理服务。你看到的Admin角色,本质是当前请求对应的用户被分配的后端API角色,并非中间服务的角色。

  • 验证方法:可以用jwt.ms解码这个Bearer Token,查看oid(对象ID)或sub(主体ID)字段,这个ID应该对应用户的Entra ID对象ID,而非中间服务托管标识的ID,以此确认角色属于用户而非服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 20:32:11