Серверы глобальных каталогов

OSzone.net » Microsoft » Windows Server 2008 » Обзор компонентов системы » Серверы глобальных каталогов
Автор: Дмитрий Буланов
Иcточник: dimanb.wordpress.com
Опубликована: 20.12.2010

Введение

Каждый системный администратор, который работает с доменными службами Active Directory, по крайней мере, один раз за время своей работы сталкивается с глобальными каталогами, но далеко не каждый системный администратор задумывается, что же такое глобальный каталог и для чего он предназначен. Глобальный каталог (Global Catalog или GC) представляет собой репозиторий распределенных данных, который хранит информацию о каждом объекте, а также облегчает поиск в лесу Active Directory. Глобальный каталог хранится на контроллерах домена, которые назначены в качестве серверов глобального каталога и распространяется посредством репликации с множеством равноправных участников. Первый контроллер домена, установленный в лесе, автоматически конфигурируется как сервер глобального каталога. Вы можете переносить возможности глобального каталога на другие контроллеры домена, а также изменять расположение глобального каталога, устанавливаемое по умолчанию, указывая другой контроллер. Глобальный каталог позволяет пользователям и приложениям находить объекты в любом домене текущего леса посредством поиска атрибутов, включенных в глобальный каталог, которые идентифицируются в схеме в качестве частного набора атрибутов (Partial Attribute Set, PAT). Допустим, у вас есть лес с тремя доменами, причем каждый домен содержит по два контроллера домена. Все шесть контроллеров домена поддерживают репликацию схемы и конфигурации леса. Соответственно, контроллеры в домене А содержат реплики контекста именования домена А, контроллеры в домене B – реплики именования домена B, а контроллеры домена C, соответственно, реплики домена C. Рассмотрим следующую ситуацию: пользователь домена C хочет найти пользователя домена А. В этом случае, когда пользователь в домене C выполняет поиск объекта домена А, результаты запроса предоставляет глобальный каталог. Но если объект содержит специфический атрибут, который по умолчанию не включен в глобальный каталог, то вы можете добавить такой атрибут при помощи оснастки «Схема Active Directory». Таким образом, если бы не было сервера глобального каталога, то контроллер домена, принимающий поисковые запросы объектов в других доменах, пересылал бы поисковые запросы на контроллер в домене с искомым объектом. В этой статье вы узнаете о самой концепции серверов глобального каталога, об их архитектуре, протоколах, процессах, физической структуре, а также о многих нюансах, связанных с данной технологией.

Взаимодействие глобального каталога с другими серверными технологиями

Серверы глобального каталога взаимодействуют со следующими технологиями:

Установка Active Directory. Глобальный каталог автоматически конфигурируется на первом контроллере домена, который устанавливается в лесу;

Репликация Active Directory. В репликации Active Directory каждая реплика на контроллере домена согласована с репликами этого раздела, управляемого другими контроллерами доменов. Глобальный каталог построен на репликации Active Directory. После того как вы создали лес, на контроллере домена, который используется в качестве сервера глобального каталога, автоматически реплицируется частный набор атрибутов на контроллеры домена всех доменов в лесу, отличных от локального. Для оптимизации репликации один из контроллеров домена обычно назначается в качестве сервера-плацдарма, который отвечает за всю входящую и исходящую репликацию раздела для сайта. Например, для обновлений глобального каталога, при репликации Active Directory выбираются серверы глобального каталога в качестве серверов-плацдармов и все изменения, внесенные в центре данных в глобальный каталог, будут реплицироваться на все контроллеры домена в данном сайте. Изменения будут поступать на сервер-плацдарм, а затем реплицироваться на серверы-плацдармы в филиалах, которые реплицируют изменения на контроллеры домена в своих сайтах.

Система доменных имен (DNS). Как и доменные службы Active Directory, серверы глобального каталога не могут функционировать без DNS. Как службы DNS предоставляют данные, необходимые компьютерам в сети для локализации контроллеров домена Active Directory, так и для предоставления IP-адресов серверов глобального каталога клиенты сервера глобального каталога также полностью зависят от DNS.

Служба «Сетевой вход в систему». При попытке пользователя выполнить вход в систему, клиентский компьютер отправляет вызов удаленной процедуры локальной службе «Сетевой вход в систему», инициируя сеанс входа. В вызове удаленной процедуры клиент пересылает данной службе такую информацию как имя компьютера, имя домена, а также имя сайта. Объявление глобального каталога DNS зависит от службы «Сетевой вход в систему». При завершении репликации глобального каталога или при запуске сервера глобального каталога, служба «Сетевой вход в систему» публикует записи расположения службы (SRV) в DNS, которая объявляет контроллер домена как сервер глобального каталога.

Взаимодействие серверов глобального каталога с серверными технологиями выглядит следующим образом:

*
Увеличить рисунок

Рис. 1. Пример взаимодействия серверов глобального каталога с доменными службами Active Directory

После создания нового контролера домена DC02, системный администратор определяет его как сервер глобального каталога и реплицирует частичный набор атрибутов из DC01. В домене А, DC01 реплицирует изменения для DC02 домена А, а DC02 – реплицирует обновления данных для DC01 домена В.

На шаге «А» клиентский компьютер КлиентХ отправляет запрос в глобальный каталог, который перенаправляет запрос DNS серверу для поиска ближайшего сервера глобального каталога «В», после чего клиент связывается с сервером глобального каталога для выполнения своего запроса «С».

Клиентский компьютер КлиентY выполняет вход в домен «1». Он запрашивает DNS-сервер на расположение ближайшего контроллера домена «2». После этого он связывается с ближайшим контроллером домена DC03 и пробует пройти проверку подлинности «3». DC03 запрашивает DNS-сервер на расположение ближайшего сервера глобального каталога «4». Затем данный контроллер домена связывается с сервером глобального каталога DC02 для извлечения членства пользователя в универсальных группах.

Развитие и сценарии использования серверов глобального каталога

Как уже было сказано ранее, одной из важнейших ролей серверов глобального каталога, является эффективное выполнение поиска объектов в доменах Active Directory. Причем, глобальным каталогом выступает контроллер домена, на котором хранится полная копия всех объектов в каталоге для собственного домена и частичная, предназначенная только для чтения копий всех объектов во всех других доменах леса. Всем известно, что для управления доменными службами и идентификацией в Active Directory используется специальное хранилище, расположенное в базе данных Ntds.dit, где содержатся разделы каталога, также называемые контекстами именования. Кроме таких контекстов именования, как «Конфигурация» и «Схема», в лесах с функциональным уровнем Windows Server 2000, Windows Server 2003, Windows Server 2008, а также Windows Server 2008 R2, контроллеры домена поддерживают полную реплику нескольких контекстов именования каталога одного домена. Конфигурация реплицируется на каждый контроллер домена в лесу, также как и схема. Причем, контекст именования для домена реплицируется на все контроллеры домена, но не реплицируется на контроллеры домена в других доменах. В свою очередь, при помощи глобального каталога пользователи могут выполнять поиск данных каталога во всех доменах леса независимо от места хранения данных. Контроллеры домена, которые выполняют роль глобального каталога, также называются серверами глобального каталога, которые, соответственно, отвечают на запросы глобального каталога. Для оптимизации эффективности, глобальные каталоги содержат лишь поднабор атрибутов, которые используются для поиска среди доменов. По этой причине, глобальный каталог также называют частичным набором атрибутов (Partial Attribute Set, PAS), которые определяются корпорацией Microsoft. Атрибуты, из которых состоит глобальный каталог, называются «частичными», так как они включают в себя ограниченный набор атрибутов, а именно атрибуты, которые востребованы схемой и атрибуты, которые чаще всего используются в пользовательских операциях поиска. Эти атрибуты отмечены для включения в частичный набор атрибутов как часть определения их схемы. Хранение самых атрибутов, поиск которых выполняется чаще всего, для всех доменных объектов в глобальном каталоге позволяет пользователям более эффективно использовать возможность поиска без снижения сетевой производительности вследствие отсутствия пересылок на контроллеры доменов и без необходимости хранения на сервере глобального каталога большого объема ненужных данных. Тем не менее, для оптимизации поиска вы можете использовать схему, в которой можно добавлять, изменять или удалять атрибуты, которые хранятся в глобальном каталоге. Стоит обратить внимание на то, что любое изменение частичного набора атрибута приводит к полной синхронизации глобального каталога.

Сервер глобального каталога обычно используется в ситуациях, которые расписаны в следующих подразделах.

Поиск объектов

Поскольку контроллер домена, работающий как сервер глобального каталога, содержит объекты всех доменов в лесу, глобальный каталог предоставляет пользователям и приложениям возможность выполнять поиск данных каталога во всех доменах леса независимо от места хранения данных. Если ваш лес состоит из одного домена, то все контроллеры домена имеют полный доступ для записи экземпляров каждого объекта в домене леса. Когда пользователь выполняет поиск какого-либо принципала безопасности, указав в меню «Пуск» в запросе параметр «Весь каталог», то поиск выполняется непосредственно в глобальном каталоге.

Для доступа к объектам Active Directory использует протокол облегченного доступа к каталогам (Lightweight Directory Access Protocol, LDAP). Запросы поиска LDAP могут быть отправлены и получены службой каталогов Active Directory по порту 389 (порт LDAP по умолчанию) и по порту 3268 (порт глобального каталога). Трафик LDAP, который использует протокол проверки подлинности Secure Sockets Layer (SSL) обеспечивает доступ к портам 686 и 3269. Соответственно, поведение поиска, которое применяется к портам 389 и 3268 также применяется к соответствующим запросам LDAP через порты 686 и 3269. Когда запрос поиска отправляется на порт 389, поиск осуществляется в разделе каталога одного домена. Если объект не находится в данном домене, разделе каталога схемы или конфигурации, контроллер домена пересылает запрос контроллеру домена в домене, который указан в различающемся имени объекта. Когда запрос поиска отправляется на порт 3268, то опрашиваются все разделы каталога в лесу, то есть поиск обрабатывается сервером глобального каталога. Стоит обратить внимание на то, что только серверы глобального каталога могут получать запросы LDAP через порт 3268.

После того как пользователь вводит свой запрос, данный запрос перенаправляется на порт 3268, и отправляется для разрешения на сервер глобального каталога. В свою очередь, если по каким-либо причинам в вашем домене Active Directory нет сервера глобального каталога, ваши пользователи или приложения не смогут выполнять поиск в лесу. Также стоит отметить, что все реплики, которые реплицируются в глобальный каталог, включают все права доступа для каждого объекта и атрибута. То есть, если вы ищете объект, доступ к которому для вас запрещен, вы его не увидите в списке результатов поиска. Соответственно, пользователи смогут найти только те объекты, для которых им предоставлен доступ;

Подтверждение ссылок на объекты в лесу.

Контроллеры домена используют глобальный каталог для подтверждения ссылок на объекты других доменов в лесу. То есть, если контроллер домена содержит объект с атрибутом, который содержит ссылку на объект в другом домене, то контроллер домена проверяет ссылку, устанавливая связь с сервером глобального каталога;

Проверка подлинности имени пользователя.

В дополнение к роли поставщика поиска в мультидоменном лесу, глобальный каталог играет роль источника идентификации во время входа пользователя в домен. Сервер глобального каталога разрешает имя пользователя в том случае, если контроллер домена, проверяющий подлинность, не имеет сведений об учетной записи этого пользователя. Другими словами, если учетная запись пользователя находится в одном домене, но сам пользователь входит в систему с компьютера, расположенного в другом домене, контроллер домена не может найти учетную запись пользователя и для того, чтобы завершить процесс входа в систему, он должен связаться с сервером глобального каталога. Во время проверки подлинности в мультидоменном лесах, глобальный каталог руководствуется одним из двух следующих требований:

Процесс взаимодействия входа пользователя и глобального каталога выглядит следующим образом:

*
Увеличить рисунок

Рис. 2. Процесс взаимодействия входа пользователя и глобального каталога

  1. Поскольку домен пользователя не обязательно совпадает с UPN-суффиксом, контроллер домена просматривает принципалы ближайшего домена в сайте, в котором расположен клиентский компьютер;
  2. Контроллер домена, с которым пробует связаться клиент, определяет, является ли DNS-имя в суффиксе имени участника-пользователя доменом, с уполномоченным контроллером домена. Если имя домена в UPN-суффиксе соответствует домену контроллера домена, который обрабатывает проверку подлинности клиента, но имя пользователя не найдено, то контроллер домена связывается с сервером глобального каталога. Также, если имя домена в UPN-суффиксе не соответствует домену контроллера домена, то контролер домена связывается с сервером глобального каталога;
  3. Используя атрибут объекта пользователя userPrincipalName, сервер глобального каталога ищет различающееся имя объекта пользователя и возвращает это значение контроллеру домена;
  4. Контроллер домена извлекает имя домена из различающегося имени и возвращает полученное значение клиенту;
  5. Клиент запрашивает контроллер домена для своего домена.

Сведения о членстве в универсальных группах в среде с несколькими доменами.

Как уже было сказано, во время входа пользователя в домен, пользователь должен пройти проверку подлинности. В процессе проверки, контроллер домена проверяет подлинность пользователя, после чего пользователь получает данные авторизации для доступа к ресурсам. Для предоставления данных для авторизации пользователя, контроллер домена извлекает идентификаторы безопасности (SID) для всех групп безопасности, членом которых является пользователь и добавляет эти идентификаторы SID в маркер доступа пользователя. В свою очередь, контроллер домена всегда может определить членство в локальной группе или глобальной группе домена для любого пользователя из этого же домена, но членства в этих группах не реплицируются в глобальный каталог, так как членами данных групп не могут быть пользователи из разных доменов. Но в универсальных группах могут быть члены из других доменов. Не стоит забывать, несмотря на тот факт, что локальные доменные группы также могут содержать членов из других доменов, они могут быть добавлены для управления только в том домене, где были созданы. А глобальные группы, несмотря на то, что могут быть добавлены для управления доступом в любом домене, могут содержать только учетные записи своего домена.

Универсальная группа также является группой безопасности, которая позволяет управлять ресурсами, которые распределены в нескольких доменах. Во время выполнения интерактивного входа, контроллер домена извлекает идентификаторы SID пользовательского компьютера. По этой причине атрибут универсальных групп member, который содержит список членов в группе, реплицируется в глобальный каталог. Например, пользователь в лесу с несколькими доменами подключается к домену, в котором разрешены универсальные группы. В этом случае контроллер домена, для получения членства в универсальных группах, должен связаться с сервером глобального каталога. Если пользователь ни разу не подключался к домену и сервер глобального каталога недоступен, то он может войти только локально в систему. Но если сервер глобального каталога недоступен при входе пользователя в домен, в котором доступны универсальные группы и пользователь уже подключался к данному домену, то клиентский компьютер пользователя может использовать для входа кэшированные учетные данные.

Кэширование членства в универсальных группах.

В универсальные группы включаются пользователи и группы, которые расположены в нескольких доменах в лесу. Членство в универсальных группах реплицируется в глобальном каталоге. Универсальная группа применяется для того, чтобы запретить пользователю доступ к ресурсам, а если глобальный каталог будет недоступен, то операционная система не позволит пользователю пройти проверку подлинности в домене. В небольших филиалах доступная пропускная способность сети и ограничения оборудования сервера приводят к нецелесообразности использования глобального каталога. Разумеется, пользователь сможет использовать кэшированные учетные данные, но он не сможет получить доступ к необходимым ресурсам. Для снижения необходимости подключения к серверу глобального каталога, находящегося в другом сайте, на контроллерах домена, работающих под управлением Windows Server 2003, Windows Server 2008 или Windows Server 2008 R2, в сайте, который не содержит сервер глобального каталога, можно использовать кэширование членства в универсальных группах. Эта функциональная возможности появилась в Windows Server 2003 и она исключает для контроллера домена в мультидоменном лесу необходимость связаться с сервером глобального каталога во время входа пользователей в домены, где доступны универсальные группы, тем самым снижая трафик по глобальной сети. Если функция кэширования членства в универсальных группах включена, то при первой попытке пользователя подключения к домену, в котором доступны универсальные группы, сведения сохраняются локально. Контроллер домена получает сведения об участии пользователя в универсальных группах из глобального каталога и после этого данные сведения неограниченно кэшируются на контроллере домена данного сайта и периодически обновляются. При последующей попытке входа пользователя в данный домен, контроллер домена, для обработки входа пользователей, вместо подключения к серверу глобального каталога использует членства в кэше.

Поэтому, на контроллерах домена с ненадежной связью с сервером глобального каталога рекомендуется включать и настраивать кэширование членства в универсальных группах. Одновременно, сведения об участии пользователей в универсальных группах, могут обновляться до 500 членств каждые 8 часов. После первого входа в систему, кэш пользователя периодически обновляется в течение 180 дней.

По умолчанию, атрибуты для объектов пользователей и компьютеров не заполняются. На следующей иллюстрации вы увидите пример построения списков идентификаторов безопасности контроллером домена для кэширования:

*
Увеличить рисунок

Рис. 3. Пример построения списков идентификаторов безопасности контроллером домена для кэширования

  1. Пользователь входит на сайт с включенной функцией кэширования членства в универсальных группах. Данный пользователь аутентифицируется контроллером домена как запрашиваемый пользователь;
  2. Контроллер домена проверяет значения трех атрибутов кэширования объекта пользователя;
  3. После того как контроллер домена обнаружил, что атрибуты не заполнены, он проверяет локальный каталог и извлекает SID пользователя и идентификаторы безопасности всех глобальных групп, к которым он принадлежит;
  4. Контроллер домена отправляет этот список идентификаторов безопасности серверу глобального каталога. Сервер глобального каталога проверяет членство в универсальных группах пользователя и все глобальные группы в списке. После этого сервер глобального каталога возвращает список комбинированных идентификаторов безопасности универсальных и глобальных групп контроллеру домена;
  5. Пользовательские атрибуты заполняются следующим образом:
  6. Контроллер домена проверяет свой локальный каталог на наличие любых локальных доменных групп, к которым принадлежит пользователь и добавляет SID локальной доменной группы в свой список идентификаторов безопасности глобальной группы и универсальной группы;
  7. Контроллер домена отправляет весь список идентификаторов безопасности клиентскому компьютеру, где LSA извлекает идентификаторы безопасности встроенных групп пользователя и создает маркер доступа пользователя.

Поиск адресной книги Exchange.

Службы каталогов службы Exchange для почтовых серверов Microsoft Exchange Server тесно интегрированы с доменными службами Active Directory. Когда пользователи в своем почтовом клиенте хотят найти человека в пределах своей организации, чаще всего они выполняют поиск через глобальную адресную книгу (GAL), которая включает совокупность всех получателей почты в организации, включая пользователей электронной почты, контакты и группы. Такими получателями могут быть обычные пользователи, контакты, списки рассылки, группы безопасности и папки. GAL автоматически заполняется специально отведенной для этого службой на почтовом сервере, и пользователи могут создавать списки настраиваемых адресов. Для поиска серверов глобального каталога, почтовые сервера Exchange используют Active Directory и DNS. Когда пользователь пробует открыть в Microsoft Outlook адресную книгу, или когда пользователь пишет сообщение и вводит имя или адрес в поле «TO», клиент Outlook использует сервер глобального каталога, указанный сервером Exchange.

Архитектура глобального каталога

Архитектура сервера глобального каталога отличается от архитектуры сервера, у которого нет роли глобального каталога использованием нестандартного порта LDAP 3268, который направляет запросы непосредственно в глобальный каталог. Запросы, которые идут на порт 3268, формируются также как и любые LDAP-запросы, но доменные службы Active Directory изменяют поведение поиска в зависимости от используемого порта. То есть, запросы на порт 3268 направляются на разделы каталога глобального каталога, включая разделы каталога только для чтения, для которых данный сервер является уполномоченным. Запросы на порт 389 направляются на домен с возможностью записи, а так же на разделы каталога конфигурации, приложения и схемы реплик, которые расположены на сервере глобального каталога в качестве контроллера домена. Кроме того, во время связи с серверами глобального каталога для получения членства в универсальных группах при входе пользователя в систему, контроллеры домена используют проприетарный интерфейс репликации.

Поиск клиентов включает адресную книгу клиентов Microsoft Exchange Server, которые для поиска адресов электронной почты в глобальном каталоге используют поставщик клиента MAPI Emsabp32.dll. На стороне клиента поставщик MAPI связывается с сервером через проприетарный RPC интерфейс Name Service Provider Interface (NSPI). Пользователи с операционными системами предшествующими Windows 2000 для взаимодействия с диспетчером учетных записей безопасности (Security Accounts Manager, SAM) на эмуляторе основного контроллера домена (PDC) используют сетевой API.

Соответственно, к основным компонентам глобального каталога можно отнести:

На следующей иллюстрации изображена архитектура глобального каталога:

*
Увеличить рисунок

Рис. 4. Архитектура глобального каталога

Протоколы глобального каталога

Протоколы и интерфейсы на всех контроллерах домена одинаковые и для серверов глобального каталога нет специфических протоколов. В данном случае нас интересуют четыре интерфейса и три протокола. Значимость глобального каталога заключается в том, что контроллеры домена используют собственные протоколы репликации RPC не только для репликации, а еще и для связи с сервером глобального каталога при извлечении сведения о членстве в универсальных группах и при обновлении кэша членства в группе, когда включена функция «Кэширование членства в универсальных группах». Для всех требований глобального каталога используются следующие протоколы:

На следующей иллюстрации изображены протоколы глобального каталога:

*
Увеличить рисунок

Рис. 5. Интерфейсы и протоколы глобального каталога

Физическая структура глобального каталога

Как роль контроллера домена, глобальный каталог хранит один доступный для записи раздел каталога домена, в котором расположены объекты со всеми атрибутами. Также сервер глобального каталога хранит частичный набор атрибутов (PAS) с правом на чтение всех объектов остальных доменов в мультидоменном лесу. Объектами схемы, определяющими атрибуты, являются объекты attributeSchema, которые включают атрибут isMemberOfPartialAttributeSet. Если значение этого атрибута указано TRUE, то атрибут реплицируется в глобальный каталог. Топология репликации глобального каталога формируется автоматически при помощи проверки согласованности знаний (Knowledge Consistency Checker, KCC) – встроенный процесс, который реализует топологию репликации, гарантирующую доставку содержимого каждого раздела каталога на каждый сервер глобального каталога.

Атрибуты, которые реплицируются в глобальный каталог по умолчанию, включаются в базовый набор, определенный корпорацией Майкрософт как атрибуты, которые чаще всего используются при поиске. При необходимости, для того чтобы указать дополнительные атрибуты, вы можете воспользоваться оснасткой консоли управления (MMC) «Схема Active Directory». Чтобы назначить объект attributeSchema членом PAS, в данной оснастке вам нужно установить флажок «Реплицировать этот атрибут в глобальный каталог», который задает атрибуту isMemberOfPartialAttributeSet значение true

Физическое представление данных глобального каталога ничем не отличается от контроллера домена, то есть, в глобальном каталоге база данных NTDS.dit хранит атрибуты объекта в одном файле. А на контроллере домена, который не является сервером глобального каталога, файл Ntds.dit содержит полную записываемую реплику каждого объекта в разделе каталога одного домена для своего домена, а также доступные для записи разделы каталога конфигурации и схемы.

Например, рассмотрим достаточно типичный сценарий. На сервере глобального каталога расположена полная реплика своего домена, а также частичная реплика только для чтения всех остальных доменов леса. На данном сервере глобального каталога все разделы каталога на сервере глобального каталога хранятся в файле базы данных каталога (Ntds.dit). Соответственно, в данном случае нет раздельного хранилища атрибутов глобального каталога.

К компонентам физической структуры глобального каталога можно отнести:

На следующей иллюстрации изображена физическая структура глобального каталога:

*
Увеличить рисунок

Рис. 6. Физическая структура глобального каталога

Заключение

В этой статье вы познакомились с серверами глобального каталога. Было рассказано о самой концепции серверов глобального каталога, а также о взаимодействии серверов глобального каталога с другими серверными технологиями корпорации Microsoft. Рассмотрены ситуации, в которых используются сервера глобальных каталогов, а именно: поиск объектов, подтверждение ссылок на объекты в лесу, проверка подлинности, сведения о членстве в универсальных группах в среде с несколькими доменами, кэширование членства в универсальных группах, а также поиск адресной книги Microsoft Exchange. Помимо этого, вкратце была рассмотрена архитектура, физическая структура, а также протоколы серверов глобального каталога.


Ссылка: http://www.oszone.net/14218/global-catalog