Настройка многофакторной проверки подлинности Microsoft Entra в качестве поставщика проверки подлинности с помощью AD FS
Сведения, приведенные в этой статье, относятся к Windows 2016 и более поздним версиям.
Если ваша организация федеративна с идентификатором Microsoft Entra, можно использовать многофакторную проверку подлинности Microsoft Entra для защиты ресурсов службы федерации Active Directory (AD FS) (AD FS), как локальных, так и в облаке. Многофакторная проверка подлинности Microsoft Entra позволяет устранять пароли и обеспечивать более безопасный способ проверки подлинности. С помощью AD FS можно настроить многофакторную проверку подлинности Microsoft Entra для первичной проверки подлинности или использовать ее в качестве дополнительного поставщика проверки подлинности.
В отличие от AD FS в Windows Server 2012 R2, адаптер многофакторной проверки подлинности Microsoft Entra Ad FS 2016 интегрируется непосредственно с идентификатором Microsoft Entra и не требует локального сервера Многофакторной идентификации Azure. Адаптер многофакторной проверки подлинности Microsoft Entra встроен в Windows Server 2016. Другая установка не требуется.
Регистрация пользователей для многофакторной проверки подлинности Microsoft Entra с помощью AD FS
AD FS не поддерживает встроенную регистрацию сведений о проверке подлинности многофакторной проверки подлинности Microsoft Entra, например на номере телефона или мобильном приложении. Без поддержки встроенного подтверждения пользователи должны получить подтверждение путем посещения https://account.activedirectory.windowsazure.com/Proofup.aspx , прежде чем использовать многофакторную проверку подлинности Microsoft Entra для проверки подлинности в приложениях AD FS. Если пользователь, еще не прошедший проверку подлинности в идентификаторе Microsoft Entra ID, пытается пройти проверку подлинности с помощью многофакторной проверки подлинности Microsoft Entra в AD FS, они получают ошибку AD FS. Администратор AD FS позволяет настроить эту ошибку, чтобы пользователь перенаправлял пользователя на страницу проверки правописания. Это сообщение можно создать с помощью onload.js настройки для обнаружения строки сообщения об ошибке на странице AD FS. Затем вы можете отобразить новое сообщение, чтобы направить пользователя, https://aka.ms/mfasetup чтобы он смог повторно выполнить проверку подлинности. Дополнительные сведения см. в разделе "Настройка веб-страницы AD FS", чтобы помочь пользователям зарегистрировать методы проверки MFA.
Примечание.
До этого обновления пользователи должны были пройти проверку подлинности с помощью многофакторной проверки подлинности Microsoft Entra для регистрации.https://account.activedirectory.windowsazure.com/Proofup.aspx В этом обновлении пользователь AD FS, который еще не зарегистрировал сведения о многофакторной проверке подлинности Microsoft Entra, может получить доступ к странице проверки правописания Azure, используя ярлык https://aka.ms/mfasetup только для первичной проверки подлинности, например встроенную проверку подлинности Windows или имя пользователя и пароль на веб-страницах AD FS. Если у пользователя нет методов проверки, идентификатор Microsoft Entra выполняет встроенную регистрацию. Пользователь увидит сообщение "Администратор должен настроить эту учетную запись для дополнительной проверки безопасности". Затем пользователь выбирает его сейчас. Пользователям, у которых уже настроен хотя бы один метод проверки подлинности, будет предложено предоставить многофакторную проверку подлинности (MFA) при посещении страницы проверки подлинности.
Рекомендуемые топологии развертывания
В этом разделе рассматривается использование многофакторной проверки подлинности Microsoft Entra в качестве основного метода проверки подлинности с AD FS и многофакторной проверки подлинности Microsoft Entra для Office 365.
Многофакторная проверка подлинности Microsoft Entra в качестве основной проверки подлинности
Существует несколько отличных причин использовать многофакторную проверку подлинности Microsoft Entra в качестве основной проверки подлинности с AD FS:
- Это позволяет избежать паролей для входа в Идентификатор Microsoft Entra, Office 365 и другие приложения AD FS.
- Он защищает вход на основе пароля, требуя другого фактора, например кода проверки перед паролем.
Кроме того, может потребоваться использовать многофакторную проверку подлинности Microsoft Entra в качестве основного метода проверки подлинности и условного доступа Microsoft Entra, включая true MFA, запрашивая дополнительные факторы. Чтобы использовать многофакторную проверку подлинности Microsoft Entra в локальной среде, можно настроить параметр домена Microsoft Entra, установив для $true
параметра SupportsMfa
значение . В этой конфигурации идентификатор Microsoft Entra может предложить AD FS выполнить дополнительную проверку подлинности или "true MFA" для сценариев условного доступа, требующих его.
Любой пользователь AD FS, который не зарегистрирован (еще не настроены сведения о проверке MFA), должен быть предложено настроить сведения о проверке. Чтобы запрашивать незарегистрированных пользователей, можно использовать настраиваемую страницу ошибок AD FS для направления пользователей в https://aka.ms/mfasetup сведения о проверке и настройки сведений о проверке. После настройки пользователь может повторно выполнить вход AD FS.
Многофакторная проверка подлинности Microsoft Entra в качестве основной проверки подлинности считается одним фактором. После первоначальной настройки пользователям необходимо предоставить другой фактор для управления или обновления сведений о проверке в идентификаторе Microsoft Entra или доступа к другим ресурсам, которым требуется MFA.
Примечание.
При использовании AD FS 2019 необходимо внести изменения в тип утверждения привязки для доверия поставщика утверждений Active Directory и изменить его с windowsaccountname
имени участника-пользователя (UPN). Выполните приведенный ниже командлет PowerShell. Это не влияет на внутреннее функционирование фермы AD FS. Возможно, несколько пользователей могут повторно запрашивать учетные данные после внесения этого изменения. После повторного входа конечные пользователи не увидят разницы.
Set-AdfsClaimsProviderTrust -AnchorClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" -TargetName "Active Directory"
Многофакторная проверка подлинности Microsoft Entra в качестве дополнительной проверки подлинности в Office 365
Адаптер многофакторной проверки подлинности Microsoft Entra для AD FS позволяет пользователям выполнять MFA в AD FS. Чтобы защитить ресурс Microsoft Entra, необходимо выполнить многофакторную проверку подлинности с помощью политики условного доступа. Необходимо также задать для параметра SupportsMfa
$true
домена значение и выпустить утверждение multipleauthn, когда пользователь успешно выполняет двухфакторную проверку подлинности.
Как описано ранее, любой пользователь AD FS, который не зарегистрирован (еще не настроена информация о проверке MFA), должен быть предложено настроить сведения о проверке. Чтобы запрашивать незарегистрированных пользователей, можно использовать настраиваемую страницу ошибок AD FS для направления пользователей в https://aka.ms/mfasetup сведения о проверке и настройки сведений о проверке. После настройки пользователь может повторно выполнить вход AD FS.
Необходимые компоненты
При использовании многофакторной проверки подлинности Microsoft Entra для проверки подлинности с ad FS требуются следующие предварительные требования:
- Подписка Azure с идентификатором Microsoft Entra.
- Многофакторная проверка подлинности Microsoft Entra.
Примечание.
Идентификатор Microsoft Entra и многофакторная проверка подлинности Microsoft Entra включены в Microsoft Entra ID P1 или P2 и Enterprise Mobility Suite (EMS). Если у вас есть одно из этих приложений, вам не нужна отдельная подписка.
- Локальная среда Windows Server 2016 AD FS.
- Сервер должен иметь возможность взаимодействовать со следующими URL-адресами через порт 443.
https://adnotifications.windowsazure.com
https://login.microsoftonline.com
- Сервер должен иметь возможность взаимодействовать со следующими URL-адресами через порт 443.
- Локальная среда должна быть федеративной с идентификатором Microsoft Entra.
- Модуль Microsoft Azure Active Directory для Windows PowerShell.
- Разрешения глобального администратора для экземпляра идентификатора Microsoft Entra, чтобы настроить его с помощью Azure AD PowerShell.
- Учетные данные администратора предприятия для настройки фермы AD FS для многофакторной проверки подлинности Microsoft Entra.
Примечание.
Модули Azure AD и MSOnline PowerShell устарели с 30 марта 2024 г. Дополнительные сведения см. в обновлении об отмене. После этой даты поддержка этих модулей ограничена поддержкой миграции в пакет SDK Для Microsoft Graph PowerShell и исправления безопасности. Устаревшие модули будут продолжать функционировать до 30 марта 2025 года.
Рекомендуется перенести в Microsoft Graph PowerShell для взаимодействия с идентификатором Microsoft Entra (ранее — Azure AD). Часто задаваемые вопросы о миграции см. в разделе "Вопросы и ответы о миграции". Примечание. Версии 1.0.x MSOnline могут возникнуть сбоем после 30 июня 2024 г.
Настройка серверов AD FS
Чтобы завершить настройку многофакторной проверки подлинности Microsoft Entra для AD FS, необходимо настроить каждый сервер AD FS, выполнив описанные здесь действия.
Примечание.
Убедитесь, что эти действия выполняются на всех серверах AD FS в ферме. Если у вас несколько серверов AD FS в ферме, вы можете выполнить необходимую настройку удаленно с помощью Azure AD PowerShell.
Шаг 1. Создание сертификата для многофакторной проверки подлинности Microsoft Entra на каждом сервере AD FS
Первое, что необходимо сделать, — использовать New-AdfsAzureMfaTenantCertificate
команду PowerShell для создания сертификата для многофакторной проверки подлинности Microsoft Entra. После создания сертификата найдите его в хранилище сертификатов локальных компьютеров. Сертификат помечается именем субъекта, содержащим идентификатор клиента для каталога Microsoft Entra.
Идентификатор клиента — это имя каталога в идентификаторе Microsoft Entra. Чтобы создать новый сертификат, используйте следующий командлет PowerShell:
$certbase64 = New-AdfsAzureMfaTenantCertificate -TenantID <tenantID>
Шаг 2. Добавление новых учетных данных в субъект-службу многофакторной проверки подлинности Azure
Чтобы серверы AD FS могли взаимодействовать с клиентом многофакторной проверки подлинности Azure, необходимо добавить учетные данные в субъект-службу для клиента многофакторной проверки подлинности Azure. Сертификаты, созданные с помощью командлета New-AdfsAzureMFaTenantCertificate, служат этими учетными данными. Откройте PowerShell и выполните следующие действия, чтобы добавить новые учетные данные в субъект-службу клиента многофакторной проверки подлинности Azure.
Шаг 3. Установка сертификата в качестве новых учетных данных для клиента многофакторной проверки подлинности Azure
Примечание.
Чтобы выполнить этот шаг, необходимо подключиться к экземпляру идентификатора Microsoft Entra с помощью Connect-MgGraph
Microsoft Graph PowerShell. В этих шагах предполагается, что вы уже подключились через PowerShell.
Connect-MgGraph -Scopes 'Application.ReadWrite.All'
$servicePrincipalId = (Get-MgServicePrincipal -Filter "appid eq '981f26a1-7f43-403b-a875-f8b09b8cd720'").Id
$keyCredentials = (Get-MgServicePrincipal -Filter "appid eq '981f26a1-7f43-403b-a875-f8b09b8cd720'").KeyCredentials
$certX509 = [System.Security.Cryptography.X509Certificates.X509Certificate2]([System.Convert]::FromBase64String($certBase64))
$newKey = @(@{
CustomKeyIdentifier = $null
DisplayName = $certX509.Subject
EndDateTime = $null
Key = $certX509.GetRawCertData()
KeyId = [guid]::NewGuid()
StartDateTime = $null
Type = "AsymmetricX509Cert"
Usage = "Verify"
AdditionalProperties = $null
})
$keyCredentials += $newKey
Update-MgServicePrincipal -ServicePrincipalId $servicePrincipalId -KeyCredentials $keyCredentials
Внимание
Эта команда должна выполняться на всех серверах AD FS в ферме. Многофакторная проверка подлинности Microsoft Entra завершится ошибкой на серверах, которые не установили сертификат в качестве новых учетных данных для клиента многофакторной проверки подлинности Azure.
Примечание.
981f26a1-7f43-403b-a875-f8b09b8cd720 — это GUID для клиента многофакторной проверки подлинности Azure.
Настройка фермы AD FS
После выполнения действий, описанных в предыдущем разделе для каждого сервера AD FS, задайте сведения о клиенте Azure с помощью командлета Set-AdfsAzureMfaTenant . Этот командлет необходимо выполнить только один раз для фермы AD FS.
Откройте PowerShell и введите собственный идентификатор клиента с помощью командлета Set-AdfsAzureMfaTenant
. Для клиентов, использующих облако Microsoft Azure для государственных организаций, добавьте -Environment USGov
параметр:
Примечание.
Чтобы эти изменения вступили в силу, необходимо перезапустить службу AD FS на каждом сервере в ферме. Чтобы обеспечить минимальное влияние, возьмите каждый сервер AD FS из поворота NLB по одному за раз и дождитесь очистки всех подключений.
Set-AdfsAzureMfaTenant -TenantId <tenant ID> -ClientId 981f26a1-7f43-403b-a875-f8b09b8cd720
Windows Server без последнего пакета обновления не поддерживает -Environment
параметр для командлета Set-AdfsAzureMfaTenant
. Если вы используете Azure для государственных организаций облако и предыдущие шаги не удалось настроить клиент Azure из-за отсутствующих -Environment
параметров, выполните следующие действия, чтобы вручную создать записи реестра. Пропустите эти действия, если предыдущий командлет правильно зарегистрировал сведения о клиенте или если вы не в облаке Azure для государственных организаций:
Откройте редактор реестра на сервере AD FS.
Перейдите к HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ADFS. Создайте следующие значения раздела реестра:
Раздел реестра Значение SasUrl https://adnotifications.windowsazure.us/StrongAuthenticationService.svc/Connector
StsUrl https://login.microsoftonline.us
ResourceUri https://adnotifications.windowsazure.us/StrongAuthenticationService.svc/Connector
Перезапустите службу AD FS на каждом сервере фермы, прежде чем эти изменения вступили в силу. Чтобы уменьшить влияние на системы, примите каждый сервер AD FS из поворота NLB по одному за раз и дождитесь очистки всех подключений.
На этом шаге вы увидите, что многофакторная проверка подлинности Microsoft Entra доступна в качестве основного метода проверки подлинности для использования интрасети и экстрасети.
Если вы хотите использовать многофакторную проверку подлинности Microsoft Entra в качестве дополнительного метода проверки подлинности, в поле "Изменить методы проверки подлинности" выберите вкладку многофакторной (дополнительная вкладка в AD FS 2019) и убедитесь, что она включена. В противном случае могут появиться сообщения об ошибках, например "Недопустимый надежный метод проверки подлинности не найден. Обратитесь к администратору, чтобы настроить и включить соответствующий поставщик строгой проверки подлинности".
Продление сертификатов многофакторной проверки подлинности Microsoft Entra и управление ими
Ниже приведено руководство по управлению сертификатами многофакторной проверки подлинности Microsoft Entra на серверах AD FS.
По умолчанию при настройке AD FS с многофакторной проверкой подлинности Microsoft Entra сертификаты, созданные с помощью командлета New-AdfsAzureMfaTenantCertificate
PowerShell, действительны в течение двух лет. Чтобы определить, как близко к истечению срока действия сертификатов, а также продлить и установить новые сертификаты, используйте следующую процедуру.
Оценка срока действия сертификата многофакторной проверки подлинности Microsoft Entra AD FS.
На каждом сервере AD FS на локальном компьютере My store есть самозаверяющий сертификат с помощью многофакторной проверки подлинности Microsoft AD FS Microsoft Entra в области издателя и субъекта. Этот сертификат является сертификатом многофакторной проверки подлинности Microsoft Entra. Проверьте срок действия этого сертификата на каждом сервере AD FS, чтобы определить дату истечения срока.
Создайте новый сертификат многофакторной проверки подлинности Microsoft Entra AD FS на каждом сервере AD FS.
Если срок действия сертификатов приближается к концу, запустите процесс продления, создав новый многофакторный сертификат проверки подлинности Microsoft Entra на каждом сервере AD FS. В PowerShell создайте новый сертификат на каждом сервере AD FS с помощью следующего командлета:
Внимание
Если срок действия сертификата уже истек, не добавьте
-Renew $true
параметр в следующую команду. В этом сценарии существующий сертификат с истекшим сроком действия заменяется новым, а не остается на месте и создается дополнительный сертификат.$newcert = New-AdfsAzureMfaTenantCertificate -TenantId <tenant id such as contoso.onmicrosoft.com> -Renew $true
Если срок действия сертификата еще не истек, команда создает новый сертификат, действительный с двух дней после текущего дня до двух лет плюс два дня в будущем. Операции многофакторной проверки подлинности AD FS и Microsoft Entra не затрагиваются при выполнении командлета или возобновлении сертификата. Двухдневная задержка является преднамеренной и предоставляет время, чтобы выполнить следующие действия, чтобы настроить новый сертификат в клиенте, прежде чем AD FS начнет использовать его для многофакторной проверки подлинности Microsoft Entra.
Настройте каждый новый сертификат многофакторной проверки подлинности Microsoft Entra AD FS в клиенте Microsoft Entra.
Примечание.
Чтобы выполнить этот шаг, необходимо подключиться к экземпляру идентификатора Microsoft Entra с помощью
Connect-MgGraph
Microsoft Graph PowerShell. В этих шагах предполагается, что вы уже подключились через PowerShell.Connect-MgGraph -Scopes 'Application.ReadWrite.All' $servicePrincipalId = (Get-MgServicePrincipal -Filter "appid eq '981f26a1-7f43-403b-a875-f8b09b8cd720'").Id $keyCredentials = (Get-MgServicePrincipal -Filter "appid eq '981f26a1-7f43-403b-a875-f8b09b8cd720'").KeyCredentials $certX509 = [System.Security.Cryptography.X509Certificates.X509Certificate2]([System.Convert]::FromBase64String($newcert)) $newKey = @(@{ CustomKeyIdentifier = $null DisplayName = $certX509.Subject EndDateTime = $null Key = $certX509.GetRawCertData() KeyId = [guid]::NewGuid() StartDateTime = $null Type = "AsymmetricX509Cert" Usage = "Verify" AdditionalProperties = $null }) $keyCredentials += $newKey Update-MgServicePrincipal -ServicePrincipalId $servicePrincipalId -KeyCredentials $keyCredentials
Если срок действия предыдущего сертификата истек, перезапустите службу AD FS, чтобы получить новый сертификат. Вам не нужно перезапускать службу AD FS, если вы обновили сертификат до истечения срока его действия.
Убедитесь, что для многофакторной проверки подлинности Microsoft Entra используется новый сертификат.
После того как новые сертификаты станут действительными, AD FS будет собирать их и использовать каждый соответствующий сертификат для многофакторной проверки подлинности Microsoft Entra в течение нескольких часов до одного дня. После использования новых сертификатов AD FS на каждом сервере вы увидите событие, вошедшее в журнал событий администратора AD FS со следующими сведениями:
Log Name: AD FS/Admin
Source: AD FS
Date: 2/27/2018 7:33:31 PM
Event ID: 547
Task Category: None
Level: Information
Keywords: AD FS
User: DOMAIN\adfssvc
Computer: ADFS.domain.contoso.com
Description:
The tenant certificate for Azure MFA has been renewed.
TenantId: contoso.onmicrosoft.com.
Old thumbprint: 7CC103D60967318A11D8C51C289EF85214D9FC63.
Old expiration date: 9/15/2019 9:43:17 PM.
New thumbprint: 8110D7415744C9D4D5A4A6309499F7B48B5F3CCF.
New expiration date: 2/27/2020 2:16:07 AM.
Настройка веб-страницы AD FS для регистрации методов проверки MFA
Используйте следующие примеры, чтобы настроить веб-страницы AD FS для пользователей, которые еще не были проверены (настроены сведения о проверке MFA).
Поиск ошибки
Во-первых, AD FS возвращает несколько различных сообщений об ошибках, когда пользователю не хватает сведений о проверке. Если вы используете многофакторную проверку подлинности Microsoft Entra в качестве основной проверки подлинности, незащищенный пользователь увидит страницу ошибки AD FS со следующими сообщениями:
<div id="errorArea">
<div id="openingMessage" class="groupMargin bigText">
An error occurred
</div>
<div id="errorMessage" class="groupMargin">
Authentication attempt failed. Select a different sign in option or close the web browser and sign in again. Contact your administrator for more information.
</div>
При попытке проверки подлинности идентификатора Microsoft Entra в качестве дополнительной проверки подлинности незащищенный пользователь видит страницу ошибки AD FS со следующими сообщениями:
<div id='mfaGreetingDescription' class='groupMargin'>For security reasons, we require additional information to verify your account ([email protected])</div>
<div id="errorArea">
<div id="openingMessage" class="groupMargin bigText">
An error occurred
</div>
<div id="errorMessage" class="groupMargin">
The selected authentication method is not available for '[email protected]'. Choose another authentication method or contact your system administrator for details.
</div>
Перехват ошибки и обновление текста страницы
Чтобы поймать ошибку и показать пользовательское руководство пользователя, добавьте JavaScript в конец onload.js
файла, который является частью веб-темы AD FS. Это позволяет:
- Найдите определяющие строки ошибок.
- Предоставьте пользовательское веб-содержимое.
Примечание.
Общие сведения о настройке файла onload.js см. в статье "Расширенная настройка страниц входа AD FS".
Ниже приведен простой пример.
Откройте Windows PowerShell на основном сервере AD FS и создайте новую веб-тему AD FS, выполнив следующую команду.
New-AdfsWebTheme –Name ProofUp –SourceName default
Создайте папку и экспортируйте веб-тему AD FS по умолчанию.
New-Item -Path 'C:\Theme' -ItemType Directory;Export-AdfsWebTheme –Name default –DirectoryPath C:\Theme
Откройте файл C:\Theme\script\onload.js в текстовом редакторе.
Добавьте следующий код в конец файла onload.js:
//Custom Code //Customize MFA exception //Begin var domain_hint = "<YOUR_DOMAIN_NAME_HERE>"; var mfaSecondFactorErr = "The selected authentication method is not available for"; var mfaProofupMessage = "You will be automatically redirected in 5 seconds to set up your account for additional security verification. After you've completed the setup, please return to the application you are attempting to access.<br><br>If you are not redirected automatically, please click <a href='{0}'>here</a>." var authArea = document.getElementById("authArea"); if (authArea) { var errorMessage = document.getElementById("errorMessage"); if (errorMessage) { if (errorMessage.innerHTML.indexOf(mfaSecondFactorErr) >= 0) { //Hide the error message var openingMessage = document.getElementById("openingMessage"); if (openingMessage) { openingMessage.style.display = 'none' } var errorDetailsLink = document.getElementById("errorDetailsLink"); if (errorDetailsLink) { errorDetailsLink.style.display = 'none' } //Provide a message and redirect to Azure AD MFA Registration Url var mfaRegisterUrl = "https://account.activedirectory.windowsazure.com/proofup.aspx?proofup=1&whr=" + domain_hint; errorMessage.innerHTML = "<br>" + mfaProofupMessage.replace("{0}", mfaRegisterUrl); window.setTimeout(function () { window.location.href = mfaRegisterUrl; }, 5000); } } } //End Customize MFA Exception //End Custom Code
Внимание
Чтобы использовать доменное имя, необходимо изменить "<YOUR_DOMAIN_NAME_HERE>". Например:
var domain_hint = "contoso.com";
.Сохраните файл onload.js.
Импортируйте файл onload.js в настраиваемую тему, введя следующую команду Windows PowerShell:
Set-AdfsWebTheme -TargetName ProofUp -AdditionalFileResource @{Uri='/adfs/portal/script/onload.js';path="c:\theme\script\onload.js"}
Примените настраиваемую веб-тему AD FS, введя следующую команду Windows PowerShell:
Set-AdfsWebConfig -ActiveThemeName "ProofUp"