Azure Graph API 给出错误 "Auth token does not contain valid permissions or user does not have valid roles"
Azure Graph API giving error "Auth token does not contain valid permissions or user does not have valid roles"
我一直在尝试按照提供的官方说明列出 Microsoft 安全分数 here
但我一直收到错误消息:
Auth token does not contain valid permissions or user does not have valid roles.
一旦用户登录并同意我注册的应用程序,就会请求身份验证令牌。应用程序具有官方 documents 中描述的所有必需权限:SecurityActions.Read.All, Subscription.Read.All, User.Read.All
目前我正在 React.jS 中尝试这个过程,但是我也在 Postman 和 Node 中尝试过这个过程,但我仍然卡住了。
const accessToken = await this.userAgentApplication.acquireTokenSilent({
scopes: config.scopes
});
const securityScores = await getSecureScores(accessToken);
if(securityScores && securityScores.value){
this.setState({
securityScores: securityScores
});
}
范围数组如下所示:
scopes: [
'Directory.Read.All',
'AccessReview.Read.All',
'offline_access',
'Organization.Read.All',
'Policy.Read.All',
'profile',
'SecurityActions.Read.All',
'Reports.Read.All',
'SecurityEvents.Read.All',
'User.Read',
'User.Read.All'
]
这是一个已知问题。当您使用 Implicit grant flow.
时会出现此错误
通过隐式流获取的访问令牌中没有wids
字段。基于 document,由于令牌长度问题,它可能不会出现在令牌中。
有两种解决方法。
- 一旦响应模式更改为
response_mode=form_post
id
令牌和访问令牌(如果请求)作为 POST 请求发送,并且
包含允许 Graph API 安全端点的 wids 声明
待用。
- 调用OBO获取Graph的token,然后调用graph进行学习
他们的意愿或角色在代币上。你也可以做OBO来获得
一个 id_token 里面应该有这些声明。
查看之前的讨论 here. And you need to pay attention to rayterrill's answer and hpsin's answer。
我一直在尝试按照提供的官方说明列出 Microsoft 安全分数 here 但我一直收到错误消息:
Auth token does not contain valid permissions or user does not have valid roles.
一旦用户登录并同意我注册的应用程序,就会请求身份验证令牌。应用程序具有官方 documents 中描述的所有必需权限:SecurityActions.Read.All, Subscription.Read.All, User.Read.All
目前我正在 React.jS 中尝试这个过程,但是我也在 Postman 和 Node 中尝试过这个过程,但我仍然卡住了。
const accessToken = await this.userAgentApplication.acquireTokenSilent({
scopes: config.scopes
});
const securityScores = await getSecureScores(accessToken);
if(securityScores && securityScores.value){
this.setState({
securityScores: securityScores
});
}
范围数组如下所示:
scopes: [
'Directory.Read.All',
'AccessReview.Read.All',
'offline_access',
'Organization.Read.All',
'Policy.Read.All',
'profile',
'SecurityActions.Read.All',
'Reports.Read.All',
'SecurityEvents.Read.All',
'User.Read',
'User.Read.All'
]
这是一个已知问题。当您使用 Implicit grant flow.
时会出现此错误通过隐式流获取的访问令牌中没有wids
字段。基于 document,由于令牌长度问题,它可能不会出现在令牌中。
有两种解决方法。
- 一旦响应模式更改为
response_mode=form_post
id 令牌和访问令牌(如果请求)作为 POST 请求发送,并且 包含允许 Graph API 安全端点的 wids 声明 待用。 - 调用OBO获取Graph的token,然后调用graph进行学习 他们的意愿或角色在代币上。你也可以做OBO来获得 一个 id_token 里面应该有这些声明。
查看之前的讨论 here. And you need to pay attention to rayterrill's answer and hpsin's answer。