如何访问或删除其他用户/应用在Graph API中创建的订阅
问题结论
委托权限模式下,即使用户是全局管理员,也无法查询、更新或删除非本人创建的订阅,这是Microsoft Graph订阅服务的原生权限隔离规则。
你遇到的Subscriptions.Read.All委托权限仅支持列出租户内所有订阅,不具备跨主体访问单个订阅详情、修改/删除订阅的权限,这就是你能拉取列表但查询单个订阅返回403报错的核心原因。
可行解决方案
如果需要操作租户内所有主体创建的订阅,切换为应用权限模式即可,不需要额外分配特殊的Azure AD角色,只需完成以下配置:
- 在Azure Portal的应用注册页面,为你的应用添加
Subscription.ReadWrite.All的应用类型权限 - 由全局管理员为该权限完成租户级同意
- 调用接口时使用客户端凭证流获取应用身份的令牌,即可实现对所有订阅的查询、更新、删除操作
补充说明
目前Microsoft Graph没有提供支持跨主体操作订阅的委托权限,如果你必须使用用户身份(委托令牌)调用接口,只能操作用户本人创建的订阅,没有额外配置可以突破这个限制。
内容的提问来源于stack exchange,提问作者ingo_ww
相关产品推荐
相关产品推荐

