Подключение к Azure AD с помощью PowerShell

В этой статье мы рассмотрим, как установить PowerShell модуль для подключения к Azure AD, подключится к своему тенанту и получить различную информацию из Azure. Сейчас Microsoft разрешает использовать два PowerShell модуля для подключения к Azure:

  • MS Online (MSOnline) – старый модуль для работы с Azure/Office 365 из PowerShell, который появился около 6 лет назад и сейчас не развивается Microsoft;
  • Azure Active Directory PowerShell for Graph (AzureAD) – современный PowerShell модуль для работы с инфраструктурой Azure. Модуль активно развивается, в него добавляется новый функционал (в нем доступны почти все аналоги командлетов MSOnline за небольшим исключением)

Модуль Azure PowerShell требует, чтобы на компьютере была установлена версия PowerShell не ниже 5.0:

$PSVersionTable.PSVersion

определить версию powershell

Если необходимо, обновите версию PowerShell на своем компьютере.

Теперь можно установить модуль Azure PowerShell из PowerShell Gallery. Запустите консоль PowerShell с правами администратора и выполните команду:

Install-Module -Name AzureAD

Появится сообщение:

Untrusted repository. You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet.

Нажмите Y -> Enter

Вы можете добавить галерею PowerShell в доверенные хосты с помощью команды:

Set-PSRepository -Name PSGallery -InstallationPolicy Trusted

установка модуля AzureAD

После окончания установки, можно проверить версию модуля AzureAD:

Get-Module AzureAD –ListAvailable

В нашем случае это 2.0.2.130

проверка версии модуля фягкуфв

В этой версии модуля AzureAD доступно 222 командлета, которые содержат в названии *-AzureAD*. Список доступных команды можно вывести так:

Get-Command –Module AzureAD

командлеты в модуле AzureAD

Если у вас установлена более старая версия модуля AzureAD, ее можно обновить:

Update-Module -Name AzureAD

Если нужно установить определенную версию модуля, выполните:

Update-Module -Name AzureAD -RequiredVersion 2.0.2.120

Теперь можно подключиться в Azure с помощью вашего аккаунта:

Connect-AzureAD

Командлет запросит ввести учетные данные, которые вы хотите использовать для доступа к каталогу AzureAD. В этом примере для доступа к моему тенанту я использую учетную запись [email protected] .

Connect-AzureAD подключение к azuread из powershell

Если у вас включен Azure MFA, подтвердите в вход в аккаунт на устройстве.

Также можно запросить имя и пароль для подключения и сохранить их в переменную:

$AzureADcreds = Get-Credential

И затем использовать их для подключения:

Connect-AzureAD -Credential $AzureADcreds

Вы можете использовать сохраненный пароль во внешнем хранилище с помощью PowerShell модуля SecretManagement (поддерживаются почти все популярные vault провайдеры: Bitwarden, Azure Key Vault, KeePass, LastPass, HashiCorp Vault, Windows Credential Manager и т.д). Для подключения к Azure AD с паролем из хранилища используется такая команда PowerShell:

Connect-AzureAD -Credential (Get-Secret -Vault MyPersonalVault -Name azadm_kbuldogov)

Командлет возвращает подтверждение, показывающее, что сеанс был успешно подключен к каталогу. В строке будет указано окружение AzureCloud, TenantID и TenantDomain.

AzureCloud, TenantID и TenantDomain

Для подключения к некоторым специализированным облакам AzureOffice 365 нужно указывать параметр -AzureEnvironmentName.

Connect-AzureAD -AzureEnvironmentName AzureChinaCloud
Connect-AzureAD -AzureEnvironmentName AzureGermanyCloud
Connect-AzureAD -AzureEnvironmentName AzureUSGovernment

По умолчанию модуль подключается к облаку Worldwide.

Информацию о текущем тенанте Azure можно вывести так:

Get-AzureADTenantDetail

Get-AzureADTenantDetail вывести информцию о своем тенанте azure

Теперь вы можете использовать командлеты модуля AzureAD для получения различной информации из домена. Найдем пользователей, чьи имена начинаются с Dmit:

get-azureaduser -SearchString Dmit

get-azureaduser

Или список облачных групп в AzureAD:

Get-AzureADGroup

Get-AzureADGroup

Чтобы получить список доступных лицензий, которые доступны в вашей подписке Office 365 используется командлет:

Get-AzureADSubscribedSku | select SkuPartNumber, ConsumedUnits

Get-AzureADSubscribedSku - доступные лицензии azure

Можно определить, какая лицензия назначена определенному аккаунту:

Get-AzureADUser -SearchString [email protected] | Select -ExpandProperty AssignedLicenses

Затем по полученному SkuID можно узнать имя лицензии:

Get-AzureADSubscribedSku | Where {$_.SkuId -eq "6123434-b223-4332-babcd-1e9231231235"}

Подрообнее про управление лицензиями в Azure AD через PowerShell рассказано в статье .

azure проверить какая лицензия назначена пользователю

Чтобы в сессии PowerShell отключится от Azure, выполните:

Disconnect-AzureAD

EnglishRussianUkrainian