Permissions Microsoft graph api:一些用户在使用我的应用程序时会得到403分,而其他用户则不会';t、 为什么?? 问题

Permissions Microsoft graph api:一些用户在使用我的应用程序时会得到403分,而其他用户则不会';t、 为什么?? 问题,permissions,microsoft-graph-api,Permissions,Microsoft Graph Api,我明白了 Microsoft\Graph\Exception\GrapherException:[0]:收到403的呼叫 到 我不明白为什么 研究 Azure中的权限 异常在我的队列中的显示方式 补充资料 需要明确的是:我们公司的其他用户也提出了同样的要求,所以这并不是总是失败的。值得注意的是,以Chat开头的权限来自graph api的beta版本。此外,检索有关用户的信息(ownUser getGivenName)也适用于所有用户 应用程序范围 应用程序中定义的范围包括: openi

我明白了

Microsoft\Graph\Exception\GrapherException:[0]:收到403的呼叫 到

我不明白为什么


研究 Azure中的权限

异常在我的队列中的显示方式

补充资料 需要明确的是:我们公司的其他用户也提出了同样的要求,所以这并不是总是失败的。值得注意的是,以Chat开头的权限来自graph api的beta版本。此外,检索有关用户的信息(ownUser getGivenName)也适用于所有用户

应用程序范围 应用程序中定义的范围包括:

openid 轮廓 脱机访问 user.read mailboxsettings.read 日历。读写 Chat.ReadBasic 聊天,阅读 Chat.ReadWrite

服务器的响应 答复完全是:

{
“错误”:{
“代码”:“禁止”,
“消息”:“禁止”,
“内部错误”:{
“日期”:“2021-05-04T12:05:41”,
“请求id”:“xxxxxxx-f7ea-4912-a23b-676002d0912d”,
“客户请求id”:“xxxxxxx-f7ea-4912-a23b-676002d0912d”
}
}
}
响应标题也不会显示任何内容:

也试过 我还尝试重新访问并给予我的(管理员)同意,但这并没有改变任何事情

JWT令牌 我还解码了一个工作用户jwt令牌和一个非工作用户jwt令牌,它们配置了相同的scp(作用域)

使用的端点
  • /me/chats
  • /me
  • /me/chats/$chatId/messages
  • /me/chats/$chatId/members

只是一些观察和解决方法,以帮助通过谷歌发布本文的其他人:

  • 只有
    /me/chats/$chatId/members
    在没有明显原因的情况下失败。这可能是测试版实现中的一个错误。也许最好使用
    $expand
    参数查看它们以缓解此问题

  • 对于另一个子组用户,使用的端点
    /me/chats
    检索所有聊天也会失败

公共函数listChats():数组
{
$graph=$this->getGraph();
$chats=[];
$response=$graph->setApiVersion(“beta”)
->createCollectionRequest(“GET”,“me/chats”)
->setReturnType(Chat::class);
而(!$response->isEnd()){
$chats=array\u merge($chats$response->getPage());
}
返回$chats;
}
因为while循环从不停止
@odata.nextLink
始终存在于这些用户的响应中。可能还有一个bug,因为sdk会通过设计检查它是否存在

$maxRequests=10;
而(!$response->isEnd()&&$maxRequests>0){
$chats=array\u merge($chats$response->getPage());
$maxRequests--;
}

哪些管理员试图访问活动?他们是参与者还是聊天室的所有者?@Diana他们是所有者。我的应用程序正在创建登录用户的团队聊天的备份。它适用于大多数用户,只是对一些用户,它给出了403禁止,而所需的权限保持不变。这是一个真正的headscratcher。您是否可以共享请求id以进行进一步调试?我可以看到您已经添加了对该问题的完整回答。@Diana请求id是
dd4afa4a-f7ea-4912-a23b-676002d0912d
,我怀疑以任何方式发布此id都有危险,但我试图尽可能保持机密我认为这是由于您的用户缺乏
Office365许可证造成的。在调用api之前,请尝试向用户授予Office365许可证。