Первые шаги вместе с Windows XP

         

Интерфейсы API в Active Directory

Имеется множество каталогов сетевых ресурсов, например, LDAP-каталоги, Active Directory, Banyan StreetTalk, Microsoft Windows NT Directory Service, Novell Directory Service, и каталогов конкретных приложений, таких как Lotus Notes, cc:Mail или Microsoft Exchange. Все эти службы каталогов имеют свои интерфейсы программирования, что усложняет как администрирование каталогов (поскольку управление каждым каталогом выполняется отдельно), так и создание корпоративных приложений, обращающихся к используемым в организации каталогам.

Решение проблемы компания Microsoft видит в применении Active Directory Service Interface (ADSI) — набора СОМ-интерфейсов программирования, при помощи которого пользователи и независимые поставщики программного обеспечения (ISV) могут применять единый хорошо проработанный интерфейс для регистрации в различных службах каталогов, доступа к ним и управления этими службами.



Одним из наиболее распространенных и открытых интерфейсов доступа к базам данных является Open Data Base Connectivity (ODBC). Этот интерфейс поддерживается практически всеми реляционными базами данных. ADSI можно рассматривать как "ODBC для служб каталогов". ADSI позволяет создавать механизмы (называемые поставщиками ADSI, ADSI-providers) доступа к информации конкретного типа каталога. Прикладные программы, написанные с использованием ADSI, будут работать с любыми службами каталогов, для которых имеется поставщик ADSI. Так обеспечивается открытое, универсальное решение проблемы использования различных каталогов (рис. 23.6). Windows NT Server 4.0 уже имеет несколько поставщиков

ADSI для различных служб каталогов, a Windows XP Server имеет поставщика ADSI для Active Directory.


Рис 23.6. Открытое решение С использованием ADSI

В основе ADSI лежит модель СОМ-объектов, что упрощает написание сценариев доступа к каталогу. Например, администратор может создать сценарий для присвоения значений некоторым элементам Active Directory. Разработчики программных продуктов могут использовать данный API, например, для анализа элементов каталога. Для низкоуровневого программирования на C/C++ Active Directory также имеет стандартный LDAP API, который определяется как набор вызовов С-функций и описан в RFC 1823. Интерфейсы ADSI являются одним из компонентов Open Directory Service Interfaces (ODSI, Интерфейсы службы открытого каталога), входящих в Windows Open Services Architecture (WOSA, Архитектура открытых служб Windows). Для наглядности основные достоинства ADSI перечислены в табл. 23.1.

Таблица 23.1. Достоинства Active Directory Service Interface (ADSI)

Характеристика

Преимущества

Открытость

Любой поставщик службы каталога может создать ADSI-provider; пользователи могут выбирать любую удобную им службу каталога, сохраняя все возможности ее администрирования

Независимость от службы каталогов

Инструменты администрирования не привязаны к конкретной службе каталога, и одно приложение может работать с различными каталогами. Это уменьшает затраты на проектирование и сопровождение программ

Поддержка Java

С помощью Java COM объекты ADS! обеспечивают апплетам и приложениям Java простой доступ к службам каталогов

Безопасность

ADSI поддерживает программные модели аутентификации (Authentication model) и авторизации (Authorization model)

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

Можно создавать административные и другие ориентированные на использование каталогов программы, не вдаваясь в детали API конкретного производителя службы каталога

Сервер автоматизации OLE

Для создания приложений, работающих с каталогами, можно использовать любые средства разработки контроллеров автоматизации OLE (Visual Basic, PERL, Rexx, C/C++ и другие). Администраторы и разработчики могут использовать любые знакомые им инструменты проектирования, что увеличивает эффективность их работы

Большой набор функций

Одни и те же модели ADSI можно использовать как для написания простых сценариев, так и для создания сложных приложений

Расширяемость

Поставщики служб каталогов, ISV и конечные пользователи могут добавлять в ADSI новые объекты и функции, расширяющие возможности интерфейсов или отвечающие частным требованиям


Содержание раздела