Ограничения на значения атрибутов именования объектов
В разделе описываются ограничения на значения атрибутов, используемых в продукте «Служба каталогов "Эллес"» для именования и идентификации основных объектов каталога.
Общие сведения
Для объектов в Эллес используются способы именования и идентификации, соответствующие требованиям используемых протоколов (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пользователя — 20 символов; -
для
sAMAccountNameкомпьютера — 16 символов.sAMAccountNameкомпьютера должно совпадать с его NetBIOS-именем, к которому добавляется символ$. Таким образом, его длина фактически не должна превышать 15 символов.
-
Относительные уникальные имена (RDN)
Ограничения на значения RDN:
-
должно быть уникальным в рамках родительского подразделения или контейнера;
-
максимальная длина RDN — 64 символа.
Список символов, которые не должны использоваться в RDN без экранирования с использованием символа обратной косой черты (\) согласно RFC 4514:
| Символ | Описание | Hex-код для экранирования |
|---|---|---|
Пробел или |
||
Пробел в конце строки |
||
|
Запятая |
|
|
Плюс |
|
|
Двойные кавычки |
|
|
Обратная косая черта |
|
|
Левая угловая скобка |
|
|
Правая угловая скобка |
|
|
Точка с запятой |
|
|
Равно |
|
При экранировании может использоваться как сам символ, так и его шестнадцатеричный код.
Примеры экранирования:
-
экранирование символов
"и,: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команды PowerShellInstall-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команды PowerShellInstall-ADDSForestв AD DS; -
значение аргумента
--domainкомандыsamba-tool domain provisionв Эллес; -
значение атрибута
Netbios domainв ответе командыsamba-tool domain infoв Эллес; -
значение атрибута
workgroupв конфигурационном файле smb.conf.
Ограничения на NetBIOS-имя домена:
-
запрещенные специальные символы:
"/ \ [ ] : | < > + = ; , ? *
-
разрешенные специальные символы:
! # $ % & ' ( ) - @ ^ _ { } ~ -
разрешены пробелы;
-
имя не может состоять только из цифр;
-
имя не может начинаться с цифры;
-
имя не может содержать символ точки (
.); -
длина:
-
минимальная длина — 1 символ;
-
максимальная длина — 15 символов.
-
|
Если при развертывании домена/леса Эллес указывается валидное значение NetBIOS-имени, оно используется при выполнении команды При отсутствии параметра он автоматически формируется из значения параметра |
Имя хоста (hostname)
Имя хоста используется при развертывании домена/леса Эллес с помощью команды samba-tool domain provision.
Под именем хоста понимаются значения следующих атрибутов и параметров:
-
значение атрибута
DC netbios domainв ответе командыsamba-tool domain infoв Эллес; -
значение атрибута
netbios nameв конфигурационном файле smb.conf.
Ограничения на имя хоста:
-
запрещены все специальные символы, кроме точки (
.) и дефиса/минуса (-); -
имя не может состоять только из цифр;
-
имя не может начинаться с цифры;
-
длина:
-
минимальная длина — 1 символ;
-
максимальная длина:
-
63 символа для DNS-имени хоста;
-
15 символов для NetBIOS-имени хоста.
-
-
Имя сайта
В качестве имени сайта рекомендуется использовать валидное DNS-имя.
Длина:
-
минимальная длина — 1 символ;
-
максимальная длина — 63 символа.