2

我正在尝试使用 Azure CLI 自动检测当前用户的 oid,以便对我的应用程序数据执行查询。如果我使用 command 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 的任何想法?

4

2 回答 2

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),点击 Run 运行安装包。

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

于 2016-05-04T02:19:52.957 回答
0

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

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

于 2016-04-29T07:26:14.010 回答