我正在尝试使用auth令牌访问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"
我还已经验证了我正在请求mailboxSettings的用户已通过管理员同意被授予访问权限。
如果我击中了admin userId或https://graph.microsoft.com/v1.0/users/me/mailboxSettings
终结点的终结点,我将能够返回mailboxSettings。任何帮助将非常感激。
答案 0 :(得分:1)
我很快使用Microsoft Graph Explorer进行了测试,它对我有用。因此,我将要求您使用Graph Explorer测试以上API调用,看看是否可以解决该问题。
答案 1 :(得分:0)
我认为问题在于您的令牌是使用Delegated范围生成的。 MailboxSettings.Read
和MailboxSettings.ReadWrite
的委派风格只能访问当前经过身份验证的用户的邮箱。
为了访问其他用户,您需要使用应用程序范围。您可以在此博客文章Application vs Delegated Scopes中了解有关这些范围如何工作(以及如何选择它们)的更多信息。
答案 2 :(得分:0)
正如其他人所述,委托令牌仅适用于读取当前已认证用户的mailboxSettings
。我已将mailboxSettings
启用为应用程序范围,但遇到了同样的错误。问题的根源是我使用了令牌的Auth代码授予。
切换到“客户端凭据”授予后,我成功检索了包含mailboxSettings
应用程序级别范围的Auth令牌,并且能够为所有用户在端点上获得200个响应。