Кожен системний адміністратор, який працює з доменними службами Active Directory, по крайней мере, один раз за час своєї роботи стикається з глобальними каталогами, але далеко не кожен системний адміністратор замислюється, що ж таке глобальний каталог і для чого він призначений. Глобальний каталог (Global Catalog або GC) являє собою репозиторій розподілених даних, який зберігає інформацію про кожен об'єкт, а також полегшує пошук в лісі Active Directory. Глобальний каталог зберігається на контролерах домену, які призначені в якості серверів глобального каталогу і розповсюджується за допомогою реплікації з безліччю рівноправних учасників. Перший контролер домену, встановлений в ліс, автоматично конфігурується як сервер глобального каталогу. Ви можете переносити можливості глобального каталогу на інші контролери домену, а також змінювати розташування глобального каталогу, яке встановлюється за умовчанням, вказуючи інший контролер. Глобальний каталог дозволяє користувачам і додаткам знаходити об'єкти в будь-якому домені поточного лісу за допомогою пошуку атрибутів, включених в глобальний каталог, які ідентифікуються в схемі в якості приватного набору атрибутів (Partial Attribute Set, PAT). Припустимо, у вас є ліс з трьома доменами, причому кожен домен містить по два контролера домену. Всі шість контролерів домену підтримують реплікацію схеми і конфігурації лісу. Відповідно, контролери в домені А містять репліки контексту іменування домену А, контролери в домені B - репліки іменування домену B, а контролери домену C, відповідно, репліки домену C. Розглянемо наступну ситуацію: користувач домену C хоче знайти користувача домену А. В цьому випадку , коли користувач в домені C об'єкт, на якому домену А, результати запиту надає глобальний каталог. Але якщо об'єкт містить специфічний атрибут, який за замовчуванням не включений в глобальний каталог, то ви можете додати такий атрибут за допомогою оснастки «Схема Active Directory». Таким чином, якби не було сервера глобального каталогу, то контролер домену, який приймає пошукові запити об'єктів в інших доменах, пересилав б пошукові запити на контролер в домені з шуканим об'єктом. У цій статті ви дізнаєтеся про саму концепції серверів глобального каталогу, про їх архітектурі, протоколах, процесах, фізичну структуру, а також про багатьох нюансах, пов'язаних з даною технологією.
Взаємодія глобального каталогу з іншими серверними технологіями
Сервери глобального каталогу взаємодіють з наступними технологіями:
Установка Active Directory. Глобальний каталог автоматично конфігурується на першому контролері домену, який встановлюється в лісі;
Взаємодія серверів глобального каталогу з серверними технологіями виглядає наступним чином:
Мал. 1. Приклад взаємодії серверів глобального каталогу з доменними службами Active Directory
Після створення нового контролера домену DC02, системний адміністратор визначає його як сервер глобального каталогу і реплицирует частковий набір атрибутів з DC01. В домені А, DC01 реплицирует зміни для DC02 домену А, а DC02 - реплицирует поновлення даних для DC01 домену В.
На кроці «А» клієнтський комп'ютер КліентХ відправляє запит в глобальний каталог, який перенаправляє запит DNS сервера для пошуку найближчого сервера глобального каталогу «В», після чого клієнт зв'язується з сервером глобального каталогу для виконання свого запиту «С».
Розвиток і сценарії використання серверів глобального каталогу
Сервер глобального каталогу зазвичай використовується в ситуаціях, які розписані в наступних підрозділах.
Пошук об'єктів
Оскільки контролер домену, який працює як сервер глобального каталогу, містить об'єкти всіх доменів в лісі, глобальний каталог надає користувачам і додаткам можливість виконувати пошук даних каталогу у всіх доменах лісу незалежно від місця зберігання даних. Якщо ваш ліс складається з одного домену, то все контролери домену мають повний доступ для запису примірників кожного об'єкта в домені лісу. Коли користувач виконує пошук будь-якого принципала безпеки, вказавши в меню «Пуск» в запиті параметр «Весь каталог». то пошук виконується безпосередньо в глобальному каталозі.
Для доступу до об'єктів 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. Процес взаємодії входу користувача і глобального каталогу
- Оскільки домен користувача не обов'язково збігається з UPN-суфіксом, контролер домену переглядає принципали найближчого домена в сайті, в якому розташований клієнтський комп'ютер;
- Контролер домену, з яким намагається зв'язатися клієнт, визначає, чи є DNS-ім'я в суфіксі імені учасника-користувача доменом, з уповноваженим контролером домену. Якщо ім'я домену в UPN-суфікс відповідає домену контролера домену, який обробляє перевірку справжності клієнта, але ім'я користувача не знайдено, то контролер домену зв'язується з сервером глобального каталогу. Також, якщо ім'я домену в UPN-суфікс не відповідає домену контролера домену, то контролер домену зв'язується з сервером глобального каталогу;
- Використовуючи атрибут об'єкта користувача userPrincipalName, сервер глобального каталогу шукає различающееся ім'я об'єкта користувача і повертає це значення контролера домену;
- Контролер домену витягує ім'я домену з розрізняється імені і повертає отримане значення клієнту;
- Клієнт запитує контролер домену для свого домену.
Відомості про членство в універсальних групах в середовищі з декількома доменами.
Універсальна група також є групою безпеки, яка дозволяє управляти ресурсами, які розподілені в декількох доменах. Під час виконання інтерактивного входу, контролер домену витягує ідентифікатори SID користувача комп'ютера. З цієї причини атрибут універсальних груп member. який містить список членів в групі, реплицируется в глобальний каталог. Наприклад, користувач в лісі з декількома доменами підключається до домену, в якому дозволені універсальні групи. У цьому випадку контролер домену, для отримання членства в універсальних групах, повинен зв'язатися з сервером глобального каталогу. Якщо користувач жодного разу не підключався до домену і сервер глобального каталогу недоступний, то він може увійти тільки локально в систему. Але якщо сервер глобального каталогу недоступний при вході користувача в домен, в якому доступні універсальні групи і користувач вже підключався до даного домену, то клієнтський комп'ютер користувача може використовувати для входу кешированниє облікові дані.
Кешування членства в універсальних групах.
Тому, на контролерах домену з ненадійною зв'язком з сервером глобального каталогу рекомендується включати і настроювати кешування членства в універсальних групах. Одночасно, відомості про участь користувачів в універсальних групах, можуть оновлюватися до 500 членств кожні 8 годин. Після першого входу в систему, кеш користувача періодично оновлюється протягом 180 днів.
За замовчуванням, атрибути для об'єктів користувачів і комп'ютерів не заповнюються. На наступній ілюстрації ви побачите приклад побудови списків ідентифікаторів безпеки контролером домену для кешування:
Мал. 3. Приклад побудови списків ідентифікаторів безпеки контролером домену для кешування
Архітектура глобального каталогу
Архітектура сервера глобального каталогу відрізняється від архітектури сервера, у якого немає ролі глобального каталогу використанням нестандартного порту LDAP 3268, який направляє запити безпосередньо в глобальний каталог. Запити, які йдуть на порт 3268, формуються також як і будь-які LDAP-запити, але доменні служби Active Directory змінюють поведінку пошуку в залежності від використовуваного порту. Тобто, запити на порт 3268 направляються на розділи каталогу глобального каталогу, включаючи розділи каталогу тільки для читання, для яких даний сервер є уповноваженим. Запити на порт 389 направляються на домен з можливістю запису, а так само на розділи каталогу конфігурації, додатки та схеми реплік, які розташовані на сервері глобального каталогу в якості контролера домену. Крім того, під час зв'язку з серверами глобального каталогу для отримання членства в універсальних групах при вході користувача в систему, контролери домену використовують пропріетарний інтерфейс реплікації.
Відповідно, до основних компонентів глобального каталогу можна віднести:
На наступній ілюстрації зображена архітектура глобального каталогу:
Мал. 4. Архітектура глобального каталогу
Протоколи глобального каталогу
Протоколи і інтерфейси на всіх контролерах домену однакові і для серверів глобального каталогу немає специфічних протоколів. В даному випадку нас цікавлять чотири інтерфейсу і три протоколи. Значимість глобального каталогу полягає в тому, що контролери домену використовують власні протоколи реплікації RPC не тільки для реплікації, а ще й для зв'язку з сервером глобального каталогу при добуванні відомості про членство в універсальних групах і при оновленні кеша членства в групі, коли включена функція «Кешування членства в універсальних групах ». Для всіх вимог глобального каталогу використовуються наступні протоколи:
- Lightweight directory access protocol (LDAP).
- Simple mail transfer protocol (SMTP).
- Remote procedure call (RPC).
На наступній ілюстрації зображені протоколи глобального каталогу:
Мал. 5. Інтерфейси та протоколи глобального каталогу
Фізична структура глобального каталогу
Як роль контролера домену, глобальний каталог зберігає один доступний для запису розділ каталогу домену, в якому розташовані об'єкти з усіма атрибутами. Також сервер глобального каталогу зберігає частковий набір атрибутів (PAS) з правом на читання всіх об'єктів інших доменів в МультиДоменні лісі. Об'єктами схеми, що визначають атрибути, є об'єкти attributeSchema, які включають атрибут isMemberOfPartialAttributeSet. Якщо значення цього атрибута вказано TRUE, то атрибут реплицируется в глобальний каталог. Топологія реплікації глобального каталогу формується автоматично за допомогою перевірки узгодженості знань (Knowledge Consistency Checker, KCC) - вбудований процес, який реалізує топологію реплікації, яка гарантує доставку вмісту кожного розділу каталогу на кожен сервер глобального каталогу.
Фізичне представлення даних глобального каталогу нічим не відрізняється від контролера домену, тобто, в глобальному каталозі база даних NTDS.dit зберігає атрибути об'єкта в одному файлі. А на контролері домену, який не є сервером глобального каталогу, файл Ntds.dit містить повну записувану репліку кожного об'єкта в розділі каталогу одного домену для свого домену, а також доступні для запису розділи каталогу конфігурації і схеми.
Наприклад, розглянемо досить типовий сценарій. На сервері глобального каталогу розташована повна репліка свого домену, а також часткова репліка тільки для читання всіх інших доменів лісу. На даному сервері глобального каталогу всі розділи каталогу на сервері глобального каталогу зберігаються в файлі бази даних каталогу (Ntds.dit). Відповідно, в даному випадку немає роздільного сховища атрибутів глобального каталогу.
До компонентів фізичної структури глобального каталогу можна віднести:
- Файл бази даних Ntds.dit, в якому зберігаються репліки об'єктів Active Directory, що проводяться будь-яким контролером домену, включаючи сервери глобального каталогу;
- Ліс Active Directory, тобто набір доменів, які становлять логічну структуру Active Directory і які доступні для пошуку в глобальному каталозі;
- Контролери доменів, які зберігають по одному повного розділу каталогу домену з можливістю запису і розділи каталогу конфігурації і схеми лісу;
- Сервер глобального каталогу, який являє собою контролер домену, що містить повну записувану репліку кожного об'єкта в розділі каталогу одного домену для свого домену, а також доступні для читання репліки інших доменів в МультиДоменні лісі.
На наступній ілюстрації зображена фізична структура глобального каталогу:
Мал. 6. Фізична структура глобального каталогу
висновок
> У свою чергу, контролер домену завжди може визначити членство в локальній групі або глобальної групі домену для будь-якого користувача з цього ж домена, але членства в цих групах не реплицируются в глобальний каталог, так як членами цих груп не можуть бути користувачі з різних доменів.
Але дозвольте, користувачі різних доменів можуть бути членами локальних груп.