1

我正在尝试 https://graph.microsoft.com/v1.0/users/{userId}/mailboxSettings使用身份验证令牌访问端点并作为回报接收403 Error Access Denied响应。

我已授予MailboxSettings.Read, MailboxSettings.ReadWrite. 我可以通过使用jwt.ms. 这是解码令牌的作用:

"scp": "Directory.AccessAsUser.All Files.ReadWrite.All Group.ReadWrite.All Mail.Read Mail.ReadWrite Mail.Send MailboxSettings.Read MailboxSettings.ReadWrite Sites.ReadWrite.All"

我还验证了我为其请求邮箱设置的用户已通过管理员同意获得访问权限。

如果我点击管理员 userId 或https://graph.microsoft.com/v1.0/users/me/mailboxSettings端点的端点,我可以返回邮箱设置。任何帮助将非常感激。

4

3 回答 3

1

我很快用 Microsoft Graph Explorer 进行了测试,它对我有用。所以我会要求你用Graph Explorer测试上面的 API 调用,看看你是否可以重现这个问题。

于 2019-02-20T16:22:34.390 回答
0

正如其他人所说,委托令牌仅适用于读取mailboxSettings当前经过身份验证的用户。我已启用mailboxSettings为应用程序范围,但我遇到了同样的错误。问题的罪魁祸首是我为令牌使用了 Auth 代码授权。

切换到客户端凭据授权后,我成功检索了包含mailboxSettings应用程序级别范围的身份验证令牌,并且能够在所有用户的端点上获得 200 个响应。

于 2019-03-01T14:35:31.013 回答
0

我认为问题在于您的令牌是使用委托范围生成的。MailboxSettings.Read和的 Delegated 风格MailboxSettings.ReadWrite 只能访问当前经过身份验证的用户的邮箱

为了访问其他用户,您需要使用应用程序范围。您可以在此博客文章中阅读有关这些范围如何工作(以及如何选择它们)的更多信息:Application vs Delegated Scopes

于 2019-02-25T15:59:15.773 回答