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

Azure AD租户OpenID Connect身份提供商新增范围未在idp_access_token中返回

问题描述

环境

部署在Azure上的Node.js/Express Web应用程序

期望行为

单点登录后,idp_access_token中的scp值应包含新增的范围:Sites.ReadWrite.All。

实际行为

scp值未包含该新增范围。

重现步骤

  • 进入Azure AD > [切换目录至Azure AD B2C] > Azure AD B2C > 身份提供商
  • 点击现有的Open ID Connect条目(该提供商允许主Azure AD租户用户通过单点登录登录)
  • 将Scope字段值从:
openid profile User.ReadWrite.All Directory.ReadWrite.All Team.ReadBasic.All TeamSettings.ReadWrite.All

修改为:

openid profile User.ReadWrite.All Directory.ReadWrite.All Team.ReadBasic.All TeamSettings.ReadWrite.All Sites.ReadWrite.All

即新增Sites.ReadWrite.All范围

  • 执行单点登录,在jwt.ms中查看返回的idp_access_token,发现scp属性缺少Sites.ReadWrite.All:
Directory.ReadWrite.All openid profile Team.ReadBasic.All TeamSettings.ReadWrite.All User.ReadWrite.All email
  • 尝试登出后重新登录,仍仅获取旧范围值,新范围未添加至idp_access_token。
解决方案
  1. 确认主Azure AD租户中应用的权限授予状态
    由于使用主Azure AD作为B2C的身份提供商,Sites.ReadWrite.All是Microsoft Graph的委托权限,需在主AD租户完成以下操作:

    • 切换到主Azure AD目录,进入企业应用,找到对应OpenID Connect身份提供商的应用
    • 进入权限页面,检查是否已添加Sites.ReadWrite.All委托权限
    • 若已添加但未授权,点击授予管理员同意,完成租户级权限授权
  2. 强制刷新令牌并清除缓存

    • 用户端:清除浏览器缓存、Cookie,或使用隐私窗口重新登录,避免客户端缓存旧令牌
    • 后端:在应用中调用令牌刷新接口,强制获取新的idp_access_token,不使用缓存中的旧令牌
  3. 等待配置生效
    Azure AD B2C的跨租户身份提供商配置变更可能存在延迟,建议等待10-15分钟后再测试

  4. 验证权限配置的正确性

    • 返回B2C的身份提供商配置页面,确认Scope字段确实包含Sites.ReadWrite.All,无拼写错误
    • 在主AD的应用注册中,确认API权限里Sites.ReadWrite.All的状态为已授予 [租户名] 管理员同意

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 00:40:44