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

Пока инфраструктура состоит из одного домена и одного каталога, всё работает достаточно просто. Но в реальности часто возникает необходимость интеграции нескольких каталогов. Это может происходить при слиянии компаний, при построении гибридных инфраструктур или в процессе миграции на новую систему управления идентификацией.

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

В MULTIDIRECTORY реализовано два механизма такой интеграции:

  • двусторонние доверительные отношения типа Realm

  • однонаправленное проксирование LDAP-запросов (LDAP-Forward)

Эти механизмы решают разные задачи и используются в разных архитектурных сценариях. Разберёмся, как они устроены и как применяются на практике.

Доверительные отношения в службах каталогов

Доверительные отношения (domain trust relationship) — это механизм, позволяющий одному домену принимать результаты аутентификации, выполненной в другом домене.

С технической точки зрения доверие между доменами включает два компонента:

  1. Механизм аутентификации, подтверждающий личность пользователя

  2. Механизм авторизации, позволяющий получать информацию о пользователях, группах и атрибутах

В большинстве инфраструктур для этого используются два протокола.

Аутентификация выполняется через Kerberos. Пользователь проходит проверку в своём домене и получает Kerberos-билет (TGT), который затем может использоваться для доступа к сервисам.

Доступ к данным каталога осуществляется через LDAP. Этот протокол используется для поиска объектов каталога и получения атрибутов пользователей, включая членство в группах.

Комбинация Kerberos и LDAP позволяет реализовать сквозную аутентификацию и авторизацию между доменами.

Двусторонние доверительные отношения Realm

В Kerberos термин Realm обозначает административную область аутентификации. Обычно Realm соответствует домену каталога и включает:

  • Kerberos KDC

  • Базу принципалов

  • Политики аутентификации

При настройке Realm-trust между двумя доменами создаётся доверительное отношение между их Kerberos-реалмами. В результате каждый KDC начинает признавать билеты, выданные другим реалмом.

Это позволяет реализовать классическую схему cross-realm authentication:

  1. Пользователь аутентифицируется в своём реалме

  2. Получает TGT

  3. При обращении к сервису в другом реалме запрашивает cross-realm ticket

  4. Удалённый сервис принимает билет и выполняет аутентификацию

Реализация Realm-trust в MULTIDIRECTORY

В MULTIDIRECTORY поддерживаются двунаправленные доверительные отношения между доменами, основанные на Kerberos Realm-trust.

Для установления доверия создаётся кросс-доменный Kerberos-принципал, который используется для междоменной аутентификации. Эта учётная запись признаётся обоими реалмами и позволяет безопасно обмениваться Kerberos-билетами.

После настройки пользователи одного домена могут аутентифицироваться в своём каталоге и получать доступ к ресурсам другого домена без повторного ввода учётных данных.

С точки зрения инфраструктуры это означает:

  • Единый механизм аутентификации

  • Отсутствие необходимости дублирования пользователей

  • Централизованное управление доступом

Kerberos при этом обеспечивает криптографически защищённую передачу билетов и исключает передачу паролей между доменами.

LDAP-Forward: проксирование запросов каталога

Не во всех случаях требуется полноценная Kerberos-интеграция между каталогами. Иногда задача сводится к тому, чтобы один каталог мог получать информацию о пользователях из другого.

Для таких сценариев в MULTIDIRECTORY реализован механизм LDAP-Forward.

LDAP-Forward работает как прокси для LDAP-запросов. Когда сервер каталога получает запрос, он может определить, что нужный объект отсутствует в локальной базе, и перенаправить запрос на удалённый LDAP-сервер.

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

Подобный механизм часто используется при:

  • Интеграции нескольких каталогов

  • Поэтапной миграции инфраструктуры

  • Построении федеративных каталогов

Аутентификация при LDAP-Forward

При подклю��ении удалённого каталога MULTIDIRECTORY может использовать два режима аутентификации.

В режиме Simple Bind используется сервисная учётная запись LDAP с правами на чтение каталога. В конфигурации указываются логин, пароль, протокол (LDAP или LDAPS) и порт сервера.

Более безопасный вариант — использование GSSAPI. В этом случае аутентификация выполняется через Kerberos, а сервер использует сервисный принципал и keytab-файл для получения билетов.

Этот режим предпочтителен в инфраструктурах, где уже используется Kerberos-аутентификация и требуется защищённое взаимодействие между каталогами.

LDAP-референсы и распределённый поиск

При работе с несколькими каталогами используется механизм LDAP-референс.

Референс — это указание на другой LDAP-сервер или на другую часть дерева каталога, где может находиться запрашиваемый объект. Когда сервер каталога получает запрос, он может вернуть клиенту referral или самостоятельно перенаправить запрос на указанный сервер.

В MULTIDIRECTORY референсы позволяют выстраивать распределённую структуру каталогов, где поиск может выполняться сразу в нескольких доменах.

DNS и сетевое взаимодействие доменов

Для корректной работы междоменного доверия критически важна конфигурация DNS.

Kerberos-аутентификация использует DNS для поиска KDC и сервисных записей. LDAP-клиенты также используют DNS для определения контроллеров каталога.

Поэтому при интеграции доменов важно обеспечить корректное разрешение имён между ними.

В MULTIDIRECTORY для этого используется механизм DNS Forwarding, который позволяет пересылать DNS-запросы между доменами и упрощает обнаружение сервисов в удалённых каталогах.

Сценарии применения

Realm-trust и LDAP-Forward закрывают разные задачи интеграции.

Realm-trust обычно используется в инфраструктурах, где требуется полноценная сквозная аутентификация между доменами. Например, при интеграции с каталогами вроде Microsoft Active Directory или FreeIPA.

LDAP-Forward чаще применяется в более лёгких сценариях: когда нужно получить данные пользователей из внешнего каталога или временно связать системы во время миграции.

В обоих случаях MULTIDIRECTORY может выступать в роли центрального элемента инфраструктуры идентификации.

Настройка доверия доменов

Настройка доверительных отношений выполняется через административный интерфейс MULTIDIRECTORY в разделе «Домены и доверие».

При создании доверительных отношений указывается доменное имя удалённой системы, а также параметры соединения. После создания записи хост изменить уже нельзя — допускается только изменение протокола и порта соединения.

Для Realm-trust дополнительно задаётся общий пароль для кросс-доменного Kerberos-принципала.

При настройке LDAP-Forward указываются параметры подключения к удалённому LDAP-серверу: протокол, порт, домен и учётные данные сервисной записи или Kerberos-учётки.

После настройки система может автоматически перенаправлять LDAP-запросы к доверенному домену.

Доверительные отношения В MULTIDIRECTORY

Интеграция каталогов — типичная задача для корпоративных инфраструктур. Она возникает при объединении доменов, построении гибридных сред и миграции между платформами управления идентификацией.

В MULTIDIRECTORY для этого реализованы два механизма.

Realm-trust обеспечивает полноценную Kerberos-аутентификацию между доменами и позволяет пользователям получать доступ к ресурсам разных систем без повторного входа.

LDAP-Forward решает более узкую задачу — проксирование LDAP-запросов и доступ к данным внешних каталогов.

Комбинация этих механизмов позволяет строить гибкие архитектуры каталогов и постепенно интегрировать разные системы управления идентификацией в единую инфраструктуру.

Планы развития доверительных отношений в MULTIDIRECTORY

В ближайшем обновлении в MULTIDIRECTORY появится расширенная поддержка доверительных отношений между доменами по модели, аналогичной той, которая используется в Microsoft Active Directory.

Речь идёт о реализации доверия типа Лес (Forest Trust) с поддержкой трёх типов отношений:

Двунаправленное доверие (two-way trust)
Оба домена доверяют друг другу. Пользователи каждого домена могут проходить аутентификацию в своём каталоге и получать доступ к ресурсам другого домена. Такой тип доверия обычно используется при объединении инфраструктур или построении единого пространства аутентификации.

Однонаправленное исходящее доверие (outgoing trust)
В этом сценарии локальный домен доверяет целевому домену. Пользователи целевого домена могут получать доступ к ресурсам локального домена, но обратное взаимодействие не разрешено.

Однонаправленное входящее доверие (incoming trust)
Обратная ситуация: целевой домен доверяет локальному домену. Пользователи локального домена могут получать доступ к ресурсам удалённого домена.

С точки зрения архитектуры модель доверия будет максимально совместима с логикой, используемой в Active Directory. Это упрощает интеграцию MULTIDIRECTORY в существующие инфраструктуры и делает процесс настройки привычным для администраторов, которые уже работали с междоменными trust-отношениями.

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

Подробно о внутренней реализации этого механизма, включая особенности Kerberos-интеграции, обмен билетов между реалмами и архитектуру trust-отношений, мы расскажем в одной из будущих статей.