获取有权访问 Azure 资源的用户和组
Get users and groups that have access to Azure resource
我有一个名为 devtest
的资源。我想使用 azure cli
或 REST API
:
从 IAM -> Role assignments
blade 获取列表
如何以编程方式检索该信息(group-id
、display name
等)?是否可以获取有权访问资源的用户和组的列表?
例如,使用 graph
允许获取签名用户所属的组:
POST https://graph.microsoft.com/v1.0/me/getMemberGroups
Request Body:
{
"securityEnabledOnly": true
}
Response:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(Edm.String)",
"value": [
// group ids here
]
}
但是如何对资源做类似的事情并获取在该资源中具有角色的用户和组的列表?
编辑:
当我们转到 Role Assignments
blade 时,Azure
调用端点:
POST https://graph.windows.net/{subscriptionId}/getObjectsByObjectIds
Request body:
{ "objectIds":[ "bunch unknown ids here" ],"includeDirectoryObjectReferences":true }
我收到的回复如下:
这与我在 Role assignments
选项卡中看到的内容有关,但并非所有位置都返回。在此回复中,我们没有关于 role
的信息,如何挖掘它们?
您可以使用以下 cmdlet,列出资源的所有角色分配及其各自的组(如果角色分配的对象类型不是 User,则不会给您任何输出)。
这是脚本:
connect-azuread # Manadatory to authenticate with azuread & to further run Get-azureadusermembership cmdlet
$rbac=Get-AzRoleAssignment -ResourceGroupName '<RgName>' -ResourceName '<ResourceName>' -ResourceType 'Microsoft.KeyVault/vaults' | Where-Object -Property ObjectType -EQ User| select -Property SignInName,ObjectId,RoleDefinitionName
Write-output $rbac
foreach($item in $rbac)
{
Get-AzureADUserMembership -ObjectId $item.ObjectId | select -Property *
}
这里是示例输出以供参考:
我有一个名为 devtest
的资源。我想使用 azure cli
或 REST API
:
IAM -> Role assignments
blade 获取列表
如何以编程方式检索该信息(group-id
、display name
等)?是否可以获取有权访问资源的用户和组的列表?
例如,使用 graph
允许获取签名用户所属的组:
POST https://graph.microsoft.com/v1.0/me/getMemberGroups
Request Body:
{
"securityEnabledOnly": true
}
Response:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(Edm.String)",
"value": [
// group ids here
]
}
但是如何对资源做类似的事情并获取在该资源中具有角色的用户和组的列表?
编辑:
当我们转到 Role Assignments
blade 时,Azure
调用端点:
POST https://graph.windows.net/{subscriptionId}/getObjectsByObjectIds
Request body:
{ "objectIds":[ "bunch unknown ids here" ],"includeDirectoryObjectReferences":true }
我收到的回复如下:
这与我在 Role assignments
选项卡中看到的内容有关,但并非所有位置都返回。在此回复中,我们没有关于 role
的信息,如何挖掘它们?
您可以使用以下 cmdlet,列出资源的所有角色分配及其各自的组(如果角色分配的对象类型不是 User,则不会给您任何输出)。
这是脚本:
connect-azuread # Manadatory to authenticate with azuread & to further run Get-azureadusermembership cmdlet
$rbac=Get-AzRoleAssignment -ResourceGroupName '<RgName>' -ResourceName '<ResourceName>' -ResourceType 'Microsoft.KeyVault/vaults' | Where-Object -Property ObjectType -EQ User| select -Property SignInName,ObjectId,RoleDefinitionName
Write-output $rbac
foreach($item in $rbac)
{
Get-AzureADUserMembership -ObjectId $item.ObjectId | select -Property *
}
这里是示例输出以供参考: