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

使用MS Azure访问日历数据时遭遇权限拒绝问题求助

排查Microsoft Graph API权限拒绝(ErrorAccessDenied)问题

已知信息

配置详情

"Authority": "https://login.microsoftonline.com/",
"Scope": ["https://graph.microsoft.com/.default"],
"InstanceURL": "https://graph.microsoft.com/v1.0",
API -> /users/{}/calendarView with start and end query

已配置应用程序权限及Calendar.Read.All权限,但调用API时返回错误:

{"error":{"code":"ErrorAccessDenied","message":"Access is denied. Check credentials and try again."}}

排查要点

  • 确认管理员已授予权限同意
    应用程序权限必须由管理员手动授予同意,仅在Azure AD应用注册中添加权限但未完成「授予管理员同意」操作的话,权限不会生效。前往Azure AD应用注册的「API权限」页面,确认Calendar.Read.All权限旁显示「已授予」状态。

  • 修复Authority配置并验证令牌权限
    原始配置中的Authority缺少租户ID,正确格式应为https://login.microsoftonline.com/{your-tenant-id}/。获取令牌后,解析其payload部分,检查roles字段是否包含Calendar.Read.All:

    • 必须使用client_credentials授权流程获取应用令牌
    • 确保请求令牌时的scope参数为https://graph.microsoft.com/.default,且租户ID正确
  • 校验API请求参数

    • 替换/users/{}/calendarView中的占位符{}为有效的用户ID(UPN或对象ID)
    • 确保startDateTime和endDateTime参数符合ISO 8601格式,例如2024-05-01T00:00:00Z
  • 排除目标用户日历的私有设置
    若目标用户的日历设置为完全私有,即使应用有Calendar.Read.All权限也可能被拒绝。可先尝试访问全局管理员的日历进行测试,确认是否为用户自身日历权限限制导致。

  • 确认权限类型正确
    检查Azure AD中配置的Calendar.Read.All是应用程序权限,而非委托权限——委托权限无法用于client_credentials授权流程。

内容的提问来源于stack exchange,提问作者Pushpendra Singh Nathavat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 08:30:57