使用Graph API读取日历与邮箱设置时返回401 Unauthorized问题
针对Microsoft Graph权限与401错误的解答
关于权限是否满足查询需求
MailboxSettings.Read应用权限完全支持调用/users/{userid}/mailboxSettings接口;Calendars.ReadBasic.All应用权限足够支持查询用户日历视图(/users/{userid}/calendar/calendarView)的基础需求,无需Calendars.Read权限。
你遇到的401错误大概率不是权限范围不足导致的,常见诱因包括:
- 应用权限未完成管理员同意:应用类型权限必须经过管理员授权同意,仅在Azure门户添加权限但未点击"授予管理员同意"的话,token会包含角色字段,但实际无访问权限;
- 目标用户资源异常:比如用户邮箱处于禁用状态,或者日历被设置了组织级别的访问限制;
- Token受众错误:检查token中的
aud字段是否为https://graph.microsoft.com,受众不匹配会导致权限验证失败。
关于日历权限的等级关系
日历权限的覆盖范围是**Calendars.ReadBasic.All < Calendars.Read**:
Calendars.ReadBasic.All仅能读取日历项的基础信息(标题、起止时间、参与者),无法访问会议描述、附件等详细内容;Calendars.Read拥有更宽的权限,可以读取日历的全部内容,包括所有细节信息。
内容的提问来源于stack exchange,提问作者Sang
相关产品推荐
相关产品推荐

