微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Microsoft Graph邮件查询-获取“ ErrorAccessDenied”

如何解决Microsoft Graph邮件查询-获取“ ErrorAccessDenied”

我的公司正在使用Microsoft 365商业标准版许可证。我们正在通过这些帐户使用电子邮件。我们也有一些共享邮箱。我们正在尝试创建一个使用Microsoft图形应用程序权限(而不是委派权限)的应用程序,以便该应用程序可以访问共享邮箱之一而无需在当前用户下进行身份验证。

这是我们到目前为止已采取的步骤:

  1. 在Microsoft Azure中,我们有一个应用程序,已在其中授予Mail.Read的应用程序api权限,并接受了管理员的同意。

  2. 在使用此端点https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize的应用程序中,我们授权作为应用程序而非用户,指出了发送请求所需的参数。然后,MS API建立此链接

https://login.microsoftonline.com/{some_string}/oauth2/v2.0/authorize?state={some_string}&scope=offline_access%20https%3A%2F%2Fgraph.microsoft.com%2F.default&response_type=code&approval_prompt=auto&redirect_uri=http%3A%2F%2Flocalhost&client_id={some_string}

当我们点击链接时,我们会转到网站上的标准授权表。登录后,将创建一个链接,在其中我们将获取代码并创建令牌:http:// localhost /?code = {some_string}&state = {some_string}&session_state = {some_string}

  1. 当我们尝试达到以下终点:https://graph.microsoft.com/v1.0/users/sharedmailbox@domain.com/messages时,我们会收到以下答复:

{ “错误”:{ “ code”:“ ErrorAccessDenied”, “ message”:“访问被拒绝。请检查凭据,然后重试。”, “ innerError”:{ “ date”:“ 2020-09-14T11:22:30”, “ request-id”:“ {some_string}”, “ client-request-id”:“ {some_string}” } } }

我认为要达到此端点https://graph.microsoft.com/v1.0/users/sharedmailbox@domain.com/messages,我们需要传递先前生成的令牌和/或指定哪个应用程序在进行查询

对于使此查询工作需要做什么的任何帮助或指导,将不胜感激。谢谢!

解决方法

我认为要达到此端点https://graph.microsoft.com/v1.0/users/sharedmailbox@domain.com/messages,我们需要传递先前生成的令牌和/或指定哪个应用程序在进行查询?

是的,您需要在Authorization标头中发送AccessToken,还应该包括x-anchormailbox标头,以帮助将请求路由到正确的邮箱,例如

GET https://graph.microsoft.com/v1.0/users/sharedmailbox@domain.com/messages HTTP/1.1
Host: graph.microsoft.com
Authorization: Bearer EwAoA8l6BAAU ... 7PqHGsykYj7A0XqHCjbKKgWSkcAg==
X-AnchorMailbox: sharedmailbox@domain.com

您可能要检查的另一件事是确保令牌中具有正确的作用域,可以为此使用https://jwt.io/

,

为了使用应用程序权限,您将需要使用客户端凭据身份验证流(而不是使用委派权限的授权代码auth流)。要获得令牌,请针对“ /oauth2/v2.0/token”发出请求,并在请求中指定“ grant_type = client_credentials”。有关更多详细信息,请参见此处的客户端凭据身份验证流程示例:https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。