0


谁能帮我找出以下问题的解决方案?

摘要:
我收到 Microsoft Graph Calendar Read API 的 403。

详细信息
我正在使用具有隐式授权流机制的 microsoft 身份平台将用户从他的 microsoft 帐户登录到我的应用程序中。
我在范围参数中请求这些权限“profile User.Read Calendars.Read Calendars.ReadWrite”

成功登录后,以下内容起作用。
1)它要求授予
2)Microsoft oauth2.0登录的权限。
3) 读取个人资料图片。

但是由于某种原因,当我尝试阅读“日历”时,我在整个租户中只有一个帐户得到 403。我已通过以下链接查看错误描述,但找不到解决方案
https://docs.microsoft.com/en-us/graph/errors

谁能指出我,我需要在哪里找到上述问题的解决方案?是帐户问题还是我需要修改 api 请求。下面是我用来阅读日历的api

https://graph.microsoft.com/v1.0/me/calendar/calendarView?startDateTime= ${sd}&endDateTime=${ed}

4

1 回答 1

1

对于这个问题,首先你需要检查你得到的token是否包含正确的权限,你可以在这个页面中解码你的token 。我用隐式授权流测试请求这个图形 api,它工作正常,我把我的访问令牌解码,我们可以看到它包含我们期望的两个日历权限。

在此处输入图像描述

这里我列出一些你在请求这个graph api时需要注意的点:

1.正如您在问题中提到的,您在范围参数中请求具有“Calendars.Read Calendars.ReadWrite”权限,那么您是否将这两个权限添加到您的 AD 应用程序中?如果您没有添加它们,请将它们添加到您的 AD 应用程序中(请将它们添加到“委托权限”而不是“应用程序权限”中,如果我们将它们添加到“应用程序权限”中,我会测试它会显示 403 错误,因为隐式流程需要“委托权限”)。 在此处输入图像描述

2.添加这两个权限后,不要忘记为他们授予管理员同意。 在此处输入图像描述

于 2020-05-04T05:35:03.263 回答