为何服务主体按MS Graph文档查询自身登录记录仍报错?
问题解答
核心原因
文档中提到的“任何权限的Azure AD用户都可读取自身作为登录主体的登录日志”这一例外规则,仅针对人类用户(交互式Azure AD用户账号),并不适用于服务主体。
具体说明
- 权限规则的限定:文档里的说明明确指向“Azure AD users”,这里的users特指具备交互式登录能力的人类用户,服务主体属于非交互式的服务身份,不在该例外的覆盖范围内。
- 服务主体的权限逻辑:服务主体的访问权限完全依赖于显式分配的应用权限或委派权限,不存在默认的“查看自身登录记录”的权限豁免。哪怕是查询自身的登录日志,也必须拥有
AuditLog.Read.All权限(或对应的细分权限)。 - 解决方法:若要让服务主体能够查询自身登录记录,需为其分配
AuditLog.Read.All应用权限并完成管理员同意,之后再通过$filter=(userId eq '{服务主体的oid}')过滤即可获取对应日志。
内容的提问来源于stack exchange,提问作者David Beavon
相关产品推荐
相关产品推荐

