繁体   English   中英

获取有权访问 Azure 资源的用户和组

[英]Get users and groups that have access to Azure resource

我有一个名为devtest的资源。 我想使用azure cliREST APIIAM -> Role assignments刀片获取列表:

在此处输入图像描述

如何以编程方式检索该信息( group-iddisplay name等)? 是否可以获取有权访问资源的用户和组的列表?

例如,使用graph im 允许获取签名用户所属的组:

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
    ]
}

但是如何对资源做类似的事情并获取在该资源中具有角色的用户和组的列表?

编辑:

当我们 go 到Role Assignments刀片时, Azure调用端点:

POST https://graph.windows.net/{subscriptionId}/getObjectsByObjectIds

Request body:
{ "objectIds":[ "bunch unknown ids here" ],"includeDirectoryObjectReferences":true }

我得到这样的回应:

在此处输入图像描述

这与我在Role assignments选项卡中看到的内容有关,但并非所有职位都会返回。 在这个回复中我们没有关于role的信息,如何挖掘它们?

您可以使用以下 cmdlet 列出资源及其各自组的所有角色分配(如果角色分配的 object 类型不是用户,它不会给您任何输出)。

这是脚本:

 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 *
}

下面是样本output供参考:

在此处输入图像描述

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM