← Документация Hope·HopeDChopedc.ru
HopeDC · Документация

Схема каталога LDAP

Что такое схема LDAP, какие схемы бывают в экосистеме каталогов и какую использует HopeDC при создании домена
Документ 18 · Версия 1.0 · 11.11.2026
Соответствует HopeDC v204 · аудитория: администраторы и архитекторы каталогов

Содержание

  1. 1. Что такое схема LDAP
  2. 2. Какие схемы бывают
  3. 3. Схема, которую использует HopeDC
  4. 4. Как и когда схема создаётся
  5. 5. POSIX-атрибуты и вход Linux
  6. 6. Расширение схемы
  7. 7. Почему именно AD-схема
  8. 8. Короткий ответ

1. Что такое схема LDAP

Схема каталога — это набор правил о том, какие объекты и какие атрибуты в нём допустимы. Она состоит из двух базовых словарей:

Каждый элемент схемы имеет глобально уникальный OID и публикуется самим сервером, чтобы клиенты (ADSI, SSSD, ldapsearch) знали, что он поддерживает. В RFC-мире определения отдаются через subschemaSubentry (атрибуты attributeTypes / objectClasses); в Active Directory та же информация лежит в отдельном разделе CN=Schema,CN=Configuration как объекты attributeSchema и classSchema, а их сводка — в CN=Aggregate.

2. Какие схемы бывают

Исторически сложились несколько семейств схем. Они совместимы по базовым атрибутам, но различаются набором классов и тем, как хранят POSIX-данные, SID, Kerberos и т. д.

СемействоЧто определяетГде применяется
core (RFC 4512/4519)Базовые классы и атрибуты X.500: top, person, organizationalPerson, organizationalUnit, cn, sn, ou, dc. Фундамент любого LDAP-сервера (OpenLDAP, 389-DS, ApacheDS).
cosine (RFC 4524)Атрибуты сетевых объектов и почты: mail, associatedDomain, host. OpenLDAP и производные.
inetOrgPerson (RFC 2798)Класс inetOrgPerson: фото, телефоны, отдел, uid, employeeNumber — «карточка сотрудника». Самый ходовой класс пользователя в OpenLDAP/389-DS.
nis / RFC 2307 и 2307bisPOSIX-вход в Unix: posixAccount, posixGroup, uidNumber, gidNumber, homeDirectory, loginShell. Классический вход Linux/Unix через LDAP.
Прикладные (ppolicy, samba3, dyngroup…)Политики паролей, атрибуты Samba (sambaNTPassword), динамические группы. Подключаются к OpenLDAP по мере надобности.
389-DS / FreeIPA / RHDScore + RFC 2307bis + расширения IPA: ipaNTHash, krbPrincipalName, HBAC, sudo, host-группы. Red Hat IdM (FreeIPA), 389 Directory Server.
Active DirectoryКлассы user, group, computer, атрибуты sAMAccountName, userPrincipalName, objectSid, objectGUID, unicodePwd, разделы Configuration и Schema. Включает и RFC 2307-атрибуты (через «Services for Unix», msSFU30…). Microsoft AD, Samba AD DC и HopeDC.

Ключевое отличие на практике: в OpenLDAP/389-DS пользователь — это обычно inetOrgPerson + posixAccount, а идентификатор для Unix берётся из uidNumber. В AD пользователь — это user, идентичность задаётся objectSid, а POSIX-идентификаторы — опциональная добавка.

3. Схема, которую использует HopeDC

HopeDC поднимает схему Active Directory — ту же, что у Windows Server 2016+ (objectVersion 88). Это сделано намеренно: HopeDC эмулирует контроллер домена AD, поэтому и словарь объектов у него ровно как у AD.

Шаблон схемы — выгрузка схемы настоящего AD, встроенная прямо в бинарник (schema_base.txt). Определения подсхемы (attributeTypes / objectClasses / ditContentRules / extendedAttributeInfo / extendedClassInfo) не хранятся готовыми, а строятся из объектов attributeSchema/classSchema по тем же правилам, что у NTDS. Генератор сверен с CN=Aggregate живого контроллера AD: все 3803 значения совпадают байт в байт.

Итог совместимости. Для Windows, RSAT, ADSI, групповых политик и для SSSD в режиме провайдера ad каталог HopeDC выглядит как обычный AD — отдельная схема или её конвертация не нужны.

4. Как и когда схема создаётся

5. POSIX-атрибуты и вход Linux

AD-схема HopeDC включает атрибуты RFC 2307 (uidNumber, gidNumber, homeDirectory, loginShell, класс posixAccount) — они входят в раздел «Services for Unix» (msSFU30…) стандартной схемы AD. Поэтому вход Linux работает двумя способами:

При импорте из FreeIPA/389-DS (где пользователь — posixAccount/ inetOrgPerson) HopeDC сопоставляет объекты с AD-классами и переносит POSIX- и Kerberos-данные в свою схему.

6. Расширение схемы

Схему можно расширять как в настоящем AD: добавление нового объекта attributeSchema или classSchema в раздел схемы сразу отражается в CN=Aggregate, и клиенты (ADSI SchCache) перечитывают её по изменённой метке времени. Это позволяет приложениям, рассчитанным на расширение AD-схемы (например, установка собственных атрибутов), работать штатно.

Осторожно со схемой. Как и в AD, расширение схемы необратимо (объекты схемы не удаляются, только деактивируются). Меняйте схему обдуманно и сначала на тестовом стенде.

7. Почему именно AD-схема

Схемы OpenLDAP (inetOrgPerson + RFC 2307) выбрали бы, если бы продукт был «обычным» LDAP-каталогом для Unix-парка. HopeDC же заменяет контроллер домена AD, поэтому совместимость с AD-схемой — обязательное требование, а не одна из опций.

8. Короткий ответ

При создании домена HopeDC поднимает схему Active Directory (Windows Server 2016+, objectVersion 88): ~1500 типов атрибутов, ~270 классов и сводку CN=Aggregate в разделе CN=Schema,CN=Configuration, побайтно совпадающую с настоящим AD. Классические схемы LDAP — это core (RFC 4519), cosine, inetOrgPerson (RFC 2798), nis/RFC 2307 для POSIX и расширения 389-DS/FreeIPA; их HopeDC не использует как основу, но POSIX-атрибуты RFC 2307 в AD-схему входят, поэтому вход Linux поддержан и по SID, и по uidNumber.