在PowerShell上使用Azure Active Directory进行身份验证

And*_*erd 7 powershell azure azure-powershell azure-active-directory

我正在尝试探索Azure Active Directory V2 PowerShell模块的功能

我有一个Azure帐户,我已经设置了一个包含多个用户的Active Directory.

我的第一个目标很简单:向我显示用户列表.

所以我键入:

Connect-AzureAD
Run Code Online (Sandbox Code Playgroud)

我看到一个对话框并输入我的用户帐户和密码.它返回类型的对象Microsoft.Open.Azure.AD.CommonLibrary.PSAzureContext.

然后我输入

Get-AzureADUser
Run Code Online (Sandbox Code Playgroud)

错误是:

Get-AzureADUser:执行GetUsers时发生错误

代码:Authentication_Unauthorized

消息:未找到用户

HttpStatusCode:禁止

我仍然可以使用Azure RM Powershell模块列出用户.以下代码有效:

Add-AzureRmAccount
Get-AzureRmADUser
Run Code Online (Sandbox Code Playgroud)

我该怎么办Get-AzureADUser才能上班?

Jas*_* Ye 19

cmdlet Connect-AzureAD建立与ADD domian的连接,在我们登录成功后,将显示以下确认:

PS C:\windows\system32> connect-azuread

Account                                Environment Tenant
-------                                ----------- ------
jasontest1@xxxxxx.onmicrosoft.com AzureCloud  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)

Get-AzureADDomain如果用户连接到具有管理权限的 AAD域,则可以使用此cmdlet 对连接进行身份验证 - 将显示有关域的信息:

PS C:\windows\system32> get-azureaddomain

Name                                        AvailabilityStatus AuthenticationType
----                                        ------------------ ------------------
hcl.com                                                        Managed
msgamestudios.com                                              Managed
foobar.local                                                   Managed
multimap.com                                                   Managed
skypestaytogether.com                                          Managed
insightsquarterly.com.au                                       Managed
calanit.onmicrosoft.com                                        Federated
msft.ccsctp.net                                                Managed
ruffiangames.com                                               Managed
xn--m1bg0b0byewac1j8b.com                                      Managed
VoicesforInnovation.org                                        Managed
shaanximic.com                                                 Managed
www.yunnanmic.com                                              Managed
wsmbela.pss.com                                                Managed
fornax.off                                                     Managed
api.staging.yammer.com                                         Managed
codenauts.net                                                  Managed
acompli.com                                                    Managed
testdomains.co                                                 Managed
microsoft.hr                                                   Managed
Bayportali.mmdservice.com                                      Managed
contoso.com                                                    Managed
api.swrepository.com                                           Managed
Equivio.com                                                    Managed
sunshine.am                                                    Managed
microsoftaffiliates.com                                        Managed
Run Code Online (Sandbox Code Playgroud)

如果用户没有管理员权限,我们将收到与您相同的错误.

Get-AzureADDomain : Error occurred while executing GetDomains
Code: Authentication_Unauthorized
Message: User was not found
HttpStatusCode: Forbidden
Run Code Online (Sandbox Code Playgroud)

原因是,cmdlet GetAzureADDomian没有指定租户,因此建立了与domian的连接,其中用户没有管理员权限.

要确保连接到预期的AAD domian,必须在调用cmdlet时指定租户IDConnect-AzureAD.

PS C:\windows\system32> Connect-AzureAD -TenantId
Run Code Online (Sandbox Code Playgroud)


Jag*_*ngh 7

正如这里已经回答的那样,请使用:

PS C:\windows\system32> Connect-AzureAD -TenantId {YOUR_TENANT_ID}
Example:
PS C:\windows\system32> Connect-AzureAD -TenantId ce1af0ab-ae35-4f60-8f2d-944444444444
Run Code Online (Sandbox Code Playgroud)

使用我们在执行时得到的 TenantId 是一个常见的错误Connect-AzureAd,如下所示:

在此处输入图片说明

但是使用TenantIdfrom Azure Portal --> Azure Active Directory --> Properties --> Directory Id.

Directory Id= TenantId