Вы можете включить, отключить или получить статус мульти факторной аутентификации (MFA — Multi-Factor Authentication) для пользователей вашего тенната Azure/Microsoft 365 из Azure Portal, Microsoft 365 Admin Center или с помощью PowerShell. В этой статье мы покажем, как управлять MFA для аккаунтов пользователей в Azure и получать отчеты по второму фактору, использующемуся у пользователей.
Вы можете открыть веб-страницу со статусом MFA для всех пользователей, двумя способами:
- Microsoft 365 Admin Center -> Active Users -> Multi-factor authentication.
- Portal Azure -> Azure AD-> Users -> Per-user MFA
Перед вами появится список всех пользователей вашего тенанта и статус MFA для каждого из них. Для каждого пользователя статус MFA может быть:
- Disabled – мульти факторная аутентификация отключена (по-умолчанию для новых пользователей);
- Enabled – MFA включена, но пользователь все еще использует обычную аутентификацию, пока сам не настроит метод MFA;
- Enforced – при следующем входе пользователю будет принудительно предложено зарегистрировать второй фактор MFA.
Включить, отключить, сбросить, или настроить MFA для каждого пользователя можно с помощью кнопок в правой панели Quick Steps.
В этом отчете не получится определить, завершил ли пользователь настройку MFA и какой второй фактор используется пользователь. Также нельзя выгрузить содержимое страницы в txt/csv файл. Гораздо удобнее использовать PowerShell для управления MFA пользователей в Micorosft 365 и простого построения отчетов.
На данный момент вы можете включить/отключить или настроить MFA для пользователей Azure (Microsoft 365) из PowerShell с помощью модуля MSOnline или с помощь Microsoft Graph API.
Установите модуль MSOnline (если нужно) и подключитесь к своему тенанту:
Install-Module MSOnline
Connect-MsolService
Информация о статусе MFA для пользователя можно получить из атрибута StrongAuthenticationMethods:
Get-MsolUser –UserPrincipalName [email protected] | Select-Object UserPrincipalName,StrongAuthenticationMethods
Если атрибут StrongAuthenticationMethods не пустой, значит для пользователя включен MFA. Можно узнать какой тип MFA настроен для пользователя:
(Get-MsolUser –UserPrincipalName [email protected]). StrongAuthenticationMethods
На данном скриншоте видно, что у пользователя настроен второй фактор через приложение Microsoft Authenticator (PhoneAppNotification —
IsDefault=True
).
В качестве второго MFA фактора в современной проверке подлинности Microsoft для пользователей может использоваться один из четырёх вариантов проверки:
- OneWaySMS – стандартное СМС сообщение
- TwoWayVoiceMobile – одноразовый пароль передается сообщается звонком нателефону
- PhoneAppOTP – одноразовый пароль (6 цифр) через аппаратный токен или приложение Microsoft Authenticator
- PhoneAppNotification – аутентификация через приложение Microsoft Authenticator
Чтобы включить MFA для определённого пользователя:
$st = New-Object -TypeName Microsoft.Online.Administration.StrongAuthenticationRequirement
$st.RelyingParty = "*"
$st.State = "Enabled"
$sta = @($st)
Set-MsolUser -UserPrincipalName [email protected] -StrongAuthenticationRequirements $sta
Чтобы заставить пользователя принудительно перерегистрировать текущий метод MFA:
Set-MsolUser -UserPrincipalName [email protected] -StrongAuthenticationMethods @()
Отключить MFA для одного пользователя:
Get-MsolUser -UserPrincipalName [email protected]| Set-MsolUser -StrongAuthenticationRequirements @()
С помощью следующего скрипта PowerShell можно получить статус MFA для всех пользователей в тенанте Azure:
$Report = @()
$AzUsers = Get-MsolUser -All
ForEach ($AzUser in $AzUsers) {
$DefaultMFAMethod = ($AzUser.StrongAuthenticationMethods | ? { $_.IsDefault -eq "True" }).MethodType
$MFAState = $AzUser.StrongAuthenticationRequirements.State
if ($MFAState -eq $null) {$MFAState = "Disabled"}
$objReport = [PSCustomObject]@{
User = $AzUser.UserPrincipalName
MFAState = $MFAState
MFAPhone = $AzUser.StrongAuthenticationUserDetails.PhoneNumber
MFAMethod = $DefaultMFAMethod
}
$Report += $objReport
}
$Report
Вы можете выгрузить отчет по пользователям в CSV файл:
$Report| Export-CSV -NoTypeInformation -Encoding UTF8 c:\PS\AzureUsersMFA.csv
Или в таблицу Out-GridView:
$Report | Out-GridView
Скрипт доступен в моем GitHub репозитории https://github.com/winadm/posh/blob/master/Azure/GetMFAStateUsers.ps1