Администрирование схемы данных каталога
Для администрирования схемы данных каталога (раздел schema) в домене Эллес с помощью утилиты samba-tool используется группа подкоманд schema.
Классы объектов и атрибуты
Каждый объект в службе каталогов является экземпляром класса, для которого задается определение в схеме Active Directory. Класс объединяет в себе объекты с общими свойствами (например, пользователи, принтеры, приложения). Определение каждого класса содержит список атрибутов, которые могут использоваться для описания экземпляров данного класса. Например, класс User имеет атрибуты givenName, surname и streetAddress. Атрибуты класса делятся на обязательные и дополнительные. Поскольку каталог имеет иерархическую структуру, определение каждого класса также содержит список классов, описывающих объекты, которые являются родительскими по отношению к объектам данного класса.
Схема содержит определение для каждого атрибута, состоящее из уникальных идентификаторов атрибута, синтаксиса для его описания (типы данных для значений атрибута), допустимых диапазонов изменения значений атрибута, признака возможности задания только одного значения или нескольких значений для атрибута, а также правил поиска и индексирования атрибута. Для каждого атрибута в схеме существует строго одно определение, на которое ссылаются определения классов объектов.
Вносимые в схему изменения носят глобальный характер. Схема является единой для всего леса. С помощью механизмов репликации обеспечивается наличие копии схемы на каждом контроллере домена в лесу. Любое расширение схемы распространяется на весь лес.
Вносимые в схему дополнения являются необратимыми. Добавленный в схему новый класс или атрибут не может быть из нее удален. Существующий атрибут или класс может быть переведен в неактивное состояние, но удалить его невозможно.
Перевод класса или атрибута в неактивное состояние не влияет на существующие экземпляры данного класса или атрибута, но при этом делает невозможным создание новых экземпляров. Атрибут не может быть переведен в неактивное состояние, если он используется хотя бы в одном активном классе.
Получение определения класса объектов
Для запроса определения класса объектов (objectClass) в разделе schema каталога используется следующий формат вызова:
samba-tool schema objectclass show <objectclass>
В качестве значения objectclass ожидается имя класса объектов схемы Active Directory.
Подкоманда выводит подробную информацию об указанном классе объектов в соответствии с его определением в схеме, включая:
-
классы, которые могут содержать в себе данный класс (
PossiSuperiors); -
обязательные атрибуты экземпляра класса (
MustContain); -
необязательные атрибуты экземпляра класса (
MayContain).
Параметры
Параметры вызова:
-
-H URL|--URL=URL— URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта.
Примеры
Пример запроса определения класса person:
samba-tool schema objectclass show person dn: CN=Person,CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com objectClass: top objectClass: classSchema cn: Person instanceType: 4 whenCreated: 20230911100703.0Z whenChanged: 20230911100703.0Z uSNCreated: 1567 subClassOf: top governsID: 2.5.6.6 mayContain: attributeCertificateAttribute rDNAttID: cn showInAdvancedViewOnly: TRUE adminDisplayName: Person adminDescription: Person objectClassCategory: 0 lDAPDisplayName: person name: Person objectGUID: 5fef599f-5f08-4846-bb5e-e0a32eb27767 schemaIDGUID: bf967aa7-0de6-11d0-a285-00aa003049e2 systemOnly: FALSE systemPossiSuperors: organizationalUnit systemPossSuperiors: container systemMayContain: userPassword systemMayContain: telephoneNumber systemMayContain: sn systemMayContain: serialNumber systemMayContain: seeAlso systemMustContain: cn defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU) systemFlags: 16 defaultHidingValue: TRUE objectCategory: CN=Class-Schema,CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com defaultObjectCategory: CN=Person,CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com uSNChanged: 1568 distinguishedName: CN=Person,CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com
Получение списка классов объектов, ссылающихся на атрибут
Для получения списка классов объектов (objectClass), которые могут или должны содержать определенный атрибут, используется следующий формат вызова:
samba-tool schema attribute show_oc <attribute> [options]
В качестве значения attribute ожидается LDAP-имя атрибута в схеме Active Directory.
Параметры
Параметры вызова:
-
-H URL|--URL=URL— URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта.
Примеры
Пример запроса списка классов объектов, экземпляры которых могут или должны содержать атрибут telephoneNumber:
samba-tool schema attribute show_oc telephoneNumber --- MAY contain --- documentSeries Organization room Organizational-Unit Mail-Recipient Organizational-Role rFC822LocalPart Person --- MUST contain ---
Получение определения атрибута
Для запроса определения атрибута (attribute) в разделе schema каталога используется следующий формат вызова:
samba-tool schema attribute show <attribute> [options]
В качестве значения attribute ожидается LDAP-имя атрибута в схеме Active Directory.
Подкоманда выводит подробную информацию об указанном атрибуте в соответствии с его определением в схеме.
Параметры
Параметры вызова:
-
-H URL|--URL=URL— URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта.
Примеры
Пример запроса определения атрибута telephoneNumber:
samba-tool schema attribute show telephoneNumber dn: CN=Telephone-Number,CN=Schema,CN=Configuration,DC=homenet,DC=com objectClass: top objectClass: attributeSchema cn: Telephone-Number instanceType: 4 whenCreated: 20230911100701.0Z whenChanged: 20230911100701.0Z uSNCreated: 1436 attributeID: 2.5.4.20 attributeSyntax: 2.5.5.12 isSingleValued: TRUE rangeLower: 1 rangeUpper: 64 mAPIID: 14856 uSNChanged: 1436 showInAdvancedViewOnly: TRUE adminDisplayName: Telephone-Number adminDescription: Telephone-Number oMSyntax: 64 searchFlags: 0 lDAPDisplayName: telephoneNumber name: Telephone-Number objectGUID: 9cacbcd9-1a46-4a32-b251-22429d8e46d1 schemaIDGUID: bf967a49-0de6-11d0-a285-00aa003049e2 attributeSecurityGUID: 77b5b886-944a-11d1-aebd-0000f80367c1 systemOnly: FALSE systemFlags: 16 isMemberOfPartialAttributeSet: TRUE objectCategory: CN=Attribute-Schema,CN=Schema,CN=Configuration,DC=homenet,DC=c om distinguishedName: CN=Telephone-Number,CN=Schema,CN=Configuration,DC=homenet,D C=com
Изменение правил поиска и индексации для атрибута
Для изменения правил поиска и индексации атрибута в разделе schema каталога используется следующий формат вызова:
samba-tool schema attribute modify <attribute> [options]
В качестве значения attribute ожидается LDAP-имя атрибута в схеме Active Directory.
Подкоманда переопределяет значения флагов searchFlags, задающих правила поиска и индексации для атрибута схемы.
Значения флагов передаются в параметре --searchflags.
Наиболее значимые флаги:
-
fATTINDEX— указание для контроллера домена на необходимость индексирования атрибута; -
fPDNTATTINDEX— указание для контроллера домена на необходимость индексирования атрибута и содержащего его контейнера; -
fANR— признак включения атрибута в поиск с помощью алгоритма ANR (Ambiguous Name Resolution); -
fPRESERVEONDELETE— признак сохранения атрибута при установке на объект отметки об удалении; -
fCOPY— указание клиентам LDAP на необходимость копирования атрибута при создании копии объекта; -
fTUPLEINDEX— указание для контроллера домена на необходимость создания кортежного индекса для данного атрибута (влияет на скорость поиска по подстроке); -
fSUBTREEATTINDEX— указание для контроллера домена на необходимость индексирования атрибута в рамках операций поиска Virtual List View (VLV); -
fCONFIDENTIAL— признак того, что атрибут относится к конфиденциальной информации и для доступа к нему требуется пройти дополнительные проверки; -
fNEVERVALUEAUDIT— признак отсутствия необходимости аудита изменений, вносимых в атрибут; -
fRODCFILTEREDATTRIBUTE— признак того, что атрибут не должен реплицироваться на контроллеры домена с ролью RODC; -
fEXTENDEDLINKTRACKING— указание контроллеру домена на необходимость контроля связанных атрибутов; -
fBASEONLY— признак того, что атрибут не должен возвращаться поисковыми запросами, область действия которых не ограничена одним объектом; -
fPARTITIONSECRET— признак того, что атрибут относится к секретам и для доступа к нему требуется пройти дополнительные проверки.
Расширение схемы атрибутами для управления паролями локальных администраторов (LAPS)
Local Administrator Password Solution (LAPS) — технология автоматического управления паролями локальных администраторов на компьютерах в корпоративной среде.
В рамках samba-tool schema предоставляются подкоманды для добавления в схему данных каталога атрибутов для поддержки:
-
текущего варианта реализации функциональности автоматического управления паролями локальных администраторов компьютеров, встроенного в ОС Windows (Windows LAPS);
-
предшествующего варианта реализации в виде отдельного продукта Microsoft LAPS (Legacy Microsoft LAPS).
Расширение схемы атрибутами для поддержки Windows LAPS
Для добавления в схему атрибутов для поддержки Windows LAPS используется следующий формат вызова:
samba-tool schema extend laps-v2 [options]
Подкоманда добавляет в класс объектов computer в схеме данных каталога следующие атрибуты:
|
Свойства |
Описание |
|
Name: ms-LAPS-Password LDAP display name: msLAPS-Password OID: 1.2.840.113556.1.6.44.1.2 Syntax: 2.5.5.5 OmSyntax: 19 IsSingleValued: True IsMemberOfPartialAttributeSet: False SearchFlags: 904 AttributeSecurityGuid: <not set> |
Строка Unicode, содержащая незашифрованную версию текущего пароля и другую информацию в формате JSON. Данные в атрибуте сохраняются как JSON-строка, содержащая пары имя-значение:
|
|
Name: ms-LAPS-PasswordExpirationTime LDAP display name: msLAPS-PasswordExpirationTime OID: 1.2.840.113556.1.6.44.1.1 Syntax: 2.5.5.16 OmSyntax: 65 IsSingleValued: True IsMemberOfPartialAttributeSet: False SearchFlags: 0 AttributeSecurityGuid: <not set> |
64-битное целое число, указывающее текущее запланированное время истечения периода действия пароля в UTC |
|
Name: ms-LAPS-EncryptedPassword LDAP display name: msLAPS-EncryptedPassword OID: 1.2.840.113556.1.6.44.1.3 Syntax: 2.5.5.10 OmSyntax: 4 IsSingleValued: True IsMemberOfPartialAttributeSet: False SearchFlags: 904 AttributeSecurityGuid: f3531ec6-6330-4f8e-8d39-7a671fbac605 (ms-LAPS-Encrypted-Password-Attributes) |
Байтовая строка, содержащая зашифрованную версию текущего пароля |
|
Name: ms-LAPS-EncryptedPasswordHistory LDAP display name: msLAPS-EncryptedPasswordHistory OID: 1.2.840.113556.1.6.44.1.4 Syntax: 2.5.5.10 OmSyntax: 4 IsSingleValued: False IsMemberOfPartialAttributeSet: False SearchFlags: 904 AttributeSecurityGuid: f3531ec6-6330-4f8e-8d39-7a671fbac605 (ms-LAPS-Encrypted-Password-Attributes) |
Байтовая строка с несколькими значениями, каждое из которых содержит зашифрованную версию предыдущего пароля |
|
Name: ms-LAPS-EncryptedDSRMPassword LDAP display name: msLAPS-EncryptedDSRMPassword OID: 1.2.840.113556.1.6.44.1.5 Syntax: 2.5.5.10 OmSyntax: 4 IsSingleValued: True IsMemberOfPartialAttributeSet: False SearchFlags: 904 AttributeSecurityGuid: f3531ec6-6330-4f8e-8d39-7a671fbac605 (ms-LAPS-Encrypted-Password-Attributes) |
Байтовая строка, содержащая зашифрованную версию текущего пароля учетной записи Directory Service Restore Mode (DSRM) |
|
Name: ms-LAPS-EncryptedDSRMPasswordHistory LDAP display name: msLAPS-EncryptedDSRMPasswordHistory OID: 1.2.840.113556.1.6.44.1.6 Syntax: 2.5.5.10 OmSyntax: 4 IsSingleValued: False IsMemberOfPartialAttributeSet: False SearchFlags: 904 AttributeSecurityGuid: f3531ec6-6330-4f8e-8d39-7a671fbac605 (ms-LAPS-Encrypted-Password-Attributes) |
Байтовая строка с несколькими значениями, каждое из которых содержит зашифрованную версию предыдущего пароля DSRM |
|
Name: ms-LAPS-CurrentPasswordVersion LDAP display name: msLAPS-CurrentPasswordVersion OID: 1.2.840.113556.1.6.44.1.7 Syntax: 2.5.5.10 OmSyntax: 4 IsSingleValued: True IsMemberOfPartialAttributeSet: False RangerLower: 16 RangerUpper: 16 SearchFlags: 904 AttributeSecurityGuid: f3531ec6-6330-4f8e-8d39-7a671fbac605 (ms-LAPS-Encrypted-Password-Attributes) |
Бинарный GUID, представляющий логическую версию последнего сохраненного пароля |
|
Name: ms-LAPS-Encrypted-Password-Attributes Rights guid: f3531ec6-6330-4f8e-8d39-7a671fbac605 Valid accesses: 48 (RIGHT_DS_READ_PROPERTY | RIGHT_DS_WRITE_PROPERTY) |
Объект в контейнере |
Для успешного выполнения подкоманды должен быть доступен сервер с FSMO-ролью Schema Master.
Подкоманда должна выполняться от имени пользователя, включенного в группу Schema Admins.
В Эллес по умолчанию разрешено внесение изменений в схему данных каталога. При возникновении ошибки доступа к схеме проверьте значение параметра dsdb:schema update allowed в конфигурационном файле smb.conf. Если параметр имеет значение false в smb.conf, удалите его или измените значение на true.
|
Примеры
Пример расширения схемы для поддержки Windows LAPS:
samba-tool schema extend laps-v2 Adding ms-LAPS-Encrypted-Password-Attributes property set to the extended-rights: ok Adding ms-LAPS-Password attribute to the Schema: ok Adding ms-LAPS-PasswordExpirationTime attribute to the Schema: ok Adding ms-LAPS-EncryptedPassword attribute to the Schema: ok Adding ms-LAPS-EncryptedPasswordHistory attribute to the Schema: ok Adding ms-LAPS-EncryptedDSRMPassword attribute to the Schema: ok Adding ms-LAPS-EncryptedDSRMPasswordHistory attribute to the Schema: ok Adding ms-LAPS-CurrentPasswordVersion attribute to the Schema: ok Reloading Schema: ok Adding laps-v2 attributes to the 'Computer' class: ok Reloading Schema: ok
Расширение схемы атрибутами для работы с Legacy Microsoft LAPS
Для добавления в схему атрибутов для поддержки Legacy Microsoft LAPS используется следующий формат вызова:
samba-tool schema extend laps-v1 [options]
Подкоманда добавляет в класс объектов computer в схеме данных каталога следующие атрибуты:
| Атрибут | Свойства в схеме | Описание |
|---|---|---|
|
cn: ms-Mcs-AdmPwd ldapDisplayName: ms-Mcs-AdmPwd attributeId: 1.2.840.113556.1.8000.2554.50051.45980.28112.18903.35903.6685103.1224907.2.1 attributeSyntax: 2.5.5.7 omSyntax: 19 isSingleValued: TRUE systemOnly: FALSE searchFlags: fPRESERVEONDELETE| fCONFIDENTIAL | fNEVERVALUEAUDIT | fRODCFilteredAttribute |
Строка, содержащая текущий пароль локального администратора в незашифрованном виде |
|
cn: ms-Mcs-AdmPwdExpirationTime ldapDisplayName: ms-Mcs-AdmPwdExpirationTime attributeId: 1.2.840.113556.1.8000.2554.50051.45980.28112.18903.35903.6685103.1224907.2.2 attributeSyntax: 2.5.5.16 omSyntax: 65 isSingleValued: TRUE systemOnly: FALSE searchFlags: 0 |
Время истечения периода действия пароля, содержащегося в атрибуте |
Для успешного выполнения подкоманды должен быть доступен сервер с FSMO-ролью Schema Master.
Подкоманда должна выполняться от имени пользователя, включенного в группу Schema Admins.
В Эллес по умолчанию разрешено внесение изменений в схему данных каталога. При возникновении ошибки доступа к схеме проверьте значение параметра dsdb:schema update allowed в конфигурационном файле smb.conf. Если параметр имеет значение false в smb.conf, удалите его или измените значение на true.
|
Примеры
Пример расширения схемы для поддержки Legacy Microsoft LAPS:
samba-tool schema extend laps-v1 Adding ms-Mcs-AdmPwd attribute to the Schema: ok Adding ms-Mcs-AdmPwdExpirationTime attribute to the Schema: ok Reloading Schema: ok Adding laps-v1 attributes to the 'Computer' class: ok Reloading Schema: ok