Открыть сервис

Distinguished Name

Distinguished Name (DN, рус. «отличительное имя») — это строка символов, однозначно идентифицирующая конкретного субъекта (пользователя, сервер, устройство, организацию) в иерархической системе каталогов, основанной на протоколе X.500 и его облегчённом варианте LDAP (Lightweight Directory Access Protocol). DN представляет собой последовательность атрибутов, каждый из которых описывает один уровень иерархии, от самого общего к самому конкретному, и используется для точного адресования записи в распределённой базе данных, такой как Microsoft Active Directory, OpenLDAP или каталог сертификатов X.509.

История и контекст возникновения

Протокол X.500, разработанный Международным союзом электросвязи (ITU-T) в конце 1980-х годов, стал первой попыткой создания глобальной системы каталогов, аналогичной телефонному справочнику для компьютерных сетей. X.500 определял сложную иерархическую структуру записей, где каждая запись имела уникальный путь. Однако из-за громоздкости и требовательности к ресурсам X.500 не получил широкого распространения в интернете. В середине 1990-х годов появился LDAP, упрощённый протокол доступа к каталогам, который сохранил основную идею именования записей через Distinguished Name.

Структура DN была заимствована из X.500 и адаптирована для LDAP. Также DN активно применяется в инфраструктуре открытых ключей (PKI), где каждому цифровому сертификату X.509 присваивается Distinguished Name владельца (Subject DN) и издателя (Issuer DN). Это позволило однозначно связывать сертификат с конкретным субъектом или устройством в иерархии доверия.

Структура и синтаксис Distinguished Name

Distinguished Name состоит из последовательности пар «атрибут=значение», разделённых запятыми (,). Порядок атрибутов — от самого конкретного (крайнего правого элемента) к самому общему (крайнего левого), однако на практике в LDAP-каталогах часто используется обратный порядок, где наиболее общий атрибут идёт первым справа. В стандарте RFC 4514 (формат LDAP-имен) атрибуты перечисляются слева направо в порядке возрастания иерархии.

Типовые атрибуты, используемые в DN:

Пример DN субъекта в Active Directory:

CN=Иванов Иван Петрович,OU=Отдел разработки,OU=Департамент информационных технологий,DC=example,DC=com

Здесь DC=example,DC=com задаёт корень дерева (домен example.com), далее два подразделения, затем CN — конкретная учётная запись.

Различие между Relative Distinguished Name и Distinguished Name

Каждая запись в LDAP-каталоге имеет свой Relative Distinguished Name (RDN) — это один атрибут, который однозначно идентифицирует запись внутри своего родительского контейнера. Например, для записи выше RDN — CN=Иванов Иван Петрович. Полный же DN строится как цепочка RDN всех предков, начиная от корня каталога. В Active Directory почти все RDN являются именами (CN) или компонентами домена (DC), тогда как в OpenLDAP типичны UID или CN.

Использование в Active Directory

В среде Microsoft Active Directory Distinguished Name является основным способом обращения к объектам через LDAP-протокол и через ADSI (Active Directory Service Interfaces). DN хранится в атрибуте distinguishedName для каждого объекта. Однако при выводе пользователю (например, в оснастках управления) чаще отображается «относительное имя» или просто имя учётной записи (SAM-имя), так как DN может быть длинным и неудобным для восприятия.

При создании учётной записи администратор обычно указывает контейнер (OU), и система автоматически формирует DN, добавляя RDN к DN родительского контейнера. Изменение родительского контейнера (перемещение объекта) приводит к изменению его DN.

Использование в сертификатах X.509

Каждый цифровой сертификат, соответствующий стандарту X.509 (например, SSL/TLS-сертификаты, сертификаты подписи ЭЦП), содержит поля Subject (DN владельца) и Issuer (DN издателя). DN в сертификате обычно состоит из следующих атрибутов: CN, O, OU, L, ST, C. Для проверки цепочки доверия система сопоставляет DN издателя корневого сертификата с DN издателя подчинённого. Если они не совпадают, цепочка считается нарушенной.

Пример DN Subject в сертификате SSL-сайта:

CN=www.example.com, OU=Web Services, O=Example Inc., L=San Francisco, ST=California, C=US

При обращении к сайту браузер проверяет, что имя в поле CN (или альтернативных именах) совпадает с доменом в адресной строке.

Правила кодирования и экранирования

Согласно RFC 4514, значения атрибутов в DN могут содержать специальные символы, такие как запятая (;), знак плюс (+), кавычки ("), обратная косая черта (\), знак равенства (=) и пробелы в начале/конце. Для корректного парсинга эти символы экранируются обратной косой чертой (\). Например, DN для пользователя с фамилией «Смит, Джон» будет выглядеть как:

CN=Смит\, Джон,OU=Отдел,DC=example,DC=com

Пробелы в конце или начале значения также экранируются (например, CN=\ Иван\ ). Существуют также более длинные строки с экранированием в двоичном представлении, но на практике для российских LDAP-каталогов редко встречаются сложные символы, кроме запятых и точек.

Проблемы и ограничения

Сравнение со схемами адресации

Distinguished Name является частным случаем иерархической адресации, характерной для систем, основанных на X.500. В отличие от IP-адреса (плоская или иерархическая сетевая адресация) или URL (веб-адресация, основанная на доменном имени и пути), DN адресует запись в контексте каталога учётных записей и ресурсов. Он может содержать DNS-подобные компоненты (DC), но не предназначен для работы через DNS напрямую. В Active Directory существует интеграция DNS и LDAP, где DN может быть получен из полного квалифицированного доменного имени (FQDN), но обратное преобразование не тривиально.

Интересные факты

Источники

  1. RFC 4514 — Lightweight Directory Access Protocol (LDAP): String Representation of Distinguished Names (2006).
  2. ITU-T Recommendation X.521 — Information technology — Open Systems Interconnection — The Directory: Selected Attribute Types (2016).
  3. Microsoft Docs — «Distinguished Names» (Active Directory Technical Reference, 2020).
  4. RFC 5280 — Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile (2008).
  5. «LDAP: Programming Directory-Enabled Applications with Lightweight Directory Access Protocol» — T. Howes, M. Smith (2001, Addison-Wesley) — разделы по DN и синтаксису.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →