c# - 没有登录用户的 Microsoft Graph 访问邮箱
问题描述
我已按照客户端凭据流程获取客户端访问令牌。此令牌与具有 Mail.ReadWrite 权限的应用程序相关联。根据此处的 Microsoft 权限参考,我不需要用户来获取所有邮箱。我没有看到允许我在没有关联用户的情况下提取邮箱的单个端点。如何在不查询用户的情况下获取我的应用程序也可以访问的邮箱列表?我编写的代码是用 C# 编写的,并使用 MSAL.NET 和 ms-graph API,尽管我尝试通过在 API 之外发送原始命令来使用其余 API。
解决方案
如果有 Userid
或userPrincipalName
. 访问给定邮箱的模式是https://graph.microsoft.com/v1.0/users/{id|upn}/messages
. 在不知道您要寻址的用户的情况下,Graph 无法将您的呼叫路由到正确的邮箱。
无论您的应用需要哪些权限,如果您正在访问用户数据,您也应该请求User.Read.All
。几乎每个与用户数据交互的调用都需要一个用户id
或userPrincipalName
作为该调用的一部分。
请记住,Exchange 数据可以与用户和组相关联,因此您可能还需要请求Group.Read.All
。
推荐阅读
- azure - 如何在门户中安装选定版本的 Azure 模块
- python - 如何在使用 Selenium 和 Python 执行测试后关闭 Headless Firefox
- java - 在整个 Spring Boot Runtime 中存储 JSON 数据
- dd - 如何使用比原始磁盘更大的 dd 创建的映像?
- angular - 带有 loadchildren 的 Angular 延迟加载路由
- reactjs - Storybook + React:SVG 图标导致元素类型无效:需要字符串(用于内置组件)或类/函数
- javascript - 浏览器如何打开桌面应用程序?
- sql - 仅基于范围最小值的查找值
- cmake - CMake BISON_TARGET 防止生成标头
- sql - 如何使用新的 plpgsql 查看可用于访问的属性