После того как с помощью DNS нужный
контроллер домена обнаружен, для доступа к данным Active Directory используется
протокол LDAP. Как и DNS, LDAP — это стандарт, разработанный консорциумом IETF
и происходящий от сложной, но не используемой широко службы каталогов Х.500,
созданной в середине 80-х годов. Active Directory поддерживает не только версию
2 протокола LDAP, описанную в RFC 1777, но и версию 3, рассматриваемую в RFC
2251. В настоящее время практически все фирмы-поставщики служб каталогов предлагают
LDAP-совместимые продукты, поэтому клиенты LDAP сторонних поставщиков могут
обращаться к LDAP-серверу Active Directory. Протокол LDAP работает поверх TCP/IP
и — как следует из названия протокола — определяет способы доступа к каталогу
со стороны клиентов. Помимо механизма доступа данный протокол реализует соглашения
по именованию информации в каталоге, в явном виде описывая структуру этой информации.
Для клиента все данные, хранящиеся в базе LDAP, представляются в виде иерархического
дерева. Каждый узел дерева (объект или элемент) может быть либо
контейнером
(container), либо
листом
(leaf). Различие между ними вполне очевидно:
контейнеры могут содержать другие элементы, а листья — нет.
Каждый элемент (контейнер или лист) представляет собой некоторый объектный класс, определяющий атрибуты (называемые также свойствами) данного элемента. Поскольку атрибуты есть и у контейнеров, и у листьев, информация, хранящаяся в дереве каталога, распределена по всем узлам. Тип информации (объектные классы и типы атрибутов), содержащейся в конкретной базе данных Active Directory, задается схемой, определенной для этого каталога. В Active Directory схема каждого каталога представлена элементами, хранящимися непосредственно в самом каталоге. Компания Microsoft определяет стандартную схему, однако пользователи и разработчики программных средств могут добавлять новые классы и типы атрибутов. Изменение схемы каталога — полезная возможность, которой нужно пользоваться очень осторожно, поскольку такие изменения могут иметь весьма значительные последствия.
Схема Active Directory достаточно сложна и содержит сотни и сотни объектных классов и типов атрибутов. Ниже для примера перечислены некоторые интересные классы:
|
user — описывает конкретного
пользователя домена. Среди атрибутов этого класса: canonicalName (Каноническое
имя), userPrincipalName (Полное имя пользователя), homePostalAddress (Домашний
почтовый адрес), telephoneNumber (Номер телефона), thumbnailPhoto (Фотография).
|
|
printQueue
— позволяет
клиенту находить некоторый принтер. Среди атрибутов: location (Местоположение),
printStatus (Состояние принтера) и printLanguage (Язык принтера).
|
|
compoter
— идентифицирует
некоторый компьютер домена. Среди множества атрибутов этого класса: operatingSystem
(Операционная система), operatingSystemServicePack, dNSHostName (DNS-имя
хоста) и machineRole (Назначение компьютера; этот атрибут указывает, является
ли данный компьютер контроллером домена, рядовым сервером или рабочей станцией).
|
|
organizationalUnit — описывает подразделения конкретного домена. Самый важный.атрибут— ои (Имя организационной единицы). Организационные единицы играют очень важную роль при структурировании информации, внутри домена (это будет описано чуть позже). |
Каждый элемент Active Directory и каждый атрибут любого элемента имеют список управления доступом (ACL), который определяет права и возможности пользователей в отношении доступа к конкретным элементам и атрибутам. Например, список ACL может позволить одним пользователям читать атрибуты некоторого элемента, другим пользователям — читать и изменять некоторые из атрибутов, а остальным — запретить какой-либо доступ к элементу. Эффективное управление доступом невозможно без достоверной аутентификации клиентов, Active Directory использует для этой цели протокол Kerberos. (Kerberos — стандарт, созданный консорциумом IETF и поддерживаемый многими поставщиками; ключевая технология для обеспечения распределенной безопасности Windows 2000.)