Как включить или отключить MFA для пользователей Azure/Microsoft 365?

Вы можете включить, отключить или получить статус мульти факторной аутентификации (MFA — Multi-Factor Authentication) для пользователей вашего тенната Azure/Microsoft 365 из Azure Portal, Microsoft 365 Admin Center или с помощью PowerShell. В этой статье мы покажем, как управлять MFA для аккаунтов пользователей в Azure и получать отчеты по второму фактору, использующемуся у пользователей.

В этой статье мы подразумеваем, что вы управляете MFA для каждого пользователя отдельно (per-user), а не на основе Azure Conditional Access.

Вы можете открыть веб-страницу со статусом MFA для всех пользователей, двумя способами:

  • Microsoft 365 Admin Center -> Active Users -> Multi-factor authentication.
  • Portal Azure -> Azure AD-> Users -> Per-user MFA

microsoft 365 admin center настройка мультифкаторной аутентфикации

Перед вами появится список всех пользователей вашего тенанта и статус MFA для каждого из них. Для каждого пользователя статус MFA может быть:

  • Disabled – мульти факторная аутентификация отключена (по-умолчанию для новых пользователей);
  • Enabled – MFA включена, но пользователь все еще использует обычную аутентификацию, пока сам не настроит метод MFA;
  • Enforced – при следующем входе пользователю будет принудительно предложено зарегистрировать второй фактор MFA.

включить / отключить MFA пользователям Azure

Включить, отключить, сбросить, или настроить MFA для каждого пользователя можно с помощью кнопок в правой панели Quick Step s.

В этом отчете не получится определить, завершил ли пользователь настройку MFA и какой второй фактор используется пользователь. Также нельзя выгрузить содержимое страницы в txt/csv файл. Гораздо удобнее использовать PowerShell для управления MFA пользователей в Micorosft 365 и простого построения отчетов.

На данный момент вы можете включить/отключить или настроить MFA для пользователей Azure (Microsoft 365) из PowerShell с помощью модуля MSOnline или с помощь Microsoft Graph API .

На данный момент нельзя управлять MFA через более новый модуль AzureAD .

Установите модуль 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 ).

powershell проверить какой тип MFA настроен у пользователя

В качестве второго 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:PSAzureUsersMFA.csv

Или в таблицу Out-GridView :

$Report | Out-GridView

Получить CSV отчет по настроенным факторам MFA для пользователей в Microsoft 365 Azure

Скрипт доступен в моем GitHub репозитории https://github.com/winadm/posh/blob/master/Azure/GetMFAStateUsers.ps1

EnglishRussianUkrainian