Управление UPN суффиксами (UserPrincipalName) в Active Directory

В этой статье мы рассмотрим, что такое UPN (UserPrincipalName) суффиксы в Active Directory, как добавить дополнительные суффиксы в лесу AD, и назначить/изменить UPN суффикс пользователям Active Directory через графическую консоль и PowerShell.

UserPrincipalName (UPN) – это имя для входа пользователя в формате email адреса, например kbuldogov@contoso.com (UPN имя не обязательно должно соответствовать email адресу пользователя). В этом примере kbuldogov это имя пользователя в домене AD (user logon name), contoso.com – UPN суффикс. Между ними разделитель @.

По умолчанию в Active Directory в качестве UPN суффикса используется DNS имя вашего домена AD. Например, UserPrincipalName пользователя в домене winitpro.local выглядит так: username@winitpro.local.

Не путайте UserPrincipalName с sAMAccountName, который сейчас является legacy атрибутом AD, оставшимся со старых времен.

Если в вашей внутренней AD DS используется немаршрутизируемое имя домена (например domain.local), вы не сможете верифицировать такой домен в Azure (Microsoft 365). Чтобы настроить синхронизацию с Azure вам придется переименовать домен AD (не всегда возможно), или (гораздо проще) добавить дополнительные (альтернативные) UPN суффиксы в своем AD.

Добавляем дополнительный UPN суффикс в Active Directory

В Active Directory вы можете добавить дополнительные (альтернативные) UPN суффиксы с помощью графической консолей Active Directory Domains and Trusts или через PowerShell.

Откройте консоль PowerShell и выполните команду Get-ADForest из модуля AD PowerShell. Следующая команда выведет все назначенные UPN суффиксы в лесу:

Get-ADForest | Format-List UPNSuffixes

Если список пуст, значит у вас используется суффикс UPN по умолчанию, соответствующий имени DNS домена.

Чтобы добавить дополнительный UPN суффикс (например, winitpro.ru), выполните команду:

Get-ADForest | Set-ADForest -UPNSuffixes @{add="winitpro.ru"}

Проверьте, что суффикс появился в UPNSuffixes:

Get-ADForest | Format-List UPNSuffixes

Get-ADForest | Format-List UPNSuffixes

Можно добавить несколько уникальных UPN суффиксов. Обычно это используется, если в вашем домене находятся пользователи разных организаций (брендов) и вы хотите использовать для них разные UPN суффиксы.
  1. Также можно добавить UPN суффикс через консоль Active Directory Domains and Trusts:
  2. Откройте консоль domain.msc;
  3. Откройте свойства Active Directory Domains and Trusts:
  4. Добавьте новый суффикс в поле Alternative UPN suffixes и нажмите Add.

добавить альтернативный UserPrincipalName пользователям в домене Active Directory

Как изменить UserPrincipalName у пользователей Active Directory?

Текущее значение UserPrincipalName пользователя можно вывести с помощью командлета Get-ADUser:

Get-ADUser UserPrincipalName

Dы можете задать новый UPN суффикс для своих пользователей. Самый простой вариант – изменить UserPrincipalName в свойствах пользователя в консоли ADUC (dsa.msc).

Как вы видите, в выпадающем списке доступны все UPN суффиксы домена. Выберите нужный и нажмите OK.

изменить UserPrincipalName пользователя

Обратите внимание, что на этой форме UserPrincipalName как бы состоит из двух частей – имени пользователя и UPN суффикса. Но по факту значение UserPrincipalName хранится в одном атрибуте AD.

атрибут UserPrincipalName в Active Directory

Когда вам нужно изменить UPN сразу нескольким пользователям, можно выбрать

несколько пользователей в консоли ADUC и нажать Properties. Перейдите на вкладку Account и вы можете сменить UPN суффикс сразу для всех пользователей (если нужно собрать в плоский список пользователей из разных OU, воспользуйтесь сохраненными запросами в консоли ADUC).

задать новый UPN suffix для нескольких пользователей

На гораздо проще для смены UPN суффикса использовать PowerShell.

Чтобы изменить UPN суффикс одному пользователю, используйте командлет Set-ADUser с параметром UserPrincipalName

Set-ADUser kbuldogov -UserPrincipalName kbuldogov@winitpro.ru

Следующий PowerShell скрипт позволит найти в указанной OU всех пользователей с определённым UPN суффиксом и изменить UserPrincipalName на новый.

Get-ADUser -Filter {UserPrincipalName -like "*@resource.loc"} -SearchBase " OU=Users,OU=SPB,OU=RU,DC=resource,DC=loc" |
ForEach-Object {
$UPN = $_.UserPrincipalName.Replace("resource.loc","winitpro.ru")
Set-ADUser $_ -UserPrincipalName $UPN -verbose
}

скрипт powershell для смены UserPrincipalName сразу множеству пользователей Active Directory

Следующая команд PowerShell позволит найти пользователей, у которых userPrincipalName не задан:

Get-ADUser -LDAPFilter "(!(userPrincipalName=*))" | Select distinguishedName

Различные проблемы с атрибутами пользователей, в том числе с userPrincipalName может помочь найти утилита IDFIX, которую Microsoft рекомендует использовать для проверки вашего on-premises Active Directory перед синхронизацией в Azure с помощью Azure AD Connect.

Если вы создаёте нового пользователя, можете выбрать нужный UPN суффикс вместо DNS имени вашего домена.

создать пользователя AD с новым UserPrincipalName

Если вы создаёте пользователей с помощью PowerShell командлета New-ADUser, укажите новый UPN суффикс с помощью параметра UserPrincipalName:

New-ADUser -Name "Test User2" -GivenName "Test" -Surname "User2" -SamAccountName "testuser2" -UserPrincipalName "testuser2@winitpro.ru"

Сегодня вопрос с UPN суффиксами чаще всего возникает, когда вы планируете настроить синхронизацию локальной (on-premises) Active Directory с Azure AD, Microsoft 365, Intune. В Azure именно userPrincipalName является уникальным идентификатором пользователя.

Исторически так сложилось, что многие компании для своих внутренних доменов AD использует немаршрутизируемые или несуществующие DNS имена (вида *.loc, *.local).

У каждого пользователя AD, который будет синхронизироваться в Azure должен быть назначен уникальный и маршрутизируемый в интернете userPrincipalName, который соответствует доменному имени вашего тенанта Azure (Microsoft 365).


Предыдущая статья Следующая статья


Комментариев: 1 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)