Javascript User.ReadBasic.All未授予作用域,v2
我试图从v2 Azure目录请求oauth的以下3个作用域:user.read、user.readbasic.all、calendars.readwrite 我的授权获取请求是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` +
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
李>
application/json
。这是不正确的,它应该是application/x-www-form-urlencoded
有关如何使用Axios执行此操作的详细信息,请参阅
此外,个人帐户(MSA)不能“读取所有用户的基本配置文件”。作为“个人”帐户,只有一个用户关联 您是否在该AADv2应用程序中添加了委派权限
user.readbasic.all
“所有用户的基本配置文件”。这是一个个人帐户,帐户中只有一个用户。Marc关于个人帐户的观点解决了我的问题。因为我被授予了其他范围,我现在没有理由相信stringify是任何问题的原因