如何获取Outlook日历列表?Azure应用权限错误求助
解决Azure应用调用Microsoft Graph日历API权限缺失问题
错误信息翻译
{"error":{"code":"AuthOMMissingRequiredPermissions","message":"AadGuestPft令牌不包含目标API(调用应用为'00000003-0000-0000-c000-000000000000')所需的权限。","innerError":{"oAuthEventOperationId":"a244c7b2-8c6f-4c98-874c-5f8e1df48d02","oAuthEventcV":"tEIoCwoZzcePn4FTJroLdw.1.1.1","errorUrl":"https://aka.ms/autherrors#error-InvalidGrant","requestId":"71f80207-9747-4191-928c-7180601269f5","date":"2024-12-16T14:22:18"}}}
排查与修复步骤
- 确认权限配置:检查Azure应用中授予的是委托权限(
/me端点依赖用户上下文,必须用委托权限),且权限已完成管理员同意(若为租户级权限)。如果是用户自助同意,确保登录用户有权限范围。 - 解析令牌验证权限:将获取到的access token用JWT解析工具打开,查看
scp字段是否包含Calendars.Read、Calendars.Read.Shared等请求的权限。如果scp中没有对应权限,说明令牌获取时的范围参数未生效,或者权限未正确授予。 - 检查令牌受众:确认令牌的
aud字段值为https://graph.microsoft.com,若不是,说明请求token时的资源或范围参数错误。 - 重新获取令牌:清空Postman中存储的旧令牌,重新发起授权请求,确保范围参数完整且无拼写错误:
Calendars.ReadWrite Calendars.Read Calendars.Read.Shared Calendars.ReadBasic。 - 来宾账户权限检查:错误中的
AadGuestPft标识登录用户是租户来宾账户,需确认来宾账户被允许访问日历资源,且Azure应用对来宾用户启用了对应权限。
内容的提问来源于stack exchange,提问作者Jignesh Ansodariya
相关产品推荐
相关产品推荐

