Полнофункциональный гибкий каталог LDAP

Каталоги LDAP (Lightweight Directory Access Protocol — облегченный протокол доступа к каталогам) широко применяются на современных предприятиях. Нередко один каталог обеспечивает аутентификацию и управление учетными записями пользователей и компьютерами, другой обслуживает пользователей VPN, а третий — инфраструктуру открытых ключей (public key infrastructure — PKI). Появление все более сложных приложений для пользователей распределенных сетей и Internet — в частности, систем взаимодействия между предприятиями (B2B), предприятие-потребитель (B2C) и государство-гражданин — привело к тому, что каталоги чаще размещаются в демилитаризованной зоне (DMZ). Все эти приложения могут работать с Active Directory (AD), но AD требует вспомогательной инфраструктуры, например служб DNS, и существенно больших затрат на управление. Поэтому AD оказывается слишком «тяжеловесным» решением для организаций, которые нуждаются лишь в простом каталоге LDAP. В других случаях организации, развернувшие каталоги LDAP, сталкиваются с проблемой интеграции функций безопасности каталогов и операционной системы. Часто управлять ими приходится отдельно, с различными наборами полномочий.

Обе проблемы можно решить с помощью полнофункционального, но гибкого каталога LDAP, совместимого со встроенными механизмами безопасности Windows — ADAM (Active Directory Application Mode — прикладной режим Active Directory). Наряду с поддержкой многих возможностей Windows Server 2003 и Windows 2000 Server AD, ADAM располагает многочисленными функциями, не реализованными в AD, и совместим как с Windows 2003, так и с Windows XP Service Pack 1 (SP1). В отличие от AD, несколько экземпляров ADAM могут работать на одном сервере, в том числе на контроллере домена (DC), и администратор может выбрать порты, через которые экземпляр ADAM принимает запросы LDAP. В настоящее время нельзя указать, какие интерфейсы и IP-адреса прослушивает ADAM. В ADAM используется та же модель репликации с несколькими основными репликами, что и в AD, и поддерживается межсайтовая репликация по расписанию.

Владельцы лицензий Windows 2003 могут загрузить ADAM с Web-узла Microsoft. В данной статье речь пойдет о том, как установить службу ADAM, заполнить ее информацией о пользователях и интегрировать с AD.

Процесс установки

Размер загружаемого пакета ADAM — чуть больше 8 Мбайт. При запуске пакета на экране отображается вопрос, в какую папку следует записать установочные файлы. Для установки ADAM достаточно, чтобы член группы Administrators выполнил файл adamsetup.exe на машине, на которую распространяются его полномочия.

Мастер Active Directory Application Mode Setup Wizard помогает развернуть и настроить ADAM. За приветствием на первой странице мастера следует лицензионное соглашение конечного пользователя (EULA), а затем вопрос, следует ли развернуть ADAM вместе со вспомогательными инструментами или только ADAM. На следующем этапе мастер спрашивает, нужно ли развернуть уникальный экземпляр ADAM или копию другого локального или удаленного экземпляра. Независимо от выбора уникального экземпляра или копии, мастер просит ввести имя экземпляра и указать порты, которые будет прослушивать данный экземпляр, — по умолчанию выбираются порты TCP 389 для LDAP и TCP 636 для LDAP over Secure Sockets Layer (SSL). Имя и прослушиваемые порты должны быть уникальными для сервера. Если развернуть ADAM на DC или сервере, уже работающем с ADAM, то стандартные порты будут заняты, и придется выбрать другие.

При создании уникального экземпляра ADAM мастер спрашивает, нужно ли создать раздел приложения. Если ADAM предназначен для поддержки приложения, которое создает собственные разделы, то создавать раздел не обязательно; в противном случае необходимо создать раздел и указать отличительное имя (distinguished name — DN), например CN=Partition,DC=CONTOSO,DC=COM. Если создается не уникальный экземпляр ADAM (копия существующего экземпляра, которая используется как основа для репликационного набора), то мастер просит ввести имя хоста и номер порта существующего экземпляра, конфигурация и данные которого будут реплицированы (экран 1). На следующих этапах вводятся данные учетной записи с административными полномочиями в отношении реплицируемого экземпляра и копируемые разделы (экран 2).

Экран 1. Указание экземпляра для репликации

Затем мастер просит указать местоположение данных каталога и файлов восстановления. ADAM может работать в контексте учетной записи Network Service или именованной пользовательской учетной записи — мастер позволяет выбрать любой вариант. На компьютере, который не входит в состав домена, необходимо использовать именованную учетную запись пользователя в том случае, если экземпляр представляет собой копию, или предполагается создать его копии впоследствии; для успешной репликации имя пользователя и пароль должны быть одинаковыми во всех экземплярах. Необходимо убедиться, что любая учетная запись, используемая как служебная для ADAM, имеет достаточные полномочия для регистрации в качестве службы.

На следующем этапе работы мастера необходимо выбрать адмнистраторов ADAM. Можно назначить как зарегистрированного в данный момент пользователя, так и любого другого пользователя или группу пользователей. Если создается раздел приложения, то можно импортировать и использовать для построения схемы файлы LDAP Data Interchange Format (LDIF). ADAM поставляется с четырьмя файлами LDIF.

  • MS-AZMan.ldf поддерживает Microsoft Authorization Manager, инфраструктуру для безопасного управления доступом на основе ролей.
  • MS-InetOrgPerson.ldf содержит реализацию класса inetOrgPerson, описанного в документе Internet Engineering Task Force (IETF) Request for Comments (RFC) 2798. Этот стандартный объектный класс используется в большинстве современных каталогов LDAP. Класс реализован в Windows 2003 и в качестве расширения для схемы AD Windows 2000.
  • MS-User.ldf содержит класс, аналогичный классу User Windows 2003 и Windows 2000 AD.
  • MS-UserProxy.ldf содержит класс для создания proxy-объектов пользователя в ADAM, которые соответствуют пользовательским объектам в AD и могут быть аутентифицированы AD.

В отсутствие приложения, которое может создать схему, необходимо импортировать один или несколько таких классов. После завершения работы мастера процесс установки создает экземпляр ADAM и заполняет каталог схемой из LDIF-файлов, указанных администратором, или схемой и объектами реплицированного экземпляра.

Мастер установки ADAM создает программную группу с именем ADAM. Данная группа содержит ярлык для оснастки ADSI Edit консоли управления Microsoft Management Console (MMC), файл оперативной подсказки и командную оболочку, которая открывается в каталоге \%systemroot%ADAM, позволяя запускать инструментарий командной строки и обращаться к LDIF-файлам, поставляемым с ADAM. В файле подсказки приведена подробная информация по использованию инструментов командной строки.

Удалить каталоги ADAM можно с помощью утилиты Add/Remove Programs панели управления. Имя экземпляра приведено среди имен других утилит в списке установленных программ. При удалении экземпляра ADAM утилита удаляет из системы его данные и файлы восстановления. При удалении последнего экземпляра удаляются и программные файлы ADAM.

Использование ADAM

Следующий шаг после установки ADAM — заполнение каталога данными. Сделать это можно несколькими способами. Если ADAM установлен для поддержки приложения, то, возможно, это приложение заполнит каталог данными. Однако самый простой способ — задействовать программу ldifde.exe из ADAM Tools Command Prompt (находится в Start, All Programs, ADAM, ADAM Tools Command Prompt). Ldifde.exe может экспортировать объекты и использовать файл данных, содержащий список объектов и производимых с ними операций. В листинге 1 показан пример файла данных LDIF, с помощью которого ldifde.exe загружает в каталог данные двух пользователей. Загружать данные пользователей из файла данных LDIF можно и из командной строки. Например, следующая команда загружает информацию о пользователе из файла с именем importusers.ldf в каталог на локальном сервере:

ldifde -i -s localhost -f importusers.ldf

Можно также использовать LDIF-файлы для создания и управления каталогом, например создания организационных единиц (OU). Объекты можно экспортировать из одного каталога в LDIF-файл, затем импортировать в другой каталог. Чтобы использовать ldifde.exe для импорта объектов в каталог или изменения существующих объектов, пользователь должен иметь соответствующие полномочия. Самый простой способ получить достаточные полномочия — зарегистрироваться на сервере с данными учетной записи, которая имеет административные права в ADAM, например, в качестве члена группы администраторов ADAM, созданной в процессе установки. Другой способ — указать учетные данные, используемые при связывании с каталогом, в параметрах командной строки. Как и при работе с другими инструментами командной строки, можно запросить пароль, указав в командной строке звездочку (*) вместо пароля.

Еще один инструмент управления каталогом — оснастка ADAM ADSI Edit. С ее помощью можно расширять схему, создавать организационные единицы, перемещать объекты и даже создавать объекты, например пользователей. Инструмент ldp.exe позволяет направлять запросы в каталоги ADAM. Как ADSI Edit, так и Ldp — графические инструменты. Некоторые другие инструменты командной строки располагают приложениями защиты, управления и диагностики. Особый интерес представляет программа csvde.exe, с помощью которой можно экспортировать объекты из каталога в файл с разделением запятыми (CSV) или импортировать в каталог объекты из CSV-файла.

Аутентификация и авторизация в каталоге

Пользователи могут предъявлять различные учетные данные для доступа к каталогу ADAM. ADAM интегрирован с функциями безопасности Windows, поэтому пользователи могут связываться с каталогом от имени локальных и доменных учетных записей. Пользователи, имеющие учетную запись в каталоге ADAM, могут пройти аутентификацию в каталоге с этой учетной записью. Если для привязки к каталогу используется учетная запись в этом каталоге, необходимо указать полное имя DN. Например, имя пользователя Билла Андерсона (Bill Anderson — пользователь, информация о котором вводится в каталог с помощью LDIF-файла в листинге 1) выглядит следующим образом:

CN=banderson,CN=Application,DC=ADAM,DC=CON-TOSO,DC=COM.

Пароль для учетных записей пользователей ADAM можно назначать из оснастки ADSI Edit или с помощью ldp.exe. Совместимое с каталогом приложение (например, Web-приложение, в котором ADAM используется в качестве хранилища данных аутентификации и авторизации) также может назначить пароль. Пример исходного текста для назначения паролей и программного управления пользователями и группами на языках VBScript, Visual Basic .NET и C# опубликован на Web-узле Microsoft по адресу.

Экран 2. Указание разделов для репликации

Можно запретить пользователям задействовать учетные данные из каталога ADAM для привязки к каталогу, если, например, каталог служит только для публикации информации (адреса электронной почты, телефонного номера, почтового адреса, сертификатов X.509v3). Для этого необходимо присвоить значение TRUE атрибуту msDS-UserAccountDisabled каждой блокируемой учетной записи. Если у объекта «пользователь» этого атрибута нет или атрибут имеет значение FALSE, то сотрудник может использовать свою учетную запись ADAM для привязки к каталогу. Нельзя запретить пользователю связываться с каталогом ADAM с помощью локальной или доменной системной учетной записи Windows.

ADAM обеспечивает аутентификацию AD через proxy-объект и перенаправление привязки. При таком методе аутентификации пользователи предъявляют свои доменные учетные данные для входа в ADAM с DN. Этот метод аутентификации позволяет строить каталоги для приложений, ориентированных на пользователей с учетными записями AD и внешних пользователей с учетными записями ADAM. Дублирование в ADAM объектов user для пользователей с учетными записями AD затрудняет управление и синхронизацию объектов. Для использования proxy-объекта ADAM необходимо импортировать LDIF-файл MS-UserProxy, а сервер ADAM должен быть членом домена. Атрибуту objectSID в классе UserProxy для пользователей, представленных в ADAM proxy-объектами, должно быть присвоено такое же значение, как у соответствующего SID в AD.

В ADAM определены четыре стандартные роли, используемые экземплярами ADAM для общего управления авторизацией. Роли реализованы как групповые объекты в ADAM. Эти роли — Administrators, Readers, Users и Instances. Чтобы назначить пользователю роль, необходимо добавить его в многозначный атрибут членов в ролевом объекте с помощью оснастки ADSI Edit, инструмента ldp.exe или программным путем. Область действия ролей ограничена разделами. Наряду с другими объектами в каталоге роли реплицируются между экземплярами ADAM в конфигурационном наборе. Administrators получают полный административный доступ к экземпляру ADAM, Readers могут просматривать любые объекты в разделе, а Users имеют полномочия, предоставленные им в списках ACL. Роль Instances в основном не документирована.

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

dsacls /?

Назначая разрешения, пользователей и группы можно указывать в нескольких форматах, в том числе в форматах DN и domainuser.

Для идентификации субъектов в списках ACL используется SID. Пользователи и группы, организованные на базе как Windows, так и ADAM, имеют SID, поэтому и тех и других можно вносить в ACL. ADAM генерирует и обслуживает SID для пользователей и групп ADAM, гарантируя уникальность SID.

Дополнительная информация

В данной статье приведены лишь основные сведения об ADAM. Чтобы познакомиться с разнообразной функциональностью продукта, например с разделами приложений и репликацией, я рекомендую посетить Web-узел Microsoft по адресу, откуда можно загрузить документы, руководства и пакет ADAM Feature Pack.

В следующий раз я расскажу о том, как с помощью Identity Integration Feature Pack for Microsoft Windows Server Active Directory заполнить каталог ADAM данными из другого каталога, ADAM или AD. Данный подход полезен для приложений и каталогов, размещенных в DMZ. Кроме того, это альтернатива репликации ADAM, использованию proxy-объектов и интеграции с системой безопасности Windows, при которой требуется открытие в брандмауэре портов между DMZ и внутренней сетью.

Джон Хоуи (jhowie@security.toolkit.com) — менеджер консалтинговой фирмы Security Toolkit, специализирующейся на системной и сетевой безопасности.