Управление UPN суффиксами (UserPrincipalName) в Active Directory
В этой статье мы рассмотрим, что такое UPN (UserPrincipalName) суффиксы в Active Directory, как добавить дополнительные суффиксы в лесу AD, и назначить/изменить UPN суффикс пользователям Active Directory через графическую консоль и PowerShell.
UserPrincipalName (UPN) – это имя для входа пользователя в формате email адреса, например
[email protected]
(UPN имя не обязательно должно соответствовать email адресу пользователя). В этом примере
kbuldogov
это имя пользователя в домене AD (user logon name),
contoso.com
– UPN суффикс. Между ними разделитель
@
.
По умолчанию в Active Directory в качестве UPN суффикса используется DNS имя вашего домена AD. Например, UserPrincipalName пользователя в домене winitpro.local выглядит так: [email protected].
Не путайте 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
Можно добавить несколько уникальных UPN суффиксов. Обычно это используется, если в вашем домене находятся пользователи разных организаций (брендов) и вы хотите использовать для них разные UPN суффиксы.
- Также можно добавить UPN суффикс через консоль Active Directory Domains and Trusts:
- Откройте консоль
domain.msc
; - Откройте свойства Active Directory Domains and Trusts:
- Добавьте новый суффикс в поле Alternative UPN suffixes и нажмите Add.
Как изменить UserPrincipalName у пользователей Active Directory?
Текущее значение UserPrincipalName пользователя можно вывести с помощью командлета Get-ADUser:
Dы можете задать новый UPN суффикс для своих пользователей. Самый простой вариант – изменить UserPrincipalName в свойствах пользователя в консоли ADUC (
dsa.msc
).
Как вы видите, в выпадающем списке доступны все UPN суффиксы домена. Выберите нужный и нажмите OK.
Обратите внимание, что на этой форме UserPrincipalName как бы состоит из двух частей – имени пользователя и UPN суффикса. Но по факту значение UserPrincipalName хранится в одном атрибуте AD.
Когда вам нужно изменить UPN сразу нескольким пользователям, можно выбрать
несколько пользователей в консоли ADUC и нажать Properties. Перейдите на вкладку Account и вы можете сменить UPN суффикс сразу для всех пользователей (если нужно собрать в плоский список пользователей из разных OU, воспользуйтесь сохраненными запросами в консоли ADUC).
На гораздо проще для смены UPN суффикса использовать PowerShell.
Чтобы изменить UPN суффикс одному пользователю, используйте командлет Set-ADUser с параметром UserPrincipalName
Set-ADUser kbuldogov -UserPrincipalName [email protected]
Следующий 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 не задан:
Get-ADUser -LDAPFilter "(!(userPrincipalName=*))" | Select distinguishedName
Если вы создаёте нового пользователя, можете выбрать нужный UPN суффикс вместо DNS имени вашего домена.
Если вы создаёте пользователей с помощью PowerShell командлета New-ADUser, укажите новый UPN суффикс с помощью параметра UserPrincipalName:
New-ADUser -Name "Test User2" -GivenName "Test" -Surname "User2" -SamAccountName "testuser2" -UserPrincipalName "[email protected]"
Сегодня вопрос с UPN суффиксами чаще всего возникает, когда вы планируете настроить синхронизацию локальной (on-premises) Active Directory с Azure AD, Microsoft 365, Intune. В Azure именно userPrincipalName является уникальным идентификатором пользователя.
Исторически так сложилось, что многие компании для своих внутренних доменов AD использует немаршрутизируемые или несуществующие DNS имена (вида *.loc, *.local).
У каждого пользователя AD, который будет синхронизироваться в Azure должен быть назначен уникальный и маршрутизируемый в интернете userPrincipalName, который соответствует доменному имени вашего тенанта Azure (Microsoft 365).
Azure
Управление UPN суффиксами (UserPrincipalName) в Active Directory