如何使用 Azure CLI 按对象 ID 获取 Azure AD 对象

Poo*_*eld 13 azure-powershell azure-active-directory azure-cli

在 Azure 门户中,可以根据对象 ID 查找 Azure AD 对象,如下所示:

在此输入图像描述

是否可以使用 Azure CLI 通过对象 ID 检索 Azure AD 对象?

为了使用Azure CLI获取与对象ID相关的对象,看来我需要提前知道相关资源是否是用户、组、设备、应用程序注册等,以便获取详细信息。例如,如果我知道对象 ID 是用户,我可以使用az ad user show --id. 如果我只有对象 ID,我不知道对象的“类型”,但 Portal 可以以某种方式弄清楚这一点!

虽然我更喜欢 Azure CLI 解决方案,但 Azure PowerShell 解决方案总比没有好。我问这个问题是因为我试图使用 生成密钥保管库中的访问策略列表az keyvault list,但该 CLI 命令中的访问策略列表仅显示每个策略的对象 ID...我无法确定对象是否是用户、组等。

在此输入图像描述

Jim*_* Xu 21

如果您想获取 Azure AD 资源及其对象 ID,我们可以使用以下 Microsoft Graph API

POST https://graph.microsoft.com/v1.0/directoryObjects/getByIds
Content-type: application/json

{
    "ids":[""]
}
Run Code Online (Sandbox Code Playgroud)

如果你想用Azure CLI调用Microsoft Graph,我们可以使用命令az rest

例如(我使用Azure云shell

az rest --method POST --url 'https://graph.microsoft.com/v1.0/directoryObjects/getByIds' --headers 'Content-Type=application/json'  --body '{"ids":[""]}'
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

欲了解更多详情,请参阅此处此处

  • 谢谢。请注意,“--body”字符串必须转义引号,否则调用会失败。例如: `--body '{\"ids\":[\"087f593b-bedf-44d4-8732-96ab980f2b45\"]}'` 看起来没有办法使用 PowerShell 的本地实例进行相同的调用?即,不使用 Azure Cloud Shell?我发现使用 Azure cloud shell 编写长脚本相当不方便。 (5认同)