Userprincipalname что это в актив директори
Перейти к содержимому

Userprincipalname что это в актив директори

  • автор:

 

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

date21.05.2021
useritpro
directoryActive Directory, Azure, Windows Server 2016
commentsкомментариев 12

В этой статье мы рассмотрим, что такое 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]

Если в вашей внутренней 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 @

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

Get-ADForest | Format-List UPNSuffixes

Get-ADForest | Format-List UPNSuffixes

  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 [email protected]

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

Get-ADUser -Filter -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

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

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

Если вы создаёте пользователей с помощью 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).

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

Сколько имен у пользователя в Active Directory

Одной из проблем в Active Directory является множество имен, которые можно использовать для обозначения или описания объекта. Большинство этих имен являются атрибутами (или свойствами) объекта. Путаница возникает из-за того, что один и тот же атрибут может иметь разное имя, в зависимости от используемого провайдера. Кроме того, имя одного атрибута может ссылаться на другой атрибут, что также не добавляет ясности. Ну и наконец, у атрибутов существуют методы (функции), которые вычисляют значение имени из других атрибутов.

Попробуем разобраться в этой ситуации на примере объекта пользователя. Для этого откроем оснастку Active Directory Users and Computers (ADUC) и создадим новую учетную запись. При создании мы указываем Имя (First name), Фамилию (Last name) и инициалы (Initials), из которых формируется полное имя (Full name). Ну и целых два имени для входа — User logon name и User logon name (pre-Windows 2000).

Создание учетной записи пользователя

А теперь перейдем к редактору атрибутов и посмотрим что получилось. Для этого необходимо в оснастке ADUC в меню View отметить пункт Advanced Features.

включение отображения дополнительных опций в оснастке ADUC

Открываем редактор атрибутов и видим знакомые имена, но под совершенно разными названиями.

редактор атрибутов

Полному имени здесь соответствуют целых три атрибута — name, displayName и cn. Можно подумать, что это одно и то же, но нет — это совершенно разные атрибуты пользователя.

Полное имя (name) и общее имя (Common name, cn) — это два разных атрибута, хотя возвращают они одно и то же значение. Это происходит потому, что атрибут name аналогичен относительному отличительному имени (Relative Distinguished Name, RDN), а RDN — это часть отличительного имени (Distinguished Name, DN). Так если DN равно ″CN=Иванов Иван Иванович,CN=Users,DC=Test,DC=local″, то RDN будет ″CN=Иванов Иван Иванович″. Отсюда получаем, что если cn = ″Иванов Иван Иванович″, то name = ″cn=Иванов Иван Иванович″.

Получается довольно запутанно. Но если посмотреть с практической точки зрения, то можно сказать так — изменить значение атрибута cn мы не можем, оно всегда будет равно значению атрибута name.

Отображаемое имя (displayName) по умолчанию формируется по такому же принципу, как полное (name) и общее (cn) имена, однако не зависит от их значений. Для проверки изменим полное имя нашего пользователя. Как видите, полное и отображаемое имена изменяются независимо друг от друга.

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

А в редакторе атрибутов видим, что вместе со значением атрибута name изменилось и значение cn, хотя его мы и не меняли.

изменение атрибутов name и cn

Кстати, кроме отображаемого имени (displayName) у пользователя есть еще отображаемое имя для печати (displayNamePrintable). Это два разных, независимых друг от друга атрибута.

отображаемое имя для печати

Примечание. Атрибут displayNamePrintable используется почтовым сервером Exchanhe при отправке сообщений вне организации. Его можно использовать в том случае, если необходимо в письме показывать имя пользователя, отличное от DisplayName (напр. англоязычный вариант).

Идем дальше. Имя соответствует атрибуту givenName, а фамилия — атрибуту sn (Surname). Может найдется и отчество? Давайте попробуем поискать его с помощью PowerShell, командой:

Get-ADUser ivanov_ii -Properties * | select *name

Нашелся атрибут с названием OtherName, возможно это оно и есть?

Вывод атрибутов с помощью powershell

Зададим этому атрибуту значение:

Get-ADUser ivanov_ii -Properties * | Set-ADUser -OtherName «Иванович»

и проверим что получилось. А получилось сразу два новых атрибута — OtherName и MiddleName, оба с заданным значением.

изменение атрибута с помощью powershell

На самом деле это просто два названия одного и того же атрибута:

cn: OtherName
ldapDisplayName: MiddleName

При этом если в PowerShell мы видим оба имени, то в оснастке ADUC отображается только одно MiddleName.

атрибут middleName

Переходим к именам входа (logon names), которых у пользователя тоже два.

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

Если посмотреть в редакторе атрибутов, то User logon name (pre-Windows 2000) скрывается под именем sAMAccountname, а User logon name соответствует атрибуту userPrincipalName.

 

атрибуты имен входа пользователя

Давайте немного углубимся в детали и посмотрим, чем же отличаются эти два имени.

sAMAccountName — имя учетной записи SAM. Предназначено для для совместимости со старыми (до Windows 2000) операционными системами. Впрочем это не означает, что sAMAccountName не используется в качестве имени для входа в современных системах Windows. sAMAccountname должно быть уникальным в рамках домена, имеет ограничение в 20 символов и работает в сочетании с NETBIOS именем домена, например TEST\ivanov_ii. sAMAccountName является обязательным атрибутом пользователя.

userPrincipalName (UPN) — имя участника-пользователя. Это новый формат указания имени пользователя для входа в систему, основанный на интернет-стандарте RFC 822. Для входа используется сочетание имени пользователя с доменным суффиксом, например ivanov_ii@test.local. Имя участника-пользователя должно быть уникальным среди всех объектов-участников безопасности в лесу доменов. Максимальная длина UPN составляет 1024 символа. UPN не является обязательным атрибутом, оно может быть не назначено при создании учетной записи пользователя.

И еще два важных имени, которые есть у пользователя. Это DistinguishedName (различающееся имя) и CanonicalName (каноническое имя). Оба эти атрибута о днозначно определяют объект в Active Directory.
Различающееся имя включает в себя относительное отличительное имя объекта (RDN), а также полный путь к контейнеру, содержащему объект в Active Directory, например ″ CN=Иванов Иван Иванович,CN=Users,DC=Test,DC=local″. Каноническое имя — это то же различающееся имя объекта, но в каноническом виде, например ″test.local/Users/Иван Иванович Иванов″.

различающееся и каноническое имя

Примечание. CanonicalName является конструируемым атрибутом (constructed attribute). Такие атрибуты не хранятся явным образом в AD, а вычисляются на лету при получении соответствующих запросов.

Как видите, у пользователя в Active Directory множество различных имен. Чтобы немного их упорядочить я составил небольшую табличку, в которую внес все атрибуты пользователя, так или иначе имеющие отношение к его имени.

Имя атрибута Имя в оснастке ADUC Описание Значение (пример)
givenName First name Имя Иван
sn (SurName) Last name Фамилия Иванов
OtherName (middleName) Дополнительное имя (напр. отчество) Иванович
Initials Initials Инициалы И
CommonName (cn) Общее имя Иванов Иван Иванович
name Full name Полное имя Иванов Иван Иванович
displayName Display name Отображаемое имя Иванов Иван Иванович
DisplayNamePrintable Отображаемое имя для печати Иванов Иван Иванович
DistinguishedName (DN) Отличительное (уникальное) имя CN=Иванов Иван Иванович,CN=Users,DC=Test,DC=local
sAMAccountName User logon name (pre-Windows 2000) Имя входа пользователя (пред-Windows 2000) Ivanov_ii
userPrincipalName User logon name Имя входа пользователя Ivanov_ii@test.local
CanonicalName Canonical Name Имя объекта в каноническом формате test.local/Users/Иван Иванович Иванов

Ну а теперь главное) Как вы думаете, нужны ли все эти имена для создания учетной записи пользователя. Чтобы выяснить это, откроем редактор атрибутов и отфильтруем все атрибуты кроме обязательных (Mandatory). И оказывается, что для пользователя обязательными являются всего два имени — CommonName (cn) и sAMAccountName. Безо всех остальных пользователь может легко обойтись.

Как управлять учетными записями пользователей в Active Directory. Часть 1: Создание и удаление пользователей

Пользовательские учетные записи одни из самых популярных объектов в AD. Они нужны для аутентификации и авторизации на рабочих компьютерах и во многих сервисах, интегрированных с AD. Решение различных проблем связанных с УЗ пользователей, а так же управление ими является одной из главных рутин для администраторов и специалистов хелпдеска. Данное руководство поможет вам сделать это несколькими способами. Чтобы управлять УЗ пользователей, необходимо войти на контроллер домена или сервер или устройство с установленными средствами удаленного администрирования сервера (RSAT) для Active Directory Domain Services.

Для того чтобы не было ошибок доступа, нам нужен аккаунт администратора домена или группы операторов учетных записей (Account Operators group), либо УЗ, которая делегирована на создание пользовательских объектов в домене или в нужной нам организационной единице (OU), которую мы будем использовать для хранения аккаунтов.

Как создать учетную запись пользователя

Давайте создадим учетную запись пользователя AD несколькими способами.

Создание учетной записи пользователя с помощью ADUC

Запустите Active Directory Users and Computers (dsa.msc).

Перейдите в нужную вам OU (organizational unit) или контейнер. На панели задач нажмите на значок New User, или щелкните правой кнопкой мыши пустое место в главном окне и выберите New -> User из меню, или щелкните правой кнопкой по выбранному вами OU или контейнеру и выберите New -> User.

Создание учетной записи пользователя с помощью ADUC | Serverspace

Появится окно New Object — User, укажите параметры для вашего пользователя:

  • Full Name, введите полное имя в поле Full Name или введите отдельно фамилию и имя в поля First Name и Last Name.
  • User logon name — Имя логина пользователя, данный параметр создаст атрибут userPrincipalName и атрибут sAMAccountName, которые пользователь будет вводить при входе в систему.

Создание учетной записи пользователя с помощью ADUC | Serverspace

Нажмите Next и укажите Пароль, затем наберите его во втором поле и отметьте нужные настройки, обычно для нового пользователя нужно отметить «User must change password at next logon«(Пользователь должен сменить пароль при следующем входе).

Создание учетной записи пользователя с помощью ADUC | Serverspace

Нажмите Next и Finish. Поздравляем, учетная запись пользователя успешно создана!

Создание УЗ пользователя с помощью cmd.exe

Используйте следующую команду с необходимыми параметрами для создания объекта пользователя в контейнере «Users«, имя пользователя в примере будет GSoul:

dsadd.exe user «CN=GSoul,CN=Users,DC=office,DC=local» -upn GSoul@office.local -fn «Gordon» -ln «Soul» -display «Gordon Soul» -pwd «P@&&W0rd»

Создание учетной записи пользователя с помощью Windows PowerShell

Запустите следующий код PowerShell с правами администратора:

Import-Module ActiveDirectory
New-ADUser -Name FRobinson -Path «CN=Users,DC=office,DC=local» -GivenName «Frank» -Surname «Robinson» -sAMAccountName FRobinson

Как удалить учетную запись пользователя

Для того чтобы удалить пользователя из Active Directory, используйте один из следующих методов. Обратите внимание, что это не приведет к полному удалению УЗ, если у вас настроена корзина AD Recycle Bin.

Удаление учетной записи пользователя с помощью Active Directory Users and Computers

Чтобы удалить пользователя из домена, откройте Active Directory Users and Computers (dsa.msc).

Нажмите на меню View, включите Advanced Features. Перейдите в OU или контейнер, где находится объект пользователя, который вы собираетесь удалить. В меню Action выберите Find.

Удаление учетной записи пользователя с помощью Active Directory Users and Computers | Serverspace

В поле Name введите имя пользователя, которого вы хотите удалить, и нажмите кнопку «Find now«. В списке результатов поиска выберите нужного пользователя.

Удаление учетной записи пользователя с помощью Active Directory Users and Computers | Serverspace

Щелкните правой кнопкой мыши на пользователя и выберите из списка пункт «Delete«, а затем «Yes«.

Удаление учетной записи пользователя с помощью командной строки

Следующая команда удаляет пользователя «GSoul» из контейнера “Users” из домена office.local:

dsrm.exe «CN=Gregory Soul,CN=Users,DC=office,DC=local»

Удаление учетной записи пользователя с помощью Windows PowerShell

Используйте следующий PowerShell код для удаления пользователя из AD, синтаксис для примера использован такой же, как и в примере выше:

Import-Module ActiveDirectory
Remove-ADUser -Identity «CN=GSoul,CN=Users,DC=office,DC=local»

Configuring UserPrincipalName and UPN Suffixes in Active Directory

In this article, we’ll look at what UPN (UserPrincipalName) suffixes in Active Directory are, how to add alternative suffixes in an AD forest, and change UPN suffixes of Active Directory users with the ADUC console and PowerShell.

UserPrincipalName (UPN) is the user’s logon name in the format of an email address, for example, maxb@contoso.com . UPN name doesn’t necessarily have to match the user’s email address. In this case, maxb is the username in an Active Directory domain (user logon name), contoso.com is the UPN suffix. They have a delimiter @ between them.

By default, the DNS name of your AD domain is used as the UPN suffix in Active Directory. For example, a UserPrincipalName in the woshub.local domain looks like this: username@woshub.local .

If your internal AD DS uses a non-routable domain name (like, mydomain.loc), you won’t be able to verify the domain in Azure (Microsoft 365). To configure synchronization with Azure, you will have to rename your AD domain (it is not always possible) or (much easier) add extra (alternative) UPN suffixes to your AD.

How to Add Alternative UPN Suffix in Active Directory?

In Active Directory, you can add additional (alternative) UPN suffixes using the Active Directory Domains and Trusts graphic console or PowerShell.

Open a PowerShell console and run the Get-ADForest command from the AD PowerShell module. The command below will list all assigned UPN suffixes in the forest:

Get-ADForest | Format-List UPNSuffixes

If the list is empty, it means that you are using a default UPN suffix matching your DNS domain name.

To add an alternative UPN suffix (for example, woshub.com ), run this command:

Get-ADForest | Set-ADForest -UPNSuffixes @

Make sure that the suffix appeared in UPNSuffixes:

Get-ADForest | Format-List UPNSuffixes

get all UPNSuffixesin Active Directory

  1. You can also add a UPN suffix using the Active Directory Domains and Trusts console;
  2. Run the domain.msc snap-in;
  3. Open the Active Directory Domains and Trusts properties;
  4. Add a new suffix to the Alternative UPN suffixes box and click Add.

add alternate UPN suffix in AD

Changing the User Principal Name (UPN) in Active Directory

You can display the current value of the UserPrincipalName attribute using the Get-ADUser cmdlet:

Get-ADUser f.martusciello -properties select userprincipalname

powershell- get-aduser userprincipalname

You can change the UPN suffix for your AD users. The easiest way to do it is to change UserPrincipalName in user properties in the ADUC console ( dsa.msc ).

As you can see, all UPN suffixes of the domain are available in the list. Select the one you want and click OK.

change user UPN suffix using ADUC snap-in

Note that UserPrincipalName in this form consists of two parts: a user name and a UPN suffix. In fact, UserPrincipalName value is stored a single AD attribute.

UserPrincipalName - active directory user attribute

When you want to change UPN for multiple users at once, you can select users in the ADUC console and click Properties. Go to the Account tab and change the UPN suffix for all selected users. (If you want to get users from different OUs into a flat list, use the saved queries in the ADUC console.)

How to change multiple users UPN suffix?

But it is easier to use PowerShell to change the user UPN suffix.

To change a UPN suffix for a user, use the Set-ADUser cmdlet with the UserPrincipalName parameter:

Set-ADUser f.martusciello -UserPrincipalName f.martusciello@woshub.com

The following PowerShell script allows to find users with the specific UPN suffix in an OU and change the UserPrincipalName to a new one.

Get-ADUser -Filter -SearchBase » OU=Users,OU=Munich,DC=mydomain,DC=loc» |
ForEach-Object <
$UPN = $_.UserPrincipalName.Replace(«mydomain.loc»,»woshub.com»)
Set-ADUser $_ -UserPrincipalName $UPN -verbose
>

This PowerShell command allows to find users who have no UserPrincipalName set:

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

If you create a new user, you can select an alternate UPN suffix instead of a DNS name of your domain.

set UPN suffix then creating new AD user

If you create users using the New-ADUser PowerShell cmdlet, specify a new UPN suffix with the UserPrincipalName switch:

New-ADUser -Name «Jan Kraus» -GivenName «Jan» -Surname «Kraus» -SamAccountName «j.kraus» -UserPrincipalName j.kraus@woshub.com

Today an issue of UPN suffixes arises if you are going to configure on-premises Active Directory synchronization with Azure AD, Microsoft 365, Intune. It is UserPrincipalName that is a unique user identifier in Azure.

Historically, many companies have been using non-routable or non-existing DNS names (like *.loc , *.local ) for their internal AD domains.

Each AD user that will sync to Azure must be assigned a unique and internet-routable userPrincipalName that matches the domain of your Azure tenant (Microsoft 365).

 

Добавить комментарий

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