You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Graph API为所有用户批量创建邮箱文件夹遇权限拒绝问题

解决为其他用户创建邮箱文件夹的Graph API权限问题

1. 切换权限类型:从委托权限改为应用权限

你当前用/me/mailFolders能正常工作,说明使用的是委托权限——这类权限仅允许操作授权用户自己的邮箱数据,无法跨用户操作。要给其他用户创建文件夹,必须改用应用权限:

  • 所需权限:选择MailboxSettings.ReadWrite.All(仅邮箱设置相关操作)或Mail.ReadWrite.All(全邮箱读写权限,按需选择最小权限)
  • 关键步骤:在Azure AD中给你的应用添加上述权限后,必须完成全局管理员同意,这类跨用户的权限需要管理员审批才能生效。

2. 修改API调用端点

放弃/me/mailFolders,改用目标用户的标识来构造端点:

POST /users/{user-id}/mailFolders
# 或者用用户的UPN(用户主体名称)
POST /users/{user-upn}/mailFolders

请求体格式和/me端点一致,比如:

{
  "displayName": "自定义文件夹名称"
}

3. 调整认证方式为客户端凭证流

因为使用应用权限,需要通过客户端凭证流获取访问令牌,而不是之前的授权码流:

  • 调用Azure AD的令牌端点(https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token),传入以下参数:
    • grant_type: client_credentials
    • client_id: 你的应用ID
    • client_secret: 应用的客户端密钥(或用证书认证)
    • scope: https://graph.microsoft.com/.default

4. 验证权限与端点

用Graph Explorer切换到「应用权限」模式,添加对应的权限并完成管理员同意后,测试调用目标用户的mailFolders创建接口,确认是否能成功创建文件夹。如果仍报错,检查:

  • Azure AD中应用的权限是否已正确添加并完成同意
  • 令牌是否包含对应的权限声明(可以用JWT解析工具查看roles字段)
  • 目标用户的邮箱是否处于正常状态

内容的提问来源于stack exchange,提问作者Albert Lyubarsky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 04:49:53