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

如何为Azure AD颁发的JWT访问令牌添加自定义声明

在Azure AD的Access Token中添加自定义声明

核心前提说明

你的需求中,aud字段指向的BackendSystem是令牌的受众,因此必须在BackendSystem对应的Azure AD应用注册中配置自定义声明,而非客户端myApplication的注册——Azure AD会针对受众应用的配置来生成对应的access token。

方法1:通过Azure门户添加固定值自定义声明(静态值场景)

这是最直观的方式,适合添加固定值如abc-123:

  • 登录Azure门户,进入Azure Active Directory → 应用注册,找到BackendSystem对应的应用(即aud值abc关联的应用)。
  • 左侧菜单选择令牌配置,点击添加可选声明。
  • 在弹出窗口中选择Access令牌类型,点击添加自定义声明。
  • 填写配置项:
    • 声明名称:Example
    • 源:选择无(因为是固定值,无需从用户/目录属性获取)
    • 声明值:abc-123
    • 勾选在access令牌中包含此声明,点击添加。
  • 保存配置后,让myApplication重新获取access token,解码后即可看到Example声明。

方法2:通过应用程序清单配置(批量/自动化场景)

如果需要批量操作或通过脚本配置,直接修改应用清单:

  1. 在BackendSystem的应用注册页面,切换到清单标签页。
  2. 找到或添加optionalClaims字段,在accessToken数组中加入自定义声明配置:
"optionalClaims": {
  "accessToken": [
    {
      "name": "Example",
      "source": null,
      "essential": false,
      "additionalProperties": []
    }
  ]
}
  1. 注意:清单配置仅声明要添加的字段,固定值仍需回到令牌配置界面补充,或结合扩展属性实现动态值。

方法3:使用扩展属性添加动态自定义声明(动态值场景)

如果自定义声明值需要从用户/应用属性动态获取:

  1. 通过PowerShell或Microsoft Graph API为用户/应用注册扩展属性(例如存储用户的业务部门信息)。
  2. 在BackendSystem的令牌配置中添加自定义声明时,源选择用户或应用,并指定对应的扩展属性作为值来源。
  3. 后续用户认证时,Azure AD会自动将扩展属性的值填入Example声明。

注意事项

  • 修改配置后,必须重新获取access token(旧令牌不会自动更新声明)。
  • 自定义声明名称需符合JWT规范,避免特殊字符。
  • 多租户场景下,需确保配置在目标租户的应用注册中生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 23:05:00