Ограничения на значения атрибутов именования объектов

В разделе описываются ограничения на значения атрибутов, используемых в продукте «Служба каталогов "Эллес"» для именования и идентификации основных объектов каталога.

Общие сведения

Для объектов в Эллес используются способы именования и идентификации, соответствующие требованиям используемых протоколов (LDAP, DNS) и обеспечивающие возможность работы в смешанной среде совместно с контроллерами домена под управлением ОС Windows Server.

Относительное уникальное имя (RDN)

Относительное уникальное имя (Relative Distinguished Name, RDN) экземпляра класса объектов определяется атрибутом именования, указанным для данного класса в схеме службы каталогов.

Согласно разделу 2.3 RFC 2253 атрибут именования представляет собой строку, состоящую из указания на тип атрибута (AttributeType), символа = и значения атрибута (AttributeValue).

Для большинства классов объектов, включая пользователей, группы, компьютеры, контакты и контейнеры, используется тип commonName (CN), для подразделений — тип organizationalUnitName (OU), для компонентов домена — тип domainComponent (DC) и т. д.

В определении класса в схеме службы каталогов тип атрибута именования задается атрибутом rDnAttID.

Для просмотра типа атрибута именования, установленного для класса объектов, может использоваться, например, утилита samba-tool:

samba-tool schema objectclass show user | grep rDNAttID
rDNAttID: cn
samba-tool schema objectclass show organizationalUnit | grep rDNAttID
rDNAttID: ou
samba-tool schema objectclass show locality | grep rDNAttID
rDNAttID: l

Значение RDN должно быть уникальным в рамках контейнера, в котором оно находится. В каталоге может быть множество экземпляров объектов с одинаковыми значениями RDN, но при этом никакие два из них не могут быть внутри одного и того же контейнера.

Уникальное имя (Distinguished Name)

Уникальное имя (Distinguished Name, DN) — текущее имя объекта, хранящееся в атрибуте distinguishedName (dn). Представляет собой строку, описывающую расположение объекта в каталоге в виде последовательности относительного уникального имени объекта (RDN) и всех его предков до корня каталога. Например, уникальное имя контейнера Users в домене domain.name — CN=Users,DC=domain,DC=name.

Значение DN объекта должно быть уникальным в рамках леса доменов.

Перемещение или переименование объекта приводит к изменению его уникального имени.

Примеры получения уникального имени объекта (DN) по его относительному имени (RDN) с помощью утилиты samba-tool:

samba-tool computer show COMPUTER1$ | grep distinguishedName
distinguishedName: CN=COMPUTER1,CN=Computers,DC=domain,DC=name
samba-tool user show Administrator | grep distinguishedName
distinguishedName: CN=Administrator,CN=Users,DC=domain,DC=name
samba-tool group show "Domain Users" | grep distinguishedName
distinguishedName: CN=Domain Users,CN=Users,DC=domain,DC=name

GUID объекта

GUID объекта — глобальный уникальный идентификатор, присваиваемый объекту службой каталогов при его создании. Содержится в атрибуте objectGUID объекта.

После создания значение GUID не изменяется. Таким образом, при переименовании объекта (изменение значения RDN) или перемещении в другой контейнер (изменение значения DN) в лесу доменов его GUID остается прежним.

Пример получения GUID объекта с помощью утилиты samba-tool:

samba-tool contact show Contact1 | grep objectGUID
objectGUID: 38984db8-d9a1-449d-ab81-90de9eb945b9

Прочие атрибуты идентификации

Различные атрибуты экземпляров объектов могут использоваться для идентификации их сервисами и приложениями в службе каталогов и сети.

Например, для идентификации объектов, являющихся субъектами безопасности (экземпляры классов объектов «пользователь», «компьютер» и «группа»), могут использоваться атрибуты:

  • sAMAccountName — имя учетной записи объекта для входа в домен, используемое для поддержки клиентов и серверов на ранних версиях ОС Windows;

  • userPrincipalName — имя для входа пользователя в домен в формате username@domain.name/username@subdomain.domain.name в соответствии с RFC 822;

  • objectSid — уникальный идентификатор субъекта безопасности (Security Identifier, SID), назначаемый в домене при создании.

Атрибут sAMAccountName

Ограничения на значения sAMAccountName:

  • значение атрибута sAMAccountName должно быть уникальным среди всех объектов, являющихся субъектами безопасности, в рамках домена;

  • допускаются все печатаемые символы, кроме:

    " [ ] : ; | = + * ? < > / \ ,
  • символ точки (.) допускается, но не может быть последним в значении sAMAccountName;

  • запрещены непечатаемые символы (коды ASCII до 32 в десятичной нотации или до 20 — в шестнадцатеричной); также запрещен символ с кодом ASCII 127 (0x7F);

  • в sAMAccountName учетных записей пользователей запрещен символ @;

    При создании имен командлетами (например, Set-ADUser) в скриптах или инструментах командной строки на ОС Windows Server данный символ может включаться в sAMAccountName пользователей. Однако в этом случае вход в систему под таким пользователем возможен только с userPrincipalName.
  • в sAMAccountName компьютеров запрещены пробелы и точки;

  • sAMAccountName компьютера не может состоять только из цифр;

  • sAMAccountName компьютера не может начинаться с цифры;

  • длина:

    • в схеме максимальная длина атрибута sAMAccountName — 256 символов;

    • для sAMAccountName компьютера рекомендуется использовать не более 16 символов.

    • для sAMAccountName остальных объектов рекомендуется использовать не более 20 символов;

      sAMAccountName компьютера должно совпадать с его NetBIOS-именем, к которому добавляется символ $.

Относительные уникальные имена (RDN)

Ограничения на значения RDN:

  • должно быть уникальным в рамках родительского подразделения или контейнера;

  • максимальная длина RDN — 64 символа.

Список символов, которые не должны использоваться в RDN без экранирования с использованием символа обратной косой черты (\) согласно RFC 4514:

Символ Описание Hex-код для экранирования

Пробел или # в начале строки

Пробел в конце строки

,

Запятая

\2c

+

Плюс

\2b

"

Двойные кавычки

\22

\

Обратная косая черта

\5c

<

Левая угловая скобка

\3c

>

Правая угловая скобка

\3e

;

Точка с запятой

\3b

=

Равно

\3d

При экранировании может использоваться как сам символ, так и его шестнадцатеричный код.

Примеры экранирования:

  • экранирование символов " и ,:

    CN=James \"Jim\" Smith\, III,DC=domain,DC=name
  • экранирование символа возврата каретки:

    CN=Before\0dAfter,DC=domain,DC=name

Атрибут userPrincipalName

Значение атрибута userPrincipalName (UPN) состоит из префикса, в качестве которого используется имя учетной записи пользователя, и суффикса, в качестве которого выступает DNS-имя домена. В качестве разделителя между префиксом и суффиксом используется символ @. Например — someone@example.com.

Значение UPN должно быть уникальным среди всех субъектов безопасности в лесу доменов. Таким образом, префикс может использоваться повторно только с другим суффиксом.

На суффикс UPN накладываются следующие ограничения:

  • это должно быть DNS-имя домена; при этом это необязательно должно быть имя домена, к которому относится пользователь;

  • это обязательно должно быть имя домена, относящегося к текущему лесу, либо иное имя, указанное в атрибуте upnSuffixes контейнера Partitions в контейнере Configuration.

Значение UPN может быть задано для учетной записи пользователя при создании, но не является обязательным атрибутом. На него не влияют изменения, вносимые в другие атрибуты учетной записи, включая переименования и перемещения в другие контейнеры. Таким образом, пользователь может продолжать использовать его для входа в домен даже после внесения таких изменений.

При необходимости администратор может изменить значение UPN.

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

При входе пользователя в домен с использованием UPN выполняется поиск сначала в текущем домене, а затем — в глобальном каталоге.

Максимальная длина UPN — 1024 символа, включая префикс, символ @ и суффикс.

DNS-имя домена

Под DNS-именем домена понимаются значения следующих атрибутов и параметров:

  • значение параметра -DomainName команды PowerShell Install-ADDSForest в Microsoft Active Directory Directory Services (AD DS);

  • значение аргумента --realm команды samba-tool domain provision в Эллес;

  • значение атрибута realm в конфигурационном файле smb.conf;

  • значение атрибута Domain в ответе команды samba-tool domain info в Эллес.

Ограничения на DNS-имя домена:

  • имя не может состоять из одного элемента (label) без точки;

  • имя не может состоять из одной точки (домен нулевого уровня);

  • запрещены все специальные символы, кроме точки (.) и дефиса/минуса (-);

  • имя не может начинаться с цифры;

  • длина:

    • минимальная длина — 2 символа;

    • максимальная длина — 64 символов (155 байт при использовании UTF-8).

NetBIOS-имя домена

Под NetBIOS-именем домена понимаются значения следующих атрибутов и параметров:

  • значение параметра -DomainNetbiosName команды PowerShell Install-ADDSForest в AD DS;

  • значение аргумента --domain команды samba-tool domain provision в Эллес;

  • значение атрибута Netbios domain в ответе команды samba-tool domain info в Эллес;

  • значение атрибута workgroup в конфигурационном файле smb.conf.

Ограничения на NetBIOS-имя домена:

  • запрещенные специальные символы:

    "/ \ [ ] : | < > + = ; , ? *
  • разрешенные специальные символы:

    ! # $ % & ' ( ) - @ ^ _ { } ~
  • разрешены пробелы;

  • имя не может состоять только из цифр;

  • имя не может начинаться с цифры;

  • имя не может содержать символ точки (.);

  • длина:

    • минимальная длина — 1 символ;

    • максимальная длина — 15 символов.

Если при развертывании домена/леса Эллес указывается валидное значение NetBIOS-имени, оно используется при выполнении команды samba-tool domain provision.

При отсутствии параметра он автоматически формируется из значения параметра realm (аналог DomainName в AD DS) с учетом ограничения по длине в 15 символов.

Имя хоста (hostname)

Имя хоста используется при развертывании домена/леса Эллес с помощью команды samba-tool domain provision.

Под именем хоста понимаются значения следующих атрибутов и параметров:

  • значение атрибута DC netbios domain в ответе команды samba-tool domain info в Эллес;

  • значение атрибута netbios name в конфигурационном файле smb.conf.

Ограничения на имя хоста:

  • запрещены все специальные символы, кроме точки (.) и дефиса/минуса (-);

  • имя не может состоять только из цифр;

  • имя не может начинаться с цифры;

  • длина:

    • минимальная длина — 1 символ;

    • максимальная длина:

      • 63 символа для DNS-имени хоста;

      • 15 символов для NetBIOS-имени хоста.

Имя сайта

В качестве имени сайта рекомендуется использовать валидное DNS-имя.

Длина:

  • минимальная длина — 1 символ;

  • максимальная длина — 63 символа.

Имя подразделения (OU)

В именах подразделений разрешены любые символы, включая те, которые входят в расширенный набор. Протокол LDAP не накладывает ограничений.

Длина:

  • минимальная длина — 1 символ;

  • максимальная длина — 64 символа.

Имя группы

Максимальная длина значения атрибута CN группы — 64 символа.

Имя контакта

Максимальная длина значения атрибута CN контакта — 64 символа.