Одной из проблем в 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.
Открываем редактор атрибутов и видим знакомые имена, но под совершенно разными названиями.
Полному имени здесь соответствуют целых три атрибута — 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, хотя его мы и не меняли.
Кстати, кроме отображаемого имени (displayName) у пользователя есть еще отображаемое имя для печати (displayNamePrintable). Это два разных, независимых друг от друга атрибута.
Примечание. Атрибут displayNamePrintable используется почтовым сервером Exchanhe при отправке сообщений вне организации. Его можно использовать в том случае, если необходимо в письме показывать имя пользователя, отличное от DisplayName (напр. англоязычный вариант).
Идем дальше. Имя соответствует атрибуту givenName, а фамилия — атрибуту sn (Surname). Может найдется и отчество? Давайте попробуем поискать его с помощью PowerShell, командой:
Get-ADUser ivanov_ii -Properties * | select *name
Нашелся атрибут с названием OtherName, возможно это оно и есть?
Зададим этому атрибуту значение:
Get-ADUser ivanov_ii -Properties * | Set-ADUser -OtherName "Иванович"
и проверим что получилось. А получилось сразу два новых атрибута — OtherName и MiddleName, оба с заданным значением.
На самом деле это просто два названия одного и того же атрибута:
cn: OtherName
ldapDisplayName: MiddleName
При этом если в PowerShell мы видим оба имени, то в оснастке ADUC отображается только одно 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 можно посмотреть вот здесь : https://learn.microsoft.com/en-us/windows/win32/adschema/c-user?redirectedfrom=MSDN
Подключал намедни линуксовый сервис для авторизации через AD, еле нашел описание соответствий атрибутов и их полей, да и те все на английском, что не очень удобно при русскоязычной системе, потому что хрен поймешь какие параметры за что отвечают. Чтобы каждый раз не выискивать их adexplorer’ом, решил составить таблицу основных атрибутов Active Directory.
Attribute \ Атрибут | Англоязычное название | Русскоязычное название | Value \ Значение |
OU (Organizational Unit) \ Подразделение | |||
distinguishedName | Distinguished Name | Отличительное (уникальное) имя | OU=Компания,DC=domain,DC=com |
name | Компания | ||
Group \ Группа | |||
distinguishedName | Distinguished Name | Отличительное (уникальное) имя | CN=Группа,OU=Компания,DC=domain,DC=com |
name | Группа | ||
member | Members | Члены группы (какие пользователи входят в данную группу) | CN=Сергей Петрович Иванов,OU=Компания,DC=domain,DC=com |
User \ Пользователь | |||
DN | Distinguished Name | Отличительное (уникальное) имя | CN=Сергей Петрович Иванов,OU=Компания,DC=domain,DC=com |
DC | Domain Component | Компонент(класс) доменного имени. | DC=domain,DC=com |
OU | Organizational Unit | Подразделение | Компания |
CN | Common Name | Общее имя | Сергей Петрович Иванов |
givenName | First name | Имя | Сергей Петрович |
name | Full name | Полное имя | Сергей Петрович Иванов |
sn (SurName) | Last name | Фамилия | Иванов |
displayName | Display Name | Выводимое имя | Сергей Петрович Иванов |
Электронная почта | mail@domain.com | ||
sAMAccountName | User logon name (pre-Windows 2000) | Имя входа пользователя (пред-Windows 2000) | IvanovSP |
userPrincipalName | User logon name | Имя входа пользователя | IvanovSP@domain.com |
memberOf | Member Of | Член групп (в какую группу входит данный пользователь) | CN=Группа,OU=Компания,DC=domain,DC=com |
Стоит отметить, что пользовательский displayName ≠ CN = Full name\Полное имя = namе
, что можно видеть на последнем скрине.
Для более наглядного понимая приложу скрины:
Атрибут userAccountControl
Иногда надо понять включена или отключена учетная запись в AD. Или что еще с ней вообще происходит. За это отвечает атрибут userAccountControl, который является суммой нескольких свойств атрибутов. При этом, значение 512 является значением по умолчанию при всех снятых флагах на вкладке «Учетная запись» и каждый дополнительный параметр прибавляется к нему. Например, значения атрибута userAccountControl для наиболее распространенных случаев:
512
— Включена (Enabled)
514 (512+2)
— Отключена (Disabled)
66048 (512+65536)
— Включена, срок действия пароля не ограничен (Enabled, password never expires)
66050 (512+65536+2)
— Отключена, срок действия пароля не ограничен (Disabled, password never expires)
Список основных значений атрибутов userAccountControl:
HEX | DEC | Описание |
0x00000002 | 2 | Учетная запись отключена |
0x00000010 | 16 | Учетная запись заблокирована |
0x00000020 | 32 | Пароль не требуется |
0x00000040 | 64 | Запретить смену пароля пользователем |
0x00000080 | 128 | Хранить пароль, используя обратимое шифрование |
0x00000200 | 512 | Учетная запись по умолчанию. Представляет собой типичного пользователя |
0x00010000 | 65536 | Срок действия пароля не ограничен |
0x00040000 | 262144 | Для интерактивного входа в сеть нужна смарт-карта |
0x00400000 | 4194304 | Без предварительной проверки подлинности Kerberos |
0x00800000 | 8388608 | Пароль пользователя истек |
Подробное описание всех атрибутов
The New User Object creation window has two text fields, one for User logon name and other for User logon name (pre-Windows 2000). What is the difference between these two logon names? What significant role do they play in Active Directory working?
asked Jan 12, 2018 at 6:31
The pre-Windows 2000 logon name is called the SAM Account Name and exists for compatibility with old systems (although it is still used very commonly in modern setups), it has a 20 character limit and works in conjunction with the domain NETBIOS name, in your example, LZ
to give the UsernameLZ\username
.
The other is the more modern version, has a much higher character limit and combines with the user principal suffix, usually but not necissarily the DNS domain name, in your example, @lz.com
to give you the User Principal Name [email protected]
.
Despite similarities, these are not interchangeable and can be completely different.
answered Jan 12, 2018 at 8:11
What is the Pre-Windows 2000 user logon name?
SAM Account Name
1 Answer. The pre-Windows 2000 logon name is called the SAM Account Name and exists for compatibility with old systems (although it is still used very commonly in modern setups), it has a 20 character limit and works in conjunction with the domain NETBIOS name, in your example, LZ to give the Username LZsername .
What is Pre-Windows login?
The pre-Windows login functionality provides additional security to the system, keeping unauthorized users from compromising Windows and accessing the computer (e.g., when it has been stolen).
What is a sAMAccountName?
The sAMAccountName attribute is a logon name used to support clients and servers from previous version of Windows, such as Windows NT 4.0, Windows 95, Windows 98, and LAN Manager. The logon name must be 20 or fewer characters and be unique among all security principal objects within the domain.
What is the maximum characters for username in Active directory?
The maximum number of characters supported in Active Directory (AD) for user logon name is 20.
What is Windows authorization Accessgroup?
The Windows Authorizations Access Group (WAAG) is a new built-in security group introduced in Windows Server 2003. The members of this group are allowed to look up group membership for a particular user.
Can you change user logon name?
Using a graphical user interface Open the Active Directory Users and Computers snap-in. In the Search Results, right-click on the user and select Rename. You can modify the Full Name, Last Name, First Name, Display Name, User Principal Name (logon name), and SAM Account Name (pre-Windows 2000).
What is the difference between sAMAccountName and userPrincipalName?
The samAccountName is the User Logon Name in Pre-Windows 2000 (this does not mean samAccountName is not being used as Logon Name in modern windows systems). The userPrincipalName is a new way of User Logon Name from Windows 2000 and later versions.
What was the user logon name in Windows 2000?
Re: user logon name vs user logon name (pre windows 2000) Windows supports a number of different authentication protocols. In an environment with pre-2000 Windows versions, you have restrictions on username length (among other things). Windows automatically generates a pre-2000-compatible username based on your modern username.
Is there a pre-Windows 2000 compatible access group?
The Pre-Windows 2000 Compatible Access Group exists for backwards compatibility with Windows NT boxes and appears to be populated with authenticated users by default in new Windows Server deployments. As Windows Server blogger Dion Mosley explained: “Members of this group have Read access for viewing all users and groups within the domain.
Can a Windows 2000 user have a pre-2000 username?
In an environment with pre-2000 Windows versions, you have restrictions on username length (among other things). Windows automatically generates a pre-2000-compatible username based on your modern username. Unless you’re networking older machines with newer ones, you can pretty much ignore it.
How many characters can a Windows XP user logon name be?
The name was according to company policy. User Logon Name (Pre Windows 2000) was 20 characters. He could only log on to a Windows XP SP3 machine with the User Logon Name (Pre Windows 2000) on a Windows 2003 domain environment. What gives? here are all limits for AD described: http://technet.microsoft.com/en-us/library/cc756101.aspx
SAM Account Name
1 Answer. The pre-Windows 2000 logon name is called the SAM Account Name and exists for compatibility with old systems (although it is still used very commonly in modern setups), it has a 20 character limit and works in conjunction with the domain NETBIOS name, in your example, LZ to give the Username LZsername .
How do I find my pre-Windows 2000 name?
On the “Account” tab of the properties you will see the “pre-Windows 2000 logon” name.
How do I change the username on my pre Window 2000?
Simple Step : How to change User Logon Name (pre-Windows 2000) using ADSI EDIT in Windows Server 2012 R2
- 2 – Next, open Server Manager, click Tools and then click ADSI EDIT…
- 3 – On the ADSI Edit console, right click ADSI Edit and then click Connect to….
What is Pre-Windows 2000 Compatible Access?
Specifically the Pre-Windows 2000 Compatible Access group was created to allow Windows NT domains to interoperate with active directory domains by allowing unauthenticated access to specific AD data. The default permissions on many AD objects are set to allow access to the Pre-Windows 2000 Compatible Access group.
How do I find my Windows user name?
Method 1
- While sitting at the host computer with LogMeIn installed, press and hold the Windows key and press the letter R on your keyboard. The Run dialog box is displayed.
- In the box, type cmd and press Enter. The command prompt window will appear.
- Type whoami and press Enter.
- Your current username will be displayed.
Is sAMAccountName required?
See the note below. In Windows 2000 Server Active Directory the sAMAccountName attribute is mandatory and an error is raised if you fail to assign a value before the object is saved to Active Directory. However, the system limits sAMAccountName to 20 characters for user objects and 16 characters for computer objects.
Is UserPrincipalName unique?
UserPrincipalName must be unique among all Security Principal Objects within the directory forest. When creating a new user object, you should check the local domain and the global catalog for the proposed name to ensure it does not already exist.
What is Pre Windows 2000 Compatible Access group used for?
The Pre-Windows 2000 Compatible Access group was created to allow Windows NT domains to interoperate with AD domains by allowing unauthenticated access to certain AD data. The default permissions on many AD objects are set to allow access to the Pre-Windows 2000 Compatible Access group.
What is the Windows Authorization Access Group?
The Windows Authorizations Access Group (WAAG) is a new built-in security group introduced in Windows Server 2003. The members of this group are allowed to look up group membership for a particular user.
How do I find out my windows security username and password?
Replies (3)
- Press Windows key + X.
- Select Control Panel.
- Go to User Accounts.
- On right hand panel of the window, click on Manage your credentials.
- Select Windows Credentials.
- Under Generic Credentials, expand “MicrosoftAccount:user= (where should be your.
- Click on Edit option.
How do I know my username?
To find your username and reset your password:
- Go to the Forgot Password or Username page.
- Enter your account email address, but leave the username box blank!
- Click Continue.
- Check your email inbox—you’ll get an email with a list of any usernames associated with your account email address.