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

时间:2016-04-28 21:41:47

标签: azure active-directory 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

看看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

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

有关如何获取当前用户的对象ID的任何想法?

2 个答案:

答案 0 :(得分:2)

您可以通过powershell cmdlet获取当前用户的对象ID。

$msolcred = Get-Credential
Connect-MsolService -Credential $msolcred
$user = Get-MsolUser -UserPrincipalName peter.parker@outlook.com
($user).ObjectId

请注意,在运行上述powershell之前,您需要先从Microsoft下载中心安装Microsoft Online Services Sign-In Assistant for IT Professionals RTW。然后安装Azure Active Directory Module for Windows PowerShell (64-bit version),然后单击“运行”以运行安装程序包。

检查https://msdn.microsoft.com/en-us/library/azure/b7727a57-b002-4d84-a20c-3192b1d6b1b4#BKMK_ManageUsers以获取指导。

答案 1 :(得分:0)

我相信你不能。您正在考虑的Microsoft帐户身份验证是"消费者"一个,并且与Azure AD无关(至少是外部)。为了能够执行您要执行的操作,我认为,您可以尝试将计算机加入域或使用AAD凭据而不是Microsoft帐户对Azure进行身份验证。我强烈怀疑在您的问题中,您无法获得您所指的用户的OID(如果该帐户存在于MS帐户并且外部可用)。

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