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

Azure身份验证:无法添加On-premises SAM账户名令牌声明的问题

在Azure AD令牌中添加“On-premises SAM Account Name”声明的解决方案

一、当前配置的问题分析

你之前的配置存在两处关键错误:

  1. 可选声明的source字段未指定为user:onPremisesSamAccountName是Azure AD用户对象的内置同步属性,必须明确指定source: "user",Azure AD才会从用户对象中提取该属性。
  2. 错误尝试使用extension_xxxx格式:该格式仅适用于自定义扩展属性,而onPremisesSamAccountName是AD同步过来的内置属性,无需此格式。

acceptMappedClaims设为true的操作是正确的,但对于内置属性来说并非必须,保留也不会影响配置效果。

二、正确的配置步骤

  1. 确认属性同步有效性
    让管理员在Azure AD门户中检查目标用户的属性详情,确认onPremisesSamAccountName字段已存在且有值(该属性会显示在用户“属性”面板的“目录同步属性”区域)。

  2. 修正应用Manifest的可选声明配置
    在应用Manifest中更新optionalClaims节点,针对你需要的令牌类型(accessToken或idToken)添加正确配置:

    "optionalClaims": {
        "accessToken": [
            {
                "name": "onPremisesSamAccountName",
                "source": "user",
                "essential": false,
                "additionalProperties": []
            }
        ],
        // 如果需要在ID令牌中也包含该声明,添加以下配置
        "idToken": [
            {
                "name": "onPremisesSamAccountName",
                "source": "user",
                "essential": false,
                "additionalProperties": []
            }
        ]
    }
    
  3. 验证令牌内容
    通过你的Angular应用获取令牌后,使用jwt.ms工具解析令牌,检查是否包含onPremisesSamAccountName声明。如果仍未出现,可让管理员检查应用的API权限是否包含User.Read(默认权限通常已包含,若权限不足需补充)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 00:17:08