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

Azure AD/Entra ID:如何在访问令牌中获取应用名称

解决Azure Entra ID客户端凭据流令牌中添加应用名称的问题

你用客户端凭据流实现后台应用认证的代码是没问题的,但要在令牌里拿到应用名称,得注意以下几点:

为什么之前的尝试无效

  • upn是用户主体名称,客户端凭据流是应用对应用的无用户认证场景,所以这个声明根本不会被包含在令牌里,加了也白加。
  • 直接加name可选声明保存失败,是因为name是用户相关的声明,只适用于有用户上下文的认证流程(比如授权码流),客户端凭据流不支持这个声明,自然无法保存配置。

正确的配置方法:添加app_displayname可选声明

要在客户端凭据流的access token里拿到应用名称,需要添加专门的应用级可选声明app_displayname,步骤如下:

  1. 登录Azure门户,找到你的客户端应用注册
  2. 进入「令牌配置」页面
  3. 点击「添加可选声明」
  4. 声明类型选择「访问令牌」,然后在列表里找到app_displayname并勾选,点击「添加」
  5. 保存配置后,重新获取令牌,就能在令牌的声明里看到app_displayname字段,对应的值就是你的应用名称

替代方案:通过Graph API获取应用名称

如果不想修改令牌配置,也可以拿到令牌里的appid后,调用Microsoft Graph API获取应用的显示名称:

  • 调用GET /servicePrincipals/{appid}(需要Application.Read.All或Directory.Read.All权限)
  • 响应里的displayName字段就是应用名称

你可以根据自己的场景选择合适的方式,优先推荐第一种直接在令牌里获取的方法,减少额外的API调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 22:08:41