已获Reports.Read.All权限,仍无法调用Microsoft Graph用户活动时间接口
问题
我尝试调用Microsoft Graph接口获取用户活动时间,已知所需的Reports.Read.All权限已由经理开通,但调用后无法获取返回结果,报错信息见对应截图。
排查与解决建议
- 核对权限类型:
Reports.Read.All分应用权限和委托权限两类。如果是应用权限调用,必须确保管理员完成了管理员同意操作;如果是委托权限,要确认登录用户本身具备访问目标数据的权限。 - 校验令牌权限:拿到调用接口的access token后,用JWT解析工具查看令牌内是否包含
Reports.Read.All的权限声明,或者调用https://graph.microsoft.com/v1.0/me/permissions验证权限是否生效。 - 确认接口正确性:获取用户活动时间应使用专门的报表接口(比如
/reports/getUserActivity(period='D7')),而非普通的用户列表接口。普通用户列表接口不需要Reports.Read.All权限,可能你选错了接口。 - 检查授权范围:确认管理员为你的应用授予的
Reports.Read.All权限是全局范围,没有设置特定的访问限制。 - 验证应用配置:确保在Azure AD的应用注册中已经添加了
Reports.Read.All权限,并且完成了对应的同意流程(应用权限需管理员手动同意,委托权限可通过用户登录同意或管理员批量同意)。
内容的提问来源于stack exchange,提问作者smalcakmak
相关产品推荐
相关产品推荐

