拒绝访问以在消息上添加 Microsoft Graph 架构扩展

Access denied to add Microsoft Graph Schema Extension on a Message

我们目前正在制作一个多租户应用程序,管理员用户可以在其中登录 Office365 并操纵其他用户的电子邮件。我们想在创建的消息上添加架构扩展,但我最终遇到了 AccessDenied 错误。 注意,我使用的是arxone_path模式扩展,即Available(你可以尝试使用它)。

我首先在我的 Azure 应用程序注册上设置了委派权限 Mail.ReadWrite(如 https://docs.microsoft.com/en-us/graph/api/opentypeextension-post-opentypeextension?view=graph-rest-1.0#permissions 所述)。我还添加了 Mail.ReadWrite.Shared 权限。使用用户的访问令牌,我实际上可以获取、创建、删除或更新另一个用户的消息。但是,如果我尝试更新消息以添加这样的架构扩展:

PATCH https://graph.microsoft.com/v1.0/{{user}}/messages/{{message}}
Content-Type: application/json
{
    "arxone_path": {
        "path":"some/path"
    }
}

我总是收到这样的回复:

HTTP/1.1 403 Forbidden
Content-type: application/json
{
  "error": {
    "code": "ErrorAccessDenied",
    "message": "Access is denied. Check credentials and try again.",
    "innerError": {
      "request-id": "a95b0641-63e9-4601-82f2-d8c4ed6d64d8",
      "date": "2020-01-16T16:12:29"
    }
  }
}

综上所述,我可以:

我相信 url 表示您在尝试创建开放扩展程序时可能需要额外的权限(取决于帐户类型)。

委派(工作或学校) User.ReadWrite.All
委派(个人 Microsoft 帐户) User.ReadWrite
申请 User.ReadWrite.All

您不能使用其他用户的委派访问令牌向用户对象添加开放扩展。您需要让该用户登录并使用他们的委托访问令牌。

另一种方法是使用应用程序权限(仅限应用程序)并请求 User.ReadWrite.All,这需要管理员的管理员同意。