Возможно ли войти в систему с использованием значения DisplayName?

Можно ли войти в домен по DisplayName вместо sAMAccountName?

При работе с Active Directory (AD) часто возникает вопрос: можно ли использовать свойство displayName для входа в систему вместо привычного уникального идентификатора пользователя — sAMAccountName? Рассмотрим, как работают механизмы аутентификации в AD и какие атрибуты действительно подходят для логина.

Что такое displayName и почему его нельзя использовать для входа

displayName — это строка, предназначенная для удобного отображения имени пользователя в списках, справочниках и интерфейсах. Например, «Vasya Second». Этот атрибут не гарантирует уникальность в домене. Несколько пользователей могут иметь одинаковый displayName, поскольку это всего лишь «читаемое» имя.

Для входа требуются уникальные атрибуты, по которым система сможет однозначно идентифицировать аккаунт и проверить пароль. В Active Directory такими уникальными атрибутами являются:

  • sAMAccountName — устаревший, но широко используемый атрибут, обычно в формате DOMAIN\username. Должен быть уникален в домене.
  • UserPrincipalName (UPN) — современный логин, по форме напоминающий email: например, vasya.second@other.local. Также уникален в домене.

Именно эти атрибуты поддерживаются механизмами аутентификации Windows и большинством приложений. displayName для логина не предназначен.

Почему не получается создать пользователя с одинаковым displayName и другим sAMAccountName?

При попытке создать пользователя с тем же displayName, но другим sAMAccountName, ошибку «уже используется» вызывает не displayName, а правило уникальности в определённой части дерева каталога (например, в контейнере пользователей — CN=Users). Здесь уникальность обеспечивается за счёт полного пути Distinguished Name.

Фактически displayName может совпадать у нескольких пользователей, но в одном контейнере создаются ограничения, если уже существует объект с точно таким же именем в иерархии AD.

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

Вариант 1. Использование sAMAccountName с пробелами

Хотя пробелы в sAMAccountName не рекомендуются, технически они возможны.

Например, если задать имя пользователя как Andy Smith, то для командной строки или скриптов нужно окружать имя кавычками:

net user "andy smith" /FULLNAME:"Smith, Andy"

В этом случае логин происходит по sAMAccountName, а <> служит для отображения.

Вариант 2. Использование UserPrincipalName (UPN)

UPN чаще обладает читаемым форматом, похожим на email, и позволяют удобно логиниться, особенно в смешанных или облачных средах.

Пример: vasya.second@other.local

Вариант 3. Вход через ldp.exe или специальные приложения

В некоторых специальных случаях, например, при использовании утилиты ldp.exe, можно указать иные способы идентификации, включая GUID объекта. Однако это технические обходные пути и они не подходят для обычного интерактивного входа.

Почему DisplayName не подходит для входа в домен

  • displayName не уникален в домене.
  • Не реализована проверка пароля для этого атрибута в стандартных средствах аутентификации.
  • Отсутствует поддержка во встроенных механизмах Windows для входа.

Итоги и рекомендации

  • Для входа всегда используйте sAMAccountName или UserPrincipalName. Эти атрибуты уникальны и поддерживаются системными механизмами.
  • Если хотите, чтобы имя пользователя выглядело привычно и с пробелами, можно задать sAMAccountName с пробелами, но нужно учитывать особенности работы с такими именами — например, использовать кавычки в командной строке.
  • displayName стоит использовать только для отображения имени в интерфейсах и справочниках, но не для аутентификации.
  • Для современных сценариев и облачной интеграции рекомендуют использовать UserPrincipalName с форматом, аналогичным email.

Таким образом, изменить стандартный механизм входа по sAMAccountName в AD, чтобы использовать displayName, невозможно и в этом нет необходимости.

Ответить

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