node.js - 将范围添加到 OpenID Connect 身份提供程序(Azure AD 租户)后,新范围不会在 idp access_token 中返回

标签 node.js azure azure-web-app-service azure-ad-b2c

环境

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 租户的用户使用单点登录进行登录)。

更改范围字段的值 FROM:

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 中。

最佳答案

不确定这是否只是等待的问题,但之后:

  • 写出原始问题
  • 在本地开发环境中注销应用
  • 在本地开发环境中重新启动应用
  • 尝试在本地开发环境中再次登录

我看到了更新后的同意屏幕:

enter image description here

接受后,新的范围将在 idp_access_token 中返回。

关于node.js - 将范围添加到 OpenID Connect 身份提供程序(Azure AD 租户)后,新范围不会在 idp access_token 中返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75199106/

相关文章:

node.js - Express-Session中 'secret'选项的核心功能是什么?

python - Azure Devops Rest API 授权 header 不起作用

azure - 无法在拉取请求中添加审阅者

c# - Azure云服务嵌入式FTP服务器

azure - 如何解决 'Unexpected value & mapping error in YAML file (Azure DevOps)'

json - 为什么 JSON.parse 会因 Node.js 中的编码字符而阻塞?

javascript - 带有基于浏览器的 API 的 node.js

node.js - Mongoose 部分搜索

azure - 如何从同一 ASE 内的 Web 应用调用 Azure ILB ASE 内的 API

node.js - 部署到 azure 网站时如何 npm 配置选项(例如 --scripts-prepend-node-path)?