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

Azure AD向JWT令牌添加samAccountName自定义声明配置问题咨询

问题根因说明

你不需要在「Optional claims」列表中找到samAccountName:Azure Portal的可选声明预置列表只会展示微软官方内置的可选声明项,不会同步你通过PowerShell自定义的Claims Mapping Policy规则,页面上的警告标识是正常提示,仅代表当前应用绑定了自定义声明映射策略,不属于配置错误。

你当前配置存在明确错误,同时遗漏了几项必要校验步骤,具体如下:

现有配置错误
  1. ClaimsMappingPolicy JSON语法非法
    你提供的策略定义中,ClaimsSchema数组内的声明对象末尾多了一个冗余逗号,Azure AD对策略定义的JSON语法校验非常严格,这类语法问题会导致策略虽然创建成功,但运行时被静默忽略,完全不生效。

错误片段示例:

"JwtClaimType": "samAccountName"
}, // 此处冗余逗号属于语法错误
]

遗漏的必要校验与配置
  1. 策略绑定对象校验
    ClaimsMappingPolicy必须绑定到资源服务主体(即你请求Token所要访问的目标应用/API对应的服务主体),如果误将策略绑定到客户端应用的服务主体,映射规则完全不会生效。
    你可以通过以下命令校验当前策略绑定的对象是否正确:
# 将<policy-id>替换为你创建的ClaimsMappingPolicy的Object ID
Get-AzureADPolicyAppliedObject -Id <policy-id>
  1. 应用域所有权校验
    如果你的应用配置了自定义应用ID URI(格式通常为api://your-domain.com/app-id),必须确保URI中使用的域已经在Azure AD租户中完成了所有权验证,未验证域下的应用会被Azure AD直接忽略自定义声明映射规则,即使acceptMappedClaims设为true也无效。

  2. 源属性存在性校验
    onpremisessamaccountname属性只会从本地Active Directory同步到Azure AD,纯云创建的用户、未开启AAD Connect目录同步的租户中,该属性值为空,即使策略配置完全正确,空值属性也不会被注入到Token中。你可以先查询对应用户的属性,确认值存在再做后续验证。

  3. Token请求端点校验
    自定义声明映射规则仅对你自己配置的自定义API/应用生效,如果你请求的是微软官方服务(比如Microsoft Graph、Azure Resource Manager)的Token,映射规则不会执行。


修复与验证步骤
  1. 删除原有错误策略,重新创建语法正确的ClaimsMappingPolicy,参考命令如下:
New-AzureADPolicy -Definition @('{
    "ClaimsMappingPolicy": {
        "Version": 1,
        "IncludeBasicClaimSet": "true",
        "ClaimsSchema": [
            {
                "Source": "user",
                "ID": "onpremisessamaccountname",
                "SamlClaimType": "samaccountname",
                "JwtClaimType": "samAccountName"
            }
        ]
    }
}') -DisplayName "att_ext_samaccountname_even2_prod" -Type "ClaimsMappingPolicy"
  1. 将新创建的策略正确绑定到目标资源的服务主体,移除之前错误的绑定关系。
  2. 再次确认应用清单中acceptMappedClaims属性值为true,保存后未被系统自动回退。
  3. 按照你的业务场景正常发起Token请求,拿到Token后解码查看声明内容,只要配置正确,samAccountName会自动出现在Token中,不需要在Portal可选声明页面手动添加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:54:32