Azure CLI:从用户名或电子邮件地址获取对象 ID

fer*_*olo 5 active-directory azure azure-active-directory azure-xplat-cli

我正在尝试使用 Azure CLI 自动检测当前用户的 oid,以便对我的应用程序数据执行查询。如果我使用命令account show,我会得到:

azure account show
info:    Executing command account show
data:    Name                        : Visual Studio Enterprise
data:    ID                          : 12345678-1234-1234-1234-123456789012
data:    State                       : Enabled
data:    Tenant ID                   : abcdef12-abcd-1234-abcd-1234abcd1234
data:    Is Default                  : true
data:    Environment                 : AzureCloud
data:    Has Certificate             : No
data:    Has Access Token            : Yes
data:    User name                   : peter.parker@outlook.com
data:
info:    account show command OK
Run Code Online (Sandbox Code Playgroud)

看着peter.parker@outlook.com。现在,如果我使用该命令ad user list,我会得到以下结果:

azure ad user list
info:    Executing command ad user list
\data:    Object Id:       9123abcd-ffee-dafa-d0fa-abacfede1234
data:    Principal Name:  peter_parker_outlook.com#EXT#@peter_parkeroutlook.onmicrosoft.com
data:    Display Name:    Peter Parker
data:    E-Mail:
data:
+
info:    ad user list command OK
Run Code Online (Sandbox Code Playgroud)

主要名称是peter_parker_outlook.com#EXT#@peter_parkeroutlook.onmicrosoft.com. 它不匹配。

知道如何获取当前用户的对象 id 吗?

Ale*_*kiy 0

我相信你不能。您所指的 Microsoft 帐户身份验证是“消费者”身份验证,与 Azure AD 没有任何关系(至少是外部的)。我认为,为了能够执行您想要执行的操作,您可以尝试将计算机加入域或使用 AAD 凭据(而不是 Microsoft 帐户)对 Azure 进行身份验证。我强烈怀疑没有办法获取您在问题中提到的用户的 OID(如果 MS 帐户中存在并且外部可用)。

因此,根据您的情况,尝试仅使用 AAD 用户,而不是 Microsoft 帐户。