Если ваша фирма не входит в список Fortune 100, это еще не означает, что вы не получите никаких преимуществ от службы метакаталогов (metadirectory services), и всегда есть шанс, что одна из реализаций такой службы, например, Microsoft Identity Integration Server (MIIS) 2003, сыграет огромную роль в судьбе вашей компании.

Что такое MIIS? Это вклад Microsoft в мир продуктов под названием "службы метакаталогов". Эти службы помогают управлять и синхронизовать между собой несколько служб каталогов (directory services). Если по-прежнему звучит непонятно, вернемся на шаг назад и выясним, что такое службы каталогов.

Упрощенно можно сказать, что каждое приложение, связанное с безопасностью, и каждая операционная система нуждаются в некотором множестве - базе данных - пользователей, для которых требуется организовать аутентификацию, и механизме выяснения, являются ли пользователи теми, за кого себя выдают. Возьмем, к примеру, файл Windows NT 4.0 SAM. Его содержимое - это список имен и паролей пользователей. Вы пытаетесь зарегистрироваться в системе, используя для этого имя и пароль, а NT "смотрит" в SAM и проверяет введенные данные на соответствие пары имя/пароль записям файла. А теперь представим эту же ситуацию в терминах службы каталогов.

Файл SAM - это каталог (directory). Каталог - это некоторая база данных пользователей, паролей и иных данных, в зависимости от наполнения конкретного каталога.

Например, NT SAM содержит следующие объекты - пользователи (user), компьютеры (computer), группы (group), а также описание доверительных отношений (отношений доверия, trust relationships). База данных Active Directory (AD) также содержит объекты групповой политики (Group Policy), организационных единиц (OU) и еще множество других элементов. Подобно другим базам данных, AD не будет представлять никакой ценности, если вы не сумеете правильно составить к ней запрос. В данном случае это означает, что надо уметь регистрироваться в AD, вовремя менять пароль, создавать или удалять учетные записи пользователей и управляться с другими аналогичными задачами. Каждая копия Windows Server 2003, Windows XP, Windows 2000 и NT содержит законченную версию процессора базы данных и язык запросов, и когда какому-либо приложению требуется узнать, кем в действительности является тот или иной пользователь, оно задействует этот процессор и язык запросов. Следовательно, можно сказать, что NT и более поздние версии Windows предоставляют службы идентификации или являются провайдерами служб идентификации. Либо, другими словами, в составе NT существует служба каталога. Кстати, даже в Windows NT 3.1 была такая служба.

Вы наверняка слышали о чем-то подобном и раньше. Конечно, это AD. Или, может быть, на память приходит Novell Netware 3.x Bindery (аналог базы данных SAM). Или более сложная конструкция NetWare Directory Services (NDS), преемник Netware Bindery. Banyan, компания, из которой Microsoft переманила Джима Алчина, имела в свое время прекрасную службу каталогов под названием StreetTalk. У Sun Microsystems есть Solaris, у Linux - целая связка служб каталогов, включая старый стандарт Unix под названием Network Information Services (NIS), который непосредственно интегрирован в контроллеры доменов Windows 2003 R2. Мэйнфреймы IBM, Univac, RCA и Digital, на которых многим (в том числе и мне) довелось поработать, также поддерживали списки имен и паролей, так что и здесь можно говорить о службах каталогов, хотя и в более примитивной реализации.

Однако службы каталогов нужны не только для операционных систем. Многие прикладные программы также имеют собственные службы каталогов. Например, Lotus Notes поддерживает свой список имен и паролей пользователей, также поступает Exchange Server 5.5, 5.0 и 4.0 (Exchange 2000 и более поздние версии Exchange полагаются уже на AD, вот почему запустить современные версии Exchange без установки AD не получится).

Сложность ситуации в том, что в большинстве случаев речь идет о службах каталогов, а не о какой-то одной службе каталогов. Фактически каждая организация имеет более одной службы каталогов, и это создает свои проблемы. Например, я работал с одной очень маленькой компанией, в которой - в это трудно поверить - было четыре (!) службы каталогов.

Во-первых, AD. Во-вторых, почтовый сервер MailEnable, который был недостаточно хорошо интегрирован с AD, поэтому вел собственный список пользователей и паролей. Использовалась утилита WorkgroupShare для обмена данными Microsoft Outlook из Contacts и Calendar с другими пользователями; утилита интегрирована с AD при регистрации, но после регистрации, в процессе работы утилиты, возникают проблемы, и поэтому было решено оптимизировать конфигурацию и вести еще один список пользователей и паролей. И, наконец, Web-сервер был напрямую подключен к Internet, поэтому было решено из соображений безопасности не работать с пользователями локального домена - так появился еще один SAM. Таким образом, в этой крошечной организации мой ассистент и я получили четыре различных списка имен и паролей пользователей: один для AD, один для MailEnable, один для WorkgroupShare и один для работы с Web-сервером.

Но по сравнению с другими моими заказчиками описанная ситуация - не самая сложная. Нет ничего необычного в том, что в компании используется одно дерево NDS, три леса AD (исторически так сложилось), решение VPN не от Microsoft, "не понимающий" AD Lotus Notes на IBM AS/400 и еще несколько Web-приложений, для которых в роли хоста выступает Solaris. А что если взять все эти службы каталогов и замаскировать их неким программным обеспечением, которое будет "понимать", как создавать, удалять и модифицировать учетные записи NDS, AD, Notes, SAM, AS/400 и т.п.? Такой программный инструмент стал бы собирательной службой (в единственном числе) каталогов для всех используемых в организации служб каталогов или "службой метакаталогов". Подобный инструмент позволил бы обрабатывать с единой позиции примерно такие ситуации: "У нас появился новый сотрудник, ему нужны учетные записи в NDS, Notes и AD, но не требуется учетная запись Solaris, а пароль для него будет swordfish". Metadirectory services обработает этот специфический запрос и везде создаст нужные учетные записи, имитируя процесс ввода необходимой информации в оснастке Microsoft Management Console (MMC) Active Directory Users and Computers, программе Netware administration и т.д. Ни одна "заинтересованная" служба каталогов не заподозрит, что на самом деле всем управляет служба метакаталогов.

MIIS, служба работы с метакаталогами от Microsoft, выросла из приобретенной Microsoft компании под названием Zoomit, которая продала продукт Zoomit VIA. Однако Zoomit VIA не была первой попыткой решить проблему совместной работы с несколькими службами каталогов. В том же направлении двигаются IBM Metamerge, Novell DirXML, и еще много других. Существует, наверное, несколько тысяч служб метакаталогов в форме наборов BAT-файлов и сценариев. Фактически, именно так работал Zoomit VIA - в основном это была обработка данных при помощи сценариев. Тем,  кто пытался освоить данный продукт, приходилось основательно потрудиться, но это также означало, что поддержка чего-либо ранее не поддерживавшегося (например, MailEnable, как в описанном мною случае) становилось почти неразрешимой задачей, если вы не умели работать со сценариями. Вот почему разработчики Microsoft говорят, что MIIS поддерживает AD, Exchange, Notes, Novell, Sun и "множество других служб каталогов". Иными словами, если вы захотите расширить функциональность продукта, нужно будет писать собственные сценарии.

MIIS 2003 обладает рядом интересных особенностей. MIIS 2003 Enterprise Edition поддерживает огромное количество новых служб каталогов или позволяет пользователю создавать необходимые сценарии и расширения для уже существующих. MIIS 2003 Enterprise Edition работает в системе Windows 2003 Enterprise Edition и стоит около 25 000 долл. на один процессор. Но есть и бесплатная усеченная версия MIIS под названием Identity Integration Feature Pack 1a (IIFP) for Microsoft Windows Server Active Directory. Ей для работы также требуется Windows 2003 Enterprise Edition. Данная версия может обслуживать только одну или несколько служб каталогов AD, Active Directory Application Mode (ADAM) и хранилище Exchange 5.5.

Понятно, что позволить себе заплатить за MIIS цену очень неплохого автомобиля (из расчета на один процессор) может только очень крупная компания. Чего не скажешь о IIFP. Почему же Microsoft сделала этот продукт бесплатным? Это уже вопрос для другой статьи.

Марк Минаси (help@minasi.com) - Редактор Windows IT Pro, имеет сертификат MCSE; является автором книги Mastering Windows Server 2003 (издательство Sybex).