Администрирование схемы данных каталога

Для администрирования схемы данных каталога (раздел 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 — признак того, что атрибут относится к секретам и для доступа к нему требуется пройти дополнительные проверки.

Параметры

Параметры вызова:

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта;

  • --searchflags — значения флагов, задающих правила поиска и индексирования атрибута (searchFlags).

Примеры

Пример изменения правил поиска и индексирования для атрибута uid:

samba-tool schema attribute modify uid \
--searchflags="fATTINDEX,fPRESERVEONDELETE"

Расширение схемы атрибутами для управления паролями локальных администраторов (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 в схеме данных каталога следующие атрибуты:

Атрибут

Свойства

Описание

msLAPS-Password

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-строка, содержащая пары имя-значение:

  • "n": имя управляемой учетной записи локального администратора;

  • "t": время обновления пароля UTC в виде 64-битного шестнадцатеричного числа;

  • "p": пароль в открытом виде

msLAPS-PasswordExpirationTime

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

ms-LAPS-EncryptedPassword

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)

Байтовая строка, содержащая зашифрованную версию текущего пароля

ms-LAPS-EncryptedPasswordHistory

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)

Байтовая строка с несколькими значениями, каждое из которых содержит зашифрованную версию предыдущего пароля

ms-LAPS-EncryptedDSRMPassword

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)

ms-LAPS-EncryptedDSRMPasswordHistory

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

ms-LAPS-CurrentPasswordVersion

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, представляющий логическую версию последнего сохраненного пароля

ms-LAPS-Encrypted-Password-Attributes

Name: ms-LAPS-Encrypted-Password-Attributes
Rights guid: f3531ec6-6330-4f8e-8d39-7a671fbac605
Valid accesses: 48 (RIGHT_DS_READ_PROPERTY | RIGHT_DS_WRITE_PROPERTY)

Объект в контейнере Extended-Rights, позволяющий выдавать управляемым устройствам права на чтение и запись значений атрибутов LAPS

Для успешного выполнения подкоманды должен быть доступен сервер с FSMO-ролью Schema Master.

Подкоманда должна выполняться от имени пользователя, включенного в группу Schema Admins.

В Эллес по умолчанию разрешено внесение изменений в схему данных каталога. При возникновении ошибки доступа к схеме проверьте значение параметра dsdb:schema update allowed в конфигурационном файле smb.conf. Если параметр имеет значение false в smb.conf, удалите его или измените значение на true.

Параметры

Доступны стандартные параметры samba-tool. Дополнительные параметры отсутствуют.

Примеры

Пример расширения схемы для поддержки 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 в схеме данных каталога следующие атрибуты:

Атрибут Свойства в схеме Описание

ms-Mcs-AdmPwd

 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

Строка, содержащая текущий пароль локального администратора в незашифрованном виде

ms-Mcs-AdmPwdExpirationTime

 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

Время истечения периода действия пароля, содержащегося в атрибуте ms-Mcs-AdmPwd, в UTC

Для успешного выполнения подкоманды должен быть доступен сервер с FSMO-ролью Schema Master.

Подкоманда должна выполняться от имени пользователя, включенного в группу Schema Admins.

В Эллес по умолчанию разрешено внесение изменений в схему данных каталога. При возникновении ошибки доступа к схеме проверьте значение параметра dsdb:schema update allowed в конфигурационном файле smb.conf. Если параметр имеет значение false в smb.conf, удалите его или измените значение на true.

Параметры

Доступны стандартные параметры samba-tool. Дополнительные параметры отсутствуют.

Примеры

Пример расширения схемы для поддержки 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