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

配置Azure OAuth后,无法从Microsoft Graph API oidc/userinfo端点获取邮箱

问题描述

已在Azure完成OAuth配置,获取到authorization_code并兑换为access_token,调用Microsoft Graph API的oidc/userinfo端点获取用户信息时,返回结果未包含邮箱字段。返回内容如下:

{
    "sub": "<redacted>",
    "name": "John Doe",
    "family_name": "John",
    "given_name": "Doe",
    "picture": "https://graph.microsoft.com/v1.0/me/photo/$value"
}

根据文档,返回邮箱需要email权限范围,已确认:

  • 应用权限已配置
  • /oauth2/v2.0/token请求的scope包含profile、openid、email和user.Read
可能的遗漏点
  • 用户邮箱属性未设置:Azure AD中该用户的mail或userPrincipalName(若为邮箱格式)字段为空,userinfo端点的email字段依赖这两个属性。需在Azure AD用户管理页面检查用户的邮箱信息是否已正确填充。
  • 权限未实际生效:即使配置了权限,若未重新发起授权流程,旧的access_token可能未包含email权限声明。可以用jwt.ms解析当前的access_token,查看scp(委托权限)或roles(应用权限)字段是否包含email;若没有,需重新走授权流程获取新令牌。
  • 权限类型不匹配:如果使用的是授权码流(用户登录场景),需要配置委托权限而非应用权限。检查应用权限列表中,email权限是否为委托类型,且已完成管理员同意(若为租户级应用)。
  • 端点特性限制:部分场景下,即使拥有email权限,若用户邮箱未经过Azure AD验证,userinfo端点可能不返回该字段。可以尝试调用Microsoft Graph的/me端点,查看返回的mail或userPrincipalName字段,确认邮箱信息是否存在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 04:55:18