用PowerShell删除特定用户对Azure API的授权

Azure 门户中我们无法删除特定用户对 Azure API 的授权,但我们可以通过 PowerShell 来完成。你需要对该 API 的管理员权限

这是撤销用户对 Azure API 的授权,而非禁止该用户使用该 API 。该用户仍然可以再次授权。

操作

首先在 PowerShell 中安装 AzureAD 模块:

1
2
Install-PackageProvider -Name NuGet -RequiredVersion 2.8.5.201
Install-Module AzureAD

然后连接到 Azure,你将需要登录:

1
Connect-AzureAD

然后在 Azure 门户中获取该 API 的对象 ID,即图中第三项。

获取应用程序的权限列表(将 <对象ID> 替换为你的对象 ID,你不需要输入 < >):

1
2
$sp = Get-AzureADServicePrincipal -ObjectId "<对象ID>"
$spOAuth2PermissionsGrants = Get-AzureADOAuth2PermissionGrant -All $true| Where-Object { $_.clientId -eq $sp.ObjectId }

查看列表中的 PrincipalId

1
$spOAuth2PermissionsGrants.PrincipalId

这将输出若干行用户 ID,每行一个用户。找到你想撤销授权的用户的 ID。你可以通过 Azure 门户中的"用户"得到其 ID,即图中的 对象ID

如果你想撤销授权的用户 ID 在输出的第 n 行,执行该命令以撤销该用户的授权:

1
Remove-AzureADOAuth2PermissionGrant -ObjectId $spOAuth2PermissionsGrants[n-1].ObjectId

n-1 替换为对应的数值。比如你想撤销授权的用户 ID 在输出的第 2 行,那么命令应当为:

1
Remove-AzureADOAuth2PermissionGrant -ObjectId $spOAuth2PermissionsGrants[1].ObjectId

需要减 1 是因为数组从 0 开始

操作完成。你可以在 Azure 门户上检查该权限是否依然存在。

参考

微软文档:OAuth2PermissionGrant

微软文档:Remove-AzureADOAuth2PermissionGrant

作者

Cao Mingjun

发布于

2022-04-12

更新于

2022-04-12

许可协议

评论