Microsoft Graph API:如何通过API获取来宾用户日历事件?
解决来宾用户日历API调用的权限缺失问题
针对你遇到的AuthOMMissingRequiredPermissions错误,以下是可能遗漏的配置项:
确认API权限的类型与管理员同意
你添加的API权限可能仅覆盖成员用户,需确保申请的是Calendars.Read或Calendars.ReadWrite的应用权限(而非委托权限),因为来宾用户的跨身份资源访问需要应用级权限支撑。同时必须完成管理员同意操作——在Azure AD管理中心的应用API权限页面,点击「授予管理员同意」,确保权限生效。检查来宾用户的日历共享权限
来宾用户的日历默认可能未开放外部访问权限:- 可让来宾用户在Outlook客户端中打开目标日历,进入「共享」设置,授予你的应用对应访问权限(如「查看所有细节」);
- 也可通过Graph API批量配置,调用
POST /users/{user_id}/calendar/permissions接口,将你的应用服务主体添加为日历权限对象。
验证访问令牌的权限声明
解码你的访问令牌(使用JWT解码工具),检查权限声明:- 若使用客户端凭据流(应用权限),令牌中需包含
Calendars.Read类的roles声明; - 若使用授权码流(委托权限),需确保令牌以来宾用户身份获取,且
scp声明包含日历相关权限。
注意:只有客户端凭据流获取的令牌支持跨用户(包括来宾)的资源访问。
- 若使用客户端凭据流(应用权限),令牌中需包含
确认应用的企业用户分配
在Azure AD的「企业应用」中找到你的应用,进入「用户和组」设置:- 确保来宾用户已被显式分配到该应用,或设置应用允许所有用户(含来宾)访问;
部分场景下,来宾用户需被分配后才能让应用权限访问其个人资源。
- 确保来宾用户已被显式分配到该应用,或设置应用允许所有用户(含来宾)访问;
内容的提问来源于stack exchange,提问作者Sanket Khot
相关产品推荐
相关产品推荐

