Поддержка нескольких доменов для федеративного подключения с идентификатором Microsoft Entra

В следующей документации приведены инструкции по использованию нескольких доменов верхнего уровня и поддоменов при федеративных доменах Microsoft 365 или Microsoft Entra.

Поддержка нескольких доменов верхнего уровня

Для федерации нескольких доменов верхнего уровня с идентификатором Microsoft Entra ID требуется дополнительная конфигурация, которая не требуется при федеративном использовании одного домена верхнего уровня.

Если домен федеративный с идентификатором Microsoft Entra, в Azure задано несколько свойств. Важным свойством является IssuerUri. Это свойство является универсальным кодом ресурса (URI), который используется идентификатором Microsoft Entra для идентификации домена, с которым связан маркер. URI не должен разрешаться, но обязан быть действительным. По умолчанию идентификатор Microsoft Entra задает универсальный код ресурса (URI) для идентификатора службы федерации в локальной конфигурации AD FS.

Примечание.

Идентификатор службы федерации — это URI, который уникально идентифицирует службу федерации. Служба федерации — это экземпляр AD FS, который работает как служба токенов безопасности.

Для просмотра IssuerUri можно воспользоваться командой PowerShell Get-MsolDomainFederationSettings -DomainName <your domain>.

Снимок экрана: результаты выполнения команды Get-MsolDomainFederationSettings в PowerShell.

Примечание.

Модули 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 г.

Проблема возникает при добавлении нескольких доменов верхнего уровня. Например, предположим, что вы настроили федерацию между идентификатором Microsoft Entra и локальной средой. В этом документе используется домен bmcontoso.com. Теперь добавляется второй домен верхнего уровня, bmfabrikam.com.

Снимок экрана: несколько доменов верхнего уровня.

Пр попытке преобразовать домен bmfabrikam.com в федеративный домен происходит ошибка. Причина заключается в том, что идентификатор Microsoft Entra имеет ограничение, которое не позволяет свойству IssuerUri иметь одно и то же значение для нескольких доменов.

Снимок экрана: ошибка федерации в PowerShell.

Параметр SupportMultipleDomain

Чтобы обойти это ограничение, необходимо добавить другой IssuerUri. Это можно сделать с помощью параметра -SupportMultipleDomain. Этот параметр используется со следующими командлетами:

  • New-MsolFederatedDomain
  • Convert-MsolDomaintoFederated
  • Update-MsolFederatedDomain

Этот параметр делает идентификатор Microsoft Entra настроить IssuerUri таким образом, чтобы он был основан на имени домена. IssuerUri будет уникальным в разных каталогах в идентификаторе Microsoft Entra. Использование параметра позволяет успешно выполнить команду PowerShell.

Снимок экрана: успешное выполнение команды PowerShell.

На снимках экрана для домена bmfabrikam.com можно увидеть следующие параметры:

Снимок экрана: параметры домена bmfabrikam.com.

-SupportMultipleDomain не изменяет другие конечные точки, которые по-прежнему настроены для указания службы федерации на adfs.bmcontoso.com.

-SupportMultipleDomain также гарантирует, что система AD FS включает правильное значение издателя в токенах, выданных для идентификатора Microsoft Entra. Это значение задается путем получения части домена имени участника-пользователя и его использования в качестве домена в IssuerUri, то есть https://{upn suffix}/adfs/services/trust.

Таким образом, во время проверки подлинности с идентификатором Microsoft Entra или Microsoft 365 элемент IssuerUri в маркере пользователя используется для поиска домена в идентификаторе Microsoft Entra. Если совпадение не удается найти, проверка подлинности завершится ошибкой.

Например, если 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>, вы получите следующую ошибку.

Снимок экрана: ошибка федерации в PowerShell после попытки преобразования нового домена с помощью команды Convert-MsolDomaintoFederated.

При попытке добавить переключатель -SupportMultipleDomain вы получите следующую ошибку:

Снимок экрана: ошибка федерации после добавления параметра -SupportMultipleDomain.

Попытка просто запустить Update-MsolFederatedDomain -DomainName <your domain> -SupportMultipleDomain в исходном домене также приведет к ошибке.

Ошибка федерации

Выполните указанные ниже действия для добавления дополнительного домена верхнего уровня. Если вы уже добавили домен и не использовали -SupportMultipleDomain этот параметр, начните с шагов по удалению и обновлению исходного домена. Если вы еще не добавили домен верхнего уровня, можно начать с шагов по добавлению домена с помощью PowerShell Microsoft Entra Подключение.

Выполните следующие действия для удаления доверия Microsoft Online и обновления исходного домена.

  1. На сервере федерации AD FS откройте Управление AD FS
  2. Слева разверните отношения доверия и отношения доверия проверяющей стороны.
  3. Удалите запись Платформа идентификации Microsoft Office 365 справа. Удалить Microsoft Online
  4. На компьютере с модулем Azure AD PowerShell, установленным на нем, выполните следующую команду PowerShell: $cred=Get-Credential
  5. Введите имя пользователя и пароль гибридного удостоверения Администратор istrator для домена Microsoft Entra, с которым вы федеративны.
  6. В PowerShell введите Connect-MsolService -Credential $cred.
  7. В PowerShell введите Update-MSOLFederatedDomain -DomainName <Federated Domain Name> -SupportMultipleDomain. Это изменение предназначено для исходного домена. С приведенными выше доменами мы получим следующее: Update-MsolFederatedDomain -DomainName bmcontoso.com -SupportMultipleDomain.

Выполните следующие действия для добавления нового домена верхнего уровня с помощью PowerShell.

  1. На компьютере с модулем Azure AD PowerShell, установленным на нем, выполните следующую команду PowerShell: $cred=Get-Credential
  2. Введите имя пользователя и пароль гибридного удостоверения Администратор istrator для домена Microsoft Entra, с которым вы федеративны
  3. В PowerShell введите Connect-MsolService -Credential $cred.
  4. В PowerShell введите New-MsolFederatedDomain –SupportMultipleDomain –DomainName.

Чтобы добавить новый домен верхнего уровня с помощью Microsoft Entra Подключение, выполните следующие действия.

  1. Запуск microsoft Entra Подключение из классического или начального меню
  2. Выберите "Добавить дополнительный домен Microsoft Entra" Снимок экрана: страница
  3. Введите идентификатор Microsoft Entra и учетные данные Active Directory
  4. Выберите второй домен, который необходимо настроить для федерации. Добавление дополнительного домена Microsoft Entra
  5. Щелкните Установить.

Проверка нового домена верхнего уровня

С помощью команды PowerShell Get-MsolDomainFederationSettings -DomainName <your domain>можно просмотреть обновленный IssuerUri. На приведенном ниже снимке экрана показано, что настройки федерации для исходного домена http://bmcontoso.com/adfs/services/trust были обновлены.

Снимок экрана: настройки федерации успешно обновлены для исходного домена.

И для IssuerUri нового домена задано значение https://bmcontoso.com/adfs/services/trust.

Get-MsolDomainFederationSettings

Поддержка поддоменов

При добавлении поддомена из-за того, как идентификатор Microsoft Entra ID обрабатывает домены, он наследует параметры родительского элемента. Поэтому значение IssuerUri должно совпадать со значением этого параметра у родительских элементов.

Давайте предположим, что у меня был домен bmcontoso.com, а затем я добавил поддомен corp.bmcontoso.com. Параметр IssuerUri для пользователя из corp.bmcontoso.com должен иметь значение http://bmcontoso.com/adfs/services/trust. Однако стандартное правило, реализованное выше для идентификатора Microsoft Entra, создаст маркер с издателем как 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).

Используйте следующие инструкции для добавления пользовательского утверждения для поддержки поддоменов.

  1. Откройте оснастку управления AD FS.

  2. Щелкните правой кнопкой мыши отношение доверия Microsoft Online RP и выберите "Изменить правила утверждений".

  3. Выберите третье правило утверждения и замените Изменить утверждение

  4. Замените текущее утверждение:

    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/"));
    

    Заменить утверждение

  5. Нажмите кнопку ОК. Щелкните Применить. Нажмите кнопку ОК. Откройте оснастку управления AD FS.

Следующие шаги

Теперь, когда у вас установлена Подключение Microsoft Entra, можно проверить установку и назначить лицензии.

Дополнительные сведения об этих функциях, которые были включены при установке: автоматическое обновление, предотвращение случайного удаления и Microsoft Entra Подключение Работоспособности.

Дополнительные сведения см. в статье Синхронизация Azure AD Connect: планировщик.

Узнайте больше об интеграции локальных удостоверений с идентификатором Microsoft Entra.