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

如何将directory extension纳入Azure AD的access token中?

解决Azure AD中Directory Extension未出现在Access Token的问题

按以下步骤排查和修复:

  • 确认扩展的目标对象类型
    创建Directory Extension时,必须将目标对象设置为User(如果是用户属性)。如果目标对象是其他类型(如Group),用户的Access Token中不会包含该属性。可通过Graph API查询扩展定义验证:

    GET https://graph.microsoft.com/v1.0/applicationExtensions/{extension-id}
    

    检查targetObjects字段是否包含User。

  • 验证Token配置的准确性
    在Azure AD应用注册的「Token configuration」中,添加的扩展声明格式必须为extension_<应用ID去除连字符>_<自定义属性名>,且确保勾选了Access token选项(而非仅ID token)。

  • 确认权限已配置并授权
    应用需具备读取用户扩展属性的权限,至少添加User.Read权限,并完成管理员/用户授权:

    1. 在应用注册的「API权限」中添加Microsoft Graph > 委派权限 > User.Read;
    2. 点击「授予管理员同意」(针对租户内所有用户)或引导用户完成授权。
  • 检查用户对象的属性值
    通过Graph API确认目标用户的扩展属性已赋值:

    GET https://graph.microsoft.com/v1.0/users/{user-id}?$select=extension_<应用ID去除连字符>_<属性名>
    

    如果属性值为空,Token中不会返回该声明。

  • 清除Token缓存重新获取
    Access Token可能被客户端缓存,需强制重新获取:

    • 注销当前登录用户后重新登录;
    • 在Token请求中添加prompt=login参数,强制Azure AD返回新Token。
  • 确认Token请求的Scope参数
    请求Access Token时,需指定正确的Scope。如果是调用自定义API,需包含API的Scope(如api://<API应用ID>/access_as_user);如果是调用Microsoft Graph,需包含https://graph.microsoft.com/User.Read等相关Scope。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:05:22