使用应用程序密码获取AD用户列表的方法

时间:2019-08-02 20:20:11

标签: azure powershell azure-active-directory

在一个应用程序中,我当前正在使用PowerShell和MSOnline模块(Connect-MsolService和Get-MsolUser)来获取AD用户列表。全局管理员提供他的用户名和密码,应用程序可以获取该租户下所有用户的列表。

那很好,只要密码不是应用程序密码即可。使用应用程序密码后,全局管理员将看到以下内容:

Authentication Error: Bad username or password

我的问题是:是否还有其他方法可以使用PowerShell,但不一定要使用PowerShell来获取AD中的用户列表,但是该方法可以与应用程序密码一起使用?我知道Graph API,但现在不适合该项目。

1 个答案:

答案 0 :(得分:2)

如果我对您的理解正确,那么您想使用AD App及其密码(秘密)列出用户。

您可以使用Az powershell模块执行此操作,使用服务主体登录并通过Get-AzADUser列出用户。另外,请确保您的AD App(服务主体)具有管理员角色,例如User administratorGlobal administrator

$azureAplicationId ="<AD App Application id>"
$azureTenantId= "<tenant id>"
$azurePassword = ConvertTo-SecureString "<password>" -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential($azureAplicationId , $azurePassword)
Connect-AzAccount -Credential $psCred -TenantId $azureTenantId  -ServicePrincipal

Get-AzADUser 

enter image description here

更新

当前,不支持使用启用了MFA的用户的应用密码来连接MSOL powershell,有关更多详细信息,请参见此link

  

不支持应用密码,只需使用不带任何参数的Connect-MsolService即可触发ADAL对话框并照常完成2FA挑战。