Служба каталогов
Общие сведения
Служба каталогов хранит информацию о сетевых ресурсах организации, предоставляя администраторам и авторизованным пользователям инструменты для удобного и быстрого поиска ресурсов, управления ими и получения доступа к ним. Информация находится в едином распределенном хранилище в виде иерархически организованного каталога.
Сетевые ресурсы представлены в каталоге объектами. Примеры объектов — учетные записи пользователей и компьютеров, группы, подразделения, сайты, зоны и записи DNS.
Классы объектов каталога и их атрибуты описываются в схеме каталога.
Для удобства администрирования объекты каталога объединяются в логические контейнеры:
-
домен — логическое объединение пользователей, компьютеров, групп и других объектов, использующих общую копию базы данных каталога;
-
дерево доменов — иерархическая структура из одного или нескольких доменов, связанных общим корневым доменом, образующих единое пространство имен DNS и использующих общую схему и конфигурацию каталога;
-
лес доменов — одно или несколько деревьев доменов, которые используют общую схему каталога, конфигурацию и глобальный каталог.
Для обеспечения безопасного доступа к ресурсам с помощью механизмов аутентификации и авторизации между доменами и лесами доменов устанавливаются доверительные отношения.
Управление доменом осуществляется одним или несколькими контроллерами домена. Каждый контроллер домена хранит копию каталога того домена, в котором он находится.
Изменения, вносимые в каталог на одном контроллере домена, реплицируются на другие контроллеры в рамках домена, дерева домена и леса. Состав реплицируемых изменений зависит от раздела каталога, к которому они относятся, и от роли контроллера домена.
Каталог состоит из следующих разделов (контекстов именования):
-
раздел конфигурации — объекты конфигурации леса (сайты, разделы каталога, сервисы, расширенные полномочия и т. д.);
-
раздел схемы — определения классов и атрибутов для всех объектов службы каталогов;
-
доменный раздел — данные обслуживаемых доменом пользователей, компьютеров, подразделений, групп и других объектов;
-
доменный раздел (глобальный каталог) — частичный набор атрибутов из разделов каталога, относящихся к разным доменам;
-
раздел приложений — данные приложений и служб, включая два логических подраздела для интеграции со службой DNS:
-
данные зон DNS уровня леса;
-
данные зон DNS уровня домена.
-
Для обеспечения эффективной маршрутизации трафика при обработке запросов аутентификации и репликации с учетом особенностей физической топологии сети контроллеры домена и компьютеры в рамках службы каталогов объединяются в сайты.
Сайт объединяет в себе ресурсы службы каталогов, располагающиеся в одной или нескольких подсетях. Подсеть — это сегмент сети TCP/IP с закрепленным диапазонов IP-адресов, который используется для группировки компьютеров по признаку их физической близости друг к другу.
Для обеспечения безопасности служба каталогов предоставляет инструменты для аутентификации при входе в сеть и авторизации при получении доступа к ресурсам.
Благодаря возможности реализации сценариев единого входа (Single Sign-On, SSO) служба каталогов позволяет администраторам управлять объектами каталога и ресурсами организации, а авторизованным пользователям — получать доступ к ресурсам в рамках всей сети без повторной аутентификации (ввода пароля).
| Для реализации сценариев единого входа может потребоваться дополнительное программное обеспечение (например, Keycloak). |
Схема
Каждый объект в службе каталогов является экземпляром класса, для которого задается определение в единой схеме. Класс объединяет в себе объекты с общими свойствами (например, пользователи, принтеры, приложения). Определение каждого класса содержит список атрибутов, которые могут использоваться для описания экземпляров данного класса. Атрибуты класса делятся на обязательные и дополнительные. Поскольку каталог имеет иерархическую структуру, определение каждого класса также содержит список классов, описывающих объекты, которые являются родительскими по отношению к объектам данного класса.
Схема содержит определение для каждого атрибута, состоящее из уникальных идентификаторов атрибута, синтаксиса для его описания (типы данных для значений атрибута), допустимых диапазонов изменения значений атрибута, признака возможности задания только одного значения или нескольких значений для атрибута, а также правил поиска и индексирования атрибута. Для каждого атрибута в схеме существует строго одно определение, на которое ссылаются определения классов объектов.
Вносимые в схему изменения носят глобальный характер. Схема является единой для всего леса. С помощью механизмов репликации обеспечивается наличие копии схемы на каждом контроллере домена в лесу. Любое расширение схемы распространяется на весь лес.
Вносимые в схему дополнения являются необратимыми. Добавленный в схему новый класс или атрибут не может быть из нее удален. Существующий атрибут или класс может быть переведен в неактивное состояние, но удалить его невозможно.
Перевод класса или атрибута в неактивное состояние не влияет на существующие экземпляры данного класса или атрибута, но при этом делает невозможным создание новых экземпляров. Атрибут не может быть переведен в неактивное состояние, если он используется хотя бы в одном активном классе.
Глобальный каталог
Глобальный каталог позволяет пользователям и приложениям находить объекты в службе каталогов по одному или нескольким атрибутам.
Он содержит частичную копию всех разделов каталога, включая раздел схемы и раздел конфигурации. Таким образом, глобальный каталог располагает копией каждого объекта каталога, но с ограниченным набором атрибутом. В этот набор включаются атрибуты, которые чаще всего используются при поиске и необходимы для точного определения текущего расположения полной копии объекта. Благодаря этому пользователи могут быстро находить необходимые объекты, не зная, в каком именно домене они находятся.
Глобальный каталог формируется автоматически системой репликации. Он реплицируется на контроллеры домена с ролью сервера глобального каталога.
Поиск
Поиск объектов является ключевой функцией службы каталогов. Он позволяет находить объекты в каталоге по заданному набору критериев и получать информацию об определенных свойствах найденных объектов.
В общем случае процесс поиска состоит из следующих этапов:
-
Определение контроллера домена, который обслуживает искомый объект.
-
Выбор контейнера (контекста именования), с которого необходимо начинать поиск.
-
Формирование и отправка поискового запроса.
-
Обработка результатов выполнения запроса.
Все поисковые запросы выполняются в одном из следующих контейнеров (контекстов именования):
-
домен;
Домены содержат наиболее часто используемые объекты, включая пользователей, контакты, группы, подразделения, компьютеры и т. п. Большинство поисковых запросов выполняется на уровне домена.
-
схема;
Схема содержит определения всех классов и атрибутов, существующих в службе каталогов. Раздел схемы доступен на всех контроллерах домена.
-
конфигурация;
Конфигурация содержит информацию о сайтах и сервисах во всем лесу. Раздел конфигурации доступен на всех контроллерах домена.
-
глобальный каталог.
Глобальный каталог содержит ограниченный набор атрибутов для каждого объекта в службе каталогов. Поэтому поиск в глобальном каталоге возможен только по тем атрибутам, которые в него реплицируются. Глобальный каталог доступен на контроллерах домена с ролью сервера глобального каталога. Поиск по нему позволяет находить информацию на уровне всего леса без обращения к другим серверам.
Для сужения диапазона поиска доступны следующие опции:
-
ограничение области поиска указанным базовым объектом без учета подчиненных объектов;
Данный вид поиска может использоваться, например, для установления факта существования объекта.
-
поиск объектов, непосредственно подчиненных указанному базовому объекту; при этом сам базовый объект из результатов поиска исключается;
С помощью этого вида поиска можно получить список всех дочерних объектов указанного базового объекта.
-
поиск по поддереву каталога, включая базовый объект и все его дочерние объекты независимо от глубины их расположения.
Служба каталогов предоставляет следующие возможности для поиска:
-
глобальный поиск по всему дереву каталогов или отдельному разделу в веб-интерфейсе приложения «Менеджер службы каталогов»;
-
поиск с помощью инструментов командной строки (утилита
samba-tool); -
поиск с помощью LDAP-запросов (могут использоваться различные сторонние инструменты).
Доверительные отношения
Доверительное отношение — логическая связь между двумя доменами, в рамках которой пользователи и другие объекты в одном домене могут получать доступ к ресурсам в другом домене.
Сторонами доверительного отношения являются:
-
доверяющий домен — предоставляет доступ к своим ресурсам пользователям из другого домена, доверяя ему процесс аутентификации;
-
доверенный домен — выполняет аутентификацию своих пользователей при запросе ими доступа к ресурсам в другом домене.
Направление доверительного отношения определяет направление потока аутентификации между двумя доменами:
-
одностороннее доверительное отношение:
-
входящее — только один из двух связанных доверительным отношением доменов может выполнять аутентификацию пользователей из другого домена;
-
исходящее — только один из двух связанных доверительным отношением доменов может выполнять аутентификацию пользователей своего домена в другом домене;
-
-
двустороннее доверительное отношение — оба связанных доверительным отношением домена могут выполнять аутентификацию пользователя из другого домена.
Транзитивность доверительного отношения определяет, распространяется ли доверие между двумя доменами на другие домены, связанные с ними.
Служба каталогов поддерживает построение односторонних и двухсторонних доверительных отношений с другими доменами и лесами под управлением Samba и Microsoft AD DS.
В рамках создания доверительных отношений с Microsoft AD DS поддерживаются:
-
внешние доверительные отношения в две стороны;
-
доверительные отношения леса между корневыми доменами в две стороны.
Для реализации сложной структуры доменов поддерживаются транзитивные доверительные отношения при использовании аутентификации и авторизации на базе Kerberos и NTLMSSP.
В рамках доверительных отношений поддерживаются:
-
добавление пользователей из доверенных доменов в группы доступа локального домена;
-
аутентификация и авторизация пользователей доверенных доменов;
-
применение специальных правил фильтрации идентификаторов безопасности (SID Filtering).
Репликация
Для поддержания данных в актуальном и непротиворечивом состоянии на всех контроллерах домена служба каталогов использует механизм репликации: когда какой-либо объект создается, изменяется или удаляется в службе каталогов, данные о нем реплицируются с одних контроллеров домена на другие таким образом, чтобы на всех контроллерах они были одинаковыми.
Примерами реплицируемых данных могут служить изменения в данных пользователей, групп, групповых политик, схемы каталога, записей DNS, а также информация о добавлении и удалении контроллеров домена, компьютеров и устройств в домене, перемещении объектов по иерархии каталогов, изменении паролей и т. д.
Передача данных между участвующими в репликации контроллерами домена выполняется в соответствии со следующими базовыми принципами:
-
равноправие участников репликации (multimaster-репликация);
Все контроллеры домена принимают LDAP-запросы на внесение изменений в атрибуты объектов службы каталогов, которые относятся к их зоне ответственности, с учетом действующих ограничений безопасности. Каждое исходящее изменение реплицируется на один и более контроллеров домена, которые фиксируют его как полученное в результате репликации.
-
репликация по запросу (pull-репликация);
При возникновении изменений в данных контроллер домена уведомляет о них своих партнеров по репликации. В ответ партнеры запрашивают у него изменения.
-
репликация в режиме «сохрани и передай»;
Контроллеры домена сохраняют изменения, запрошенные ими у партнеров по репликации, и передают эти изменения другим контроллерам домена. Таким образом, контроллеру домена, являющемуся источником изменений, не требуется самостоятельно уведомлять о них все остальные контроллеры домена, которым они должны быть переданы.
-
репликация с учетом текущего состояния.
При репликации учитывается разница между текущим состоянием (то есть текущими значениями всех атрибутов) реплики раздела каталога на исходном и целевом контроллерах домена. Состояние описывается метаданными, которые используются при разрешении конфликтов и позволяют избежать необходимости передавать полную реплику в каждом цикле репликации.
Репликация между контроллерами домена внутри сайта и между сайтами происходит как с использованием механизма нотификации об изменениях, так и по расписанию.
Поддерживаются механизмы разрешения следующих типов конфликтов в процессе репликации:
-
внесение изменений в свойства одного объекта на разных контроллерах домена с небольшой разницей во времени;
-
создание объектов с одинаковыми именами на разных контроллерах домена с небольшой разницей во времени;
-
одновременное выполнение операций создания объекта в контейнере и удаления данного контейнера.
Обеспечивается репликация базы данных каталога и SYSVOL в смешанной среде (Samba и Microsoft AD DS).
DFSN
Технология Distributed File System Namespaces (DFSN) обеспечивает создание виртуальных пространств имен для доступа к общим папкам в рамках сетевой инфраструктуры организации. Она позволяет объединить ресурсы, расположенные на разных файловых серверах, в единую логическую иерархию таким образом, чтобы пользовали и приложения могли получать к ним доступ по стандартным UNC-путям. При этом физическое расположение файлов скрывается, а структура доступа к ним задается администраторами с использованием инструментов управления.
Пространства имен могут быть двух типов:
-
автономное пространство имен:
-
метаданные, описывающие структуру ресурсов общего доступа, хранятся на одном сервере;
-
ресурсы доступны по UNC-пути вида \\<FQDN сервера DFSN>\<пространство имен>\<имя папки>;
-
-
доменное пространство имен:
-
метаданные, описывающие структуру ресурсов общего доступа, хранятся в службе каталогов;
-
ресурсы доступны по UNC-пути вида \\<FQDN ресурсного домена>\<пространство имен>\<имя папки>.
-
Внутри пространства имен создаются папки, каждая из которых ссылается на одну или несколько целевых папок. Эти папки представляют собой обычные общие ресурсы на файловых серверах. Когда пользователь переходит по ссылке на клиенте, обслуживающий пространство сервер формирует список возможных целевых папок, из которых выбирается наиболее подходящая с учетом доступности, принадлежности к сайту в структуре службы каталогов и приоритета (если выполнены соответствующие настройки).
Данный механизм перенаправления обеспечивает прозрачность доступа и отказоустойчивость: если один из серверов становится недоступным, клиент может использовать другую целевую папку, не меняя путь к ресурсу.
Для оптимизации работы клиент кэширует полученные перенаправления на ограниченное время, после чего выполняет новый запрос.
Режимы работы и роли контроллеров домена
Сервер может вводиться в домен в качестве контроллера домена в одном из двух режимов:
-
RWDC (Read-Write Domain Controller) — стандартный режим работы, в котором контроллер домена содержит копию базы данных службы каталогов и может обрабатывать изменения по большинству операций чтения и записи с репликацией на другие контроллеры в домене;
-
RODC (Read-Only Domain Controller) — контроллер домена со следующими ограничениями и особенностями:
-
копия базы данных службы каталогов доступна только для чтения;
-
не реплицирует данные на другие контроллеры домена (используется односторонняя репликация);
-
хранит полную копию базы данных службы каталогов, за исключением хешей паролей объектов и других атрибутов, содержащих «чувствительную» информацию;
-
перенаправляет запросы на аутентификацию от пользователей на ближайший контроллер RWDC;
-
может кешировать учетные данные некоторых пользователей для ускорения процесса аутентификации и обеспечения возможности авторизации при отсутствии связи с обычными контроллерами;
-
служба DNS работает только на чтение.
-
Контроллеру домена может быть выдана роль сервера глобального каталога. В этом случае он также хранит частичную доступную для чтения копию всех объектов в многодоменном лесу. Наличие серверов глобального каталога сокращает время поиска объектов, обслуживаемых контроллерами в других доменах леса.
Для исключения возможности возникновения конфликтов для некоторых групп объектов каталога операции по изменению данных сначала выполняются на одном специально выделенном для этого контроллере домена, а затем реплицируются на все остальные контроллеры в пределах домена или леса.
Для управления такими операциями используется механизм ролей FSMO (Flexible Single Master Operation), обеспечивающих уникальность исполнителя.
Роль FSMO — набор объектов, которые в каждый конкретный момент времени могут изменяться только в рамках одной копии раздела каталога. Контроллер домена, на котором находится такая копия, является владельцем данной роли FSMO.
В службе каталогов используются следующие роли FSMO:
-
роли уровня леса:
-
владелец схемы (Schema Master) — один на лес;
Обрабатывает изменения, вносимые в схему каталога на уровне леса.
-
владелец доменных имен (Domain Naming Master) — один на лес;
Обрабатывает изменения, вносимые в пространство доменных имен на уровне леса каталога, включая добавление в лес и удаление из него доменов, установление доверия с внешними каталогами, добавление в каталог и удаление из него разделов приложений.
-
-
роли уровня домена:
-
эмулятор первичного (основного) контроллера домена (PDC Emulator) — один на домен;
Выполняет функции сервера точного времени; в процессе репликации в приоритетном порядке получает данные об операциях по смене пароля, выполняемых на других контроллерах в домене; обрабатывает блокировки учетных записей; вносит изменения в групповые политики в домене.
-
владелец относительных идентификаторов (RID Master) — один на домен;
Выделяет пулы относительных идентификаторов (RID) в ответ на запросы контроллеров домена; обеспечивает перемещение объектов в домен и из него.
-
владелец инфраструктуры (Infrastructure Master) — один на домен.
Обрабатывает изменения, вносимые в идентификаторы безопасности (SID) объектов и DN-имена в междоменных ссылках на объекты (например, когда пользователь из одного домена добавляется в группу безопасности в другом домене).
-
Дополнительно создается роль владельца инфраструктуры для каждого раздела приложений, а также следующие роли для работы с зонами DNS:
-
владелец зон DNS леса (Forest DNS Zone Master) — один на лес;
Координирует выполнение операций по добавлению и удалению записей уровня леса на DNS-серверах, обеспечивающих работу зоны DNS верхнего уровня.
-
владелец зон DNS домена (Domain DNS Zone Master) — один на домен.
Координирует выполнение операций по добавлению и удалению зон DNS на контроллерах домена, выполняющих функции DNS-серверов на уровне домена.