Почему компьютеры являются пользователями в Active Directory: объяснение и особенности

Почему в Active Directory компьютеры имеют класс объекта "user"?

При работе с Active Directory (AD) часто возникает вопрос: почему компьютерные учетные записи имеют такой же objectClass:user, как и обычные пользователи? Разберёмся, что стоит за этим явлением и как отличить именно пользовательские учетные записи от компьютерных.


Пример LDAP-запроса для получения учетных записей пользователей и компьютеров

Для начала посмотрим на пример LDAP-запроса к AD, который возвращает все объекты с классом user в домене itdrde.local:

bash
ldapsearch -H ldap://$ad_ip:389 -x -D $ad_user -w $ad_password -b "DC=itdrde,DC=local" \
-s sub -a always -z 1000 "(objectClass=user)" "serviceClassName" "serviceDNSName" "objectClass"

Результатом запроса становятся как учетные записи пользователей (например, Administrator, Guest), так и учетные записи компьютеров (например, computer1, computer2). Все они содержат атрибут objectClass:user.


Почему компьютеры считаются "пользователями"?

Основная причина в том, что в Active Directory класс computer является подклассом user. Это значит, что компьютерные учетные записи наследуют свойства пользовательских учетных записей:

  • Имеют пароли и ключи Kerberos для аутентификации,
  • Имеют SID — уникальный идентификатор безопасности,
  • Могут состоять в группах безопасности, как и обычные пользователи.

Исторически компьютеры были "особым типом пользователей" ещё в эпоху доменов WinNT и NetBIOS, где для них существовала специальная метка — "workstation trust account". При переходе на Active Directory архитекторы системы сохранили эту логику для обратной совместимости.

Таким образом, компьютеры — это, по сути, специальные учетные записи пользователей с дополнительными признаками.


Как отличить компьютерные учетные записи от пользовательских?

Для фильтрации только обычных пользователей в LDAP-запросах можно использовать следующий фильтр по атрибуту userAccountControl:

ldap
(&(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=512))

Значение 512 соответствует флагу NORMAL_ACCOUNT, который указывает на обычные пользовательские аккаунты.

Для компьютеров используются другие значения:

  • WORKSTATION_TRUST_ACCOUNT (4096) — для учетных записей рабочих станций,
  • SERVER_TRUST_ACCOUNT (8192) — для контроллеров домена.

Таким образом, анализ значения userAccountControl позволит точно разделять компьютеры и пользователей.


Почему нельзя просто использовать фильтр по objectCategory=person?

В некоторых случаях рекомендуют использовать фильтр (objectCategory=person) для поиска пользователей, но этот метод менее точный. Например, в AD могут существовать междоменные учётные записи доверия (inter-domain trust accounts), которые тоже имеют objectCategory=person.

Поэтому лучше полагаться на userAccountControl для более корректного разделения объектов.


Заключение

В Active Directory компьютерные учетные записи являются наследниками класса user, что объясняется историей развития систем Windows и необходимостью обеспечить обратную совместимость с доменами WinNT. Чтобы корректно работать с пользователями и компьютерами, важно использовать фильтры на основе userAccountControl, а не только на основе objectClass или objectCategory.

Это знание поможет системным администраторам создавать более точные LDAP-запросы, избегать путаницы и лучше управлять учетными записями в AD.


Ключевые слова для SEO

Active Directory, LDAP запрос, objectClass user, учетные записи компьютеров в AD, userAccountControl, NORMAL_ACCOUNT, WORKSTATION_TRUST_ACCOUNT, LDAP фильтр для пользователей, отличие компьютеров и пользователей в AD, управление учетными записями в Active Directory.

Источник

Ответить

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