Поддержка нескольких доменов для федеративного подключения с идентификатором Microsoft Entra
В следующей документации приведены инструкции по использованию нескольких доменов верхнего уровня и поддоменов при федеративных доменах Microsoft 365 или Microsoft Entra.
Поддержка нескольких доменов верхнего уровня
Для федерации нескольких доменов верхнего уровня с идентификатором Microsoft Entra ID требуется дополнительная конфигурация, которая не требуется при федеративном использовании одного домена верхнего уровня.
Когда домен федеративно связан с Microsoft Entra ID, в Azure задаются несколько свойств для этого домена. Важным из них является свойство IssuerUri. Это свойство является универсальным кодом ресурса (URI), который используется идентификатором Microsoft Entra для идентификации домена, с которым связан маркер. URI не должен сопоставляться с чем-либо, но обязан быть действительным. По умолчанию Microsoft Entra ID устанавливает URI на значение идентификатора службы федерации в конфигурации локального AD FS.
Примечание.
Идентификатор службы федерации — это URI, который уникально идентифицирует службу федерации. Служба федерации — это экземпляр AD FS, который работает как служба токенов безопасности.
Для просмотра IssuerUri можно воспользоваться командой PowerShell Get-MsolDomainFederationSettings -DomainName <your domain>
.
Примечание.
Модули Azure AD и MSOnline PowerShell устарели с 30 марта 2024 г. Дополнительные сведения см. в обновлении об отмене. После этой даты поддержка этих модулей ограничена поддержкой миграции в пакет SDK Для Microsoft Graph PowerShell и исправления безопасности. Устаревшие модули будут продолжать функционировать до 30 марта 2025 года.
Рекомендуем перейти на Microsoft Graph PowerShell для взаимодействия с Microsoft Entra ID (ранее — Azure AD). Часто задаваемые вопросы о миграции см. в разделе "Вопросы и ответы о миграции". Примечание: Версии 1.0.x MSOnline могут испытывать перебои после 30 июня 2024 г.
Проблема возникает при добавлении нескольких доменов верхнего уровня. Например, предположим, что вы настроили федерацию между идентификатором Microsoft Entra и локальной средой. В этом документе используется домен bmcontoso.com. Теперь добавляется второй домен верхнего уровня, bmfabrikam.com.
Пр попытке преобразовать домен bmfabrikam.com в федеративный домен происходит ошибка. Причина заключается в том, что идентификатор Microsoft Entra имеет ограничение, которое не позволяет свойству IssuerUri иметь одно и то же значение для нескольких доменов.
Параметр SupportMultipleDomain
Чтобы обойти это ограничение, необходимо добавить другой IssuerUri. Это можно сделать с помощью параметра -SupportMultipleDomain
. Этот параметр используется со следующими командлетами:
New-MsolFederatedDomain
Convert-MsolDomaintoFederated
Update-MsolFederatedDomain
Этот параметр заставляет Microsoft Entra ID настроить IssuerUri таким образом, что он основывается на имени домена. IssuerUri будет уникальным во всех каталогах Microsoft Entra ID. Использование параметра позволяет успешно выполнить команду PowerShell.
-SupportMultipleDomain
не изменяет другие конечные точки, которые по-прежнему настроены для указания службы федерации на adfs.bmcontoso.com.
-SupportMultipleDomain
также гарантирует, что система AD FS включает правильное значение издателя в токенах, выданных для Microsoft Entra ID. Это значение устанавливается посредством использования доменной части Уникального Имени Пользователя (UPN) в качестве домена в IssuerUri, то есть https://{upn suffix}/adfs/services/trust
.
Таким образом, во время аутентификации с Microsoft Entra ID или Microsoft 365, элемент IssuerUri в токене пользователя используется для поиска домена в Microsoft Entra ID. Если совпадение не удается найти, проверка подлинности завершается ошибкой.
Например, если UPN пользователя — bsimon@bmcontoso.com, элемент IssuerUri в токене, выпускаемом AD FS, установлен в значение http://bmcontoso.com/adfs/services/trust
. Этот элемент соответствует конфигурации Microsoft Entra, а проверка подлинности выполнена успешно.
Следующее настраиваемое правило утверждения реализует эту логику:
c:[Type == "http://schemas.xmlsoap.org/claims/UPN"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, ".+@(?<domain>.+)", "http://${domain}/adfs/services/trust/"));
Внимание
Чтобы использовать параметр -SupportMultipleDomain при попытке добавить новые или преобразовать существующие домены, ваше федеративное доверие должно быть заранее настроено для поддержки этих доменов.
Обновление доверия между AD FS и идентификатором Microsoft Entra
Если вы не настроили федеративное доверие между AD FS и экземпляром идентификатора Microsoft Entra, может потребоваться повторно создать это доверие. Причина заключается в том, что при первоначальной настройке без -SupportMultipleDomain
параметра значение IssuerUri устанавливается со значением по умолчанию. На снимке экрана ниже вы увидите, что для IssuerUri задано значение https://adfs.bmcontoso.com/adfs/services/trust
.
Если вы успешно добавили новый домен в Центре администрирования Microsoft Entra, а затем попытаетесь преобразовать его с помощью Convert-MsolDomaintoFederated -DomainName <your domain>
, вы получите следующую ошибку.
При попытке добавить переключатель -SupportMultipleDomain
вы получите следующую ошибку:
Попытка просто запустить Update-MsolFederatedDomain -DomainName <your domain> -SupportMultipleDomain
в исходном домене также приведет к ошибке.
Выполните указанные ниже действия для добавления дополнительного домена верхнего уровня. Если вы уже добавили домен и не использовали -SupportMultipleDomain
этот параметр, начните с шагов по удалению и обновлению исходного домена. Если вы еще не добавили домен верхнего уровня, можно начать с шагов по добавлению домена с помощью PowerShell Microsoft Entra Connect.
Выполните следующие действия для удаления доверия Microsoft Online и обновления исходного домена.
- На сервере федерации AD FS откройте службу управления AD FS.
- Слева разверните отношения доверия и доверительные отношения проверяющей стороны.
- Удалите запись Платформа идентификации Microsoft Office 365 справа.
- На компьютере с модулем Azure AD PowerShell, установленным на нем, выполните следующую команду PowerShell:
$cred=Get-Credential
- Введите имя пользователя и пароль администратора гибридной идентичности для домена Microsoft Entra, с которым осуществляется федерация.
- В PowerShell введите
Connect-MsolService -Credential $cred
. - В PowerShell введите
Update-MSOLFederatedDomain -DomainName <Federated Domain Name> -SupportMultipleDomain
. Это изменение предназначено для исходного домена. С приведенными выше доменами мы получим следующее:Update-MsolFederatedDomain -DomainName bmcontoso.com -SupportMultipleDomain
.
Выполните следующие действия для добавления нового домена верхнего уровня с помощью PowerShell.
- На компьютере с модулем Azure AD PowerShell, установленным на нем, выполните следующую команду PowerShell:
$cred=Get-Credential
- Введите имя пользователя и пароль администратора гибридных удостоверений для домена Microsoft Entra, с которым Вы объединяетесь.
- В PowerShell введите
Connect-MsolService -Credential $cred
. - В PowerShell введите
New-MsolFederatedDomain –SupportMultipleDomain –DomainName
.
Чтобы добавить новый домен верхнего уровня с помощью Microsoft Entra Connect, выполните следующие действия.
- Запуск Microsoft Entra Connect из классического или начального меню
- Выберите "Добавить дополнительный домен Microsoft Entra"
- Введите идентификатор Microsoft Entra и учетные данные Active Directory
- Выберите второй домен, который необходимо настроить для федерации.
- Щелкните Установить.
Проверка нового домена верхнего уровня
С помощью команды PowerShell Get-MsolDomainFederationSettings -DomainName <your domain>
можно просмотреть обновленный IssuerUri. На приведенном ниже снимке экрана показано, что настройки федерации для исходного домена http://bmcontoso.com/adfs/services/trust
были обновлены.
И для IssuerUri нового домена задано значение https://bmcontoso.com/adfs/services/trust
.
Поддержка поддоменов
При добавлении поддомена из-за особенностей обработки доменов в Microsoft Entra ID, он наследует настройки родителя. Поэтому значение IssuerUri должно совпадать со значением этого параметра у родительских элементов.
Давайте предположим, что у меня был домен bmcontoso.com, а затем я добавил поддомен corp.bmcontoso.com. Идентификатор IssuerUri для пользователя из corp.bmcontoso.com должен быть http://bmcontoso.com/adfs/services/trust
. Однако стандартное правило, реализованное выше для Microsoft Entra ID, создает токен с издателем http://corp.bmcontoso.com/adfs/services/trust
, который не соответствует требуемому значению домена, и проверка подлинности не проходит.
Как включить поддержку для поддоменов
Чтобы обойти это поведение, необходимо обновить доверие проверяющей стороны AD FS для Microsoft Online. Для этого необходимо настроить пользовательское правило утверждения так, чтобы оно удаляло поддомены из суффикса UPN пользователя при создании настраиваемого значения элемента Issuer.
Используйте следующее утверждение:
c:[Type == "http://schemas.xmlsoap.org/claims/UPN"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, "^.*@([^.]+\.)*?(?<domain>([^.]+\.?){2})$", "http://${domain}/adfs/services/trust/"));
[!ПРИМЕЧАНИЕ] Последнее число в регулярном выражении задает количество родительских доменов в корневом домене. Так как здесь используется bmcontoso.com, необходимы два родительских домена. Если бы три родительских домена были сохранены (то есть corp.bmcontoso.com), то число было бы три. В конечном итоге можно указать диапазон, совпадение осуществляется, чтобы охватить максимальное количество доменов. "{2,3}" соответствует двум-трем доменам (то есть bmfabrikam.com и corp.bmcontoso.com).
Используйте следующие инструкции для добавления пользовательского утверждения для поддержки поддоменов.
- Откройте консоль управления AD FS.
- Щелкните правой кнопкой мыши по тресту Microsoft Online RP и выберите "Изменить правила заявок".
- Выберите третье правило утверждения и замените
- Замените текущее утверждение:
c:[Type == "http://schemas.xmlsoap.org/claims/UPN"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, ".+@(?<domain>.+)","http://${domain}/adfs/services/trust/"));
на
c:[Type == "http://schemas.xmlsoap.org/claims/UPN"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, "^.*@([^.]+\.)*?(?<domain>([^.]+\.?){2})$", "http://${domain}/adfs/services/trust/"));
- Нажмите кнопку ОК. Щелкните Применить. Нажмите кнопку ОК. Закройте управление AD FS.
Следующие шаги
После установки Microsoft Entra Connect можно проверить установку и назначить лицензии.
Дополнительные сведения об этих функциях, которые были включены при установке: автоматическое обновление, предотвращение случайного удаления и Microsoft Entra Connect Health.
Получите больше информации по следующим общим темам: планировщик и как настроить синхронизацию.
Узнайте больше об интеграции локальных удостоверений с идентификатором Microsoft Entra.