You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Microsoft Graph中撤销DelegatedPermissionGrant.ReadWrite.All和Directory.ReadWrite.All权限?

如何在Microsoft Graph中撤销DelegatedPermissionGrant.ReadWrite.All和Directory.ReadWrite.All权限?

嘿,这个权限互相卡壳的情况我之前也碰到过,确实挺闹心的。别担心,我给你几个靠谱的办法,帮你把这两个权限都撤掉,恢复到原来的状态:

方法一:通过Azure Active Directory门户手动操作(最直观)

这是最适合普通用户的方式,不用敲命令就能搞定:

  • 登录Azure门户,找到并进入Azure Active Directory服务
  • 在左侧菜单里点企业应用程序,然后搜索并选中「Microsoft Graph Explorer」这个应用
  • 进入应用详情页后,切换到权限选项卡
  • 在「已授予的权限」区域,找到DelegatedPermissionGrant.ReadWrite.AllDirectory.ReadWrite.All这两个权限,按住Ctrl键同时选中它们
  • 点击页面顶部的「撤销权限」按钮,确认操作后刷新页面,这两个权限就会被同时移除,完美避开互相依赖的问题

方法二:用PowerShell批量删除(适合喜欢命令行的用户)

如果习惯用脚本操作,这个方法效率更高:

  • 先确保安装了AzureAD模块,没装的话打开PowerShell(管理员模式),运行:Install-Module -Name AzureAD,按提示完成安装
  • 连接到Azure AD:Connect-AzureAD,然后用你的管理员账号完成登录
  • 先查询出包含目标权限的授予记录:
$grants = Get-AzureADUserOAuth2PermissionGrant -All $true | Where-Object { $_.Scope -match "DelegatedPermissionGrant.ReadWrite.All|Directory.ReadWrite.All" }
  • 接着批量删除这些记录:
foreach ($grant in $grants) {
    Remove-AzureADUserOAuth2PermissionGrant -ObjectId $grant.ObjectId
}
  • 运行完后再执行一遍查询命令,确认权限已经被清理干净

方法三:通过Microsoft Graph API操作(适合开发者)

如果有其他具备全局管理员权限的账号,或者能获取到应用权限令牌,可以用API来处理:

  • 调用GET /users/{你的用户ID}/oauth2PermissionGrants,获取当前账号的所有委托权限授予记录
  • 在返回结果里找到包含那两个权限的条目,记录它们的id字段
  • 分别调用DELETE /oauth2PermissionGrants/{记录ID},把这些权限授予逐个删除
  • 注意:如果用当前账号的令牌,可能已经因为撤销了其中一个权限而无法执行删除操作,所以建议用另一个有权限的管理员账号来调用API

备注:内容来源于stack exchange,提问作者Joe

火山引擎 最新活动