Javascript User.ReadBasic.All未授予作用域,v2

Javascript User.ReadBasic.All未授予作用域,v2,javascript,azure-active-directory,microsoft-graph-api,Javascript,Azure Active Directory,Microsoft Graph Api,我试图从v2 Azure目录请求oauth的以下3个作用域:user.read、user.readbasic.all、calendars.readwrite 我的授权获取请求是 https://login.microsoftonline.com/common/oauth2/v2.0/authorize?' + '&client_id=myclientid' + '&response_type=code' + `&redirect_uri=myredirecturl` +

我试图从v2 Azure目录请求oauth的以下3个作用域:user.read、user.readbasic.all、calendars.readwrite

我的授权获取请求是

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?'
+ '&client_id=myclientid'
+ '&response_type=code'
+ `&redirect_uri=myredirecturl`
+ '&response_mode=query'
+ '&scope=user.read%20user.readbasic.all%20calendars.readwrite'
+ '&prompt=consent';
注意,自从上次授权以来,我已经排除了更改同意类型的可能性

我成功获取了一个代码,并将其交换为令牌:

axios.post(
'https://login.microsoftonline.com/common/oauth2/v2.0/token',
querystring.stringify(
  {
    client_id: my_client_id,
    client_secret: my_app_secret,
    grant_type: 'authorization_code',
    code,
    scope: 'user.readbasic.all user.read calendars.readwrite',
    redirect_uri: my_redirect_url
  },
  null,
  null,
  { encodeURIComponent: s => encodeURI(s) }
)
))

  • 登录时,我没有看到任何关于
    user.readbasic.all
    的同意消息
  • 我没有收到响应中有关我获得奖励的令牌范围的
    User.ReadBasic.All
  • 我正在接收user.read和calendars.readwrite
  • 更新 我相信我正在把问题缩小到改变作用域或租户类型。虽然我将prompt=approve作为参数,但我的个人帐户上没有user.readbasic.all范围。当我将授权链接发送给组织租户中的其他人时,他们将获得完整的权限列表。为什么不同的用户有两个不同的权限页?两个屏幕截图: stringify()方法正在将对象转换为
    application/json
    。这是不正确的,它应该是
    application/x-www-form-urlencoded

    有关如何使用Axios执行此操作的详细信息,请参阅


    此外,个人帐户(MSA)不能“读取所有用户的基本配置文件”。作为“个人”帐户,只有一个用户关联

    您是否在该AADv2应用程序中添加了委派权限
    user.readbasic.all
    “所有用户的基本配置文件”。这是一个个人帐户,帐户中只有一个用户。Marc关于个人帐户的观点解决了我的问题。因为我被授予了其他范围,我现在没有理由相信stringify是任何问题的原因