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

AzureAD v2令牌无法返回family_name和given_name问题求助

解决Azure AD OIDC令牌无法返回family_name和given_name声明的问题
  • 先确认用户数据完整性:Azure AD只会返回用户个人资料中已填写的字段。先检查Azure AD用户的个人信息页面,确认姓氏(family_name)和名字(given_name)是否已经正确录入——如果用户资料里这两个字段为空,无论怎么配置都不会返回。

  • 修正optionalClaims配置格式:确保应用注册manifest中的optionalClaims格式正确,以下是标准配置示例:

"optionalClaims": {
    "idToken": [
        {
            "name": "family_name",
            "essential": true
        },
        {
            "name": "given_name",
            "essential": true
        }
    ],
    "accessToken": [
        {
            "name": "family_name",
            "essential": true
        },
        {
            "name": "given_name",
            "essential": true
        }
    ]
}

配置完成后保存manifest,等待5-10分钟让配置生效。

  • 纠正scope请求的误区:你不需要将given_name或family_name单独作为scope请求——这些是声明字段,不是scope。保持原有的scope列表openid profile email offline_access即可,profile范围已经包含了用户资料类声明(包括family_name和given_name)。之前的错误提示就是因为把声明字段当成了scope来请求导致的。

  • 确认使用v2.0端点:确保OIDC流程调用的是Azure AD v2.0授权和令牌端点:

    • 授权端点:https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/authorize
    • 令牌端点:https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token
      v1.0端点的声明返回逻辑与v2.0不同,需严格匹配文档要求的端点版本。
  • 验证权限与令牌解析:如果是多租户应用,确认profile权限已经获得管理员同意;请求令牌后,用jwt.ms解析令牌内容,检查声明是否存在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:10:02