首页 > 解决方案 > 没有登录用户的 Microsoft Graph 访问邮箱

问题描述

我已按照客户端凭据流程获取客户端访问令牌。此令牌与具有 Mail.ReadWrite 权限的应用程序相关联。根据此处的 Microsoft 权限参考,我不需要用户来获取所有邮箱。我没有看到允许我在没有关联用户的情况下提取邮箱的单个端点。如何在不查询用户的情况下获取我的应用程序也可以访问的邮箱列表?我编写的代码是用 C# 编写的,并使用 MSAL.NET 和 ms-graph API,尽管我尝试通过在 API 之外发送原始命令来使用其余 API。

标签: c#microsoft-graph-apimsal

解决方案


如果有 UseriduserPrincipalName. 访问给定邮箱的模式是https://graph.microsoft.com/v1.0/users/{id|upn}/messages. 在不知道您要寻址的用户的情况下,Graph 无法将您的呼叫路由到正确的邮箱。

无论您的应用需要哪些权限,如果您正在访问用户数据,您也应该请求User.Read.All。几乎每个与用户数据交互的调用都需要一个用户iduserPrincipalName作为该调用的一部分。

请记住,Exchange 数据可以与用户和组相关联,因此您可能还需要请求Group.Read.All


推荐阅读