Graph API可获取租户用户信息,无法获取部分用户mailFolders数据
问题排查与解决方案
1. 明确权限类型与适用场景
你当前的核心问题是权限类型不匹配:
- 若使用委派权限(Delegated):
Mail.Read委派权限仅能访问当前登录用户的mailFolders,无法跨用户访问。要访问其他用户的邮件文件夹,需配置Mail.Read.Shared或Mail.ReadWrite.Shared委派权限,且目标用户需与登录用户共享邮件文件夹。 - 若要无限制访问租户内任意用户的
mailFolders,必须使用应用权限(Application)下的Mail.Read,且需全局管理员完成管理员同意操作。
2. 检查应用权限的管理员同意状态
登录Azure AD门户,找到你的应用:
- 进入「API权限」页面,确认
Mail.Read(类型为「应用权限」)的状态是「已授予[你的租户名]的管理员同意」。 - 若状态为「需要管理员同意」,请全局管理员点击「授予管理员同意」按钮,等待5-10分钟让权限生效。
3. 在Graph Explorer中切换到应用权限模式
Graph Explorer默认使用委派权限,需手动切换:
- 点击Graph Explorer右上角的「权限」面板,切换到「应用权限」标签。
- 勾选
Mail.Read权限,点击「同意」(需用全局管理员账号操作)。 - 重新调用API
GET https://graph.microsoft.com/v1.0/users/{user-email}/mailFolders,此时使用的是应用身份,而非登录用户的委派身份。
4. 清理无效权限与冗余配置
Mail.ReadBasic.All仅能获取用户的基本邮件元数据,无法访问mailFolders,可从应用权限中移除该权限,避免混淆。- 应用权限模式下无需将用户添加到企业应用中(仅委派权限需要分配用户),之前的相关操作属于无效配置。
5. 排查目标用户邮箱的限制
- 确认目标用户邮箱处于活跃状态,未被禁用或归档。
- 检查目标用户邮箱是否设置了信息屏障或邮件访问限制,若有需调整允许应用访问的规则。
内容的提问来源于stack exchange,提问作者CyberDreadWing
相关产品推荐
相关产品推荐

