Служба каталогов Apache Directory Server

Для начала немного теории. Что такое LDAP, и что такое служба каталогов?

Служба каталогов — это способ представления информации о неких объектах в иерархической форме. Этакая иерархическая база данных. Примеры служб каталогов: Microsoft Active Directory, OpenLDAP, Apache Directory Server, Samba.

LDAP — протокол доступа к службам каталогов. Поддерживает операции поиска, добавления, изменения, удаления, аутентификации и сравнения.

В этой статье мы рассмотрим Apache Directory Server. Нам потребуется Eclipse и Java. Apache Directory Server можно установить из Eclipse Marketplace (Help -> Eclipse Marketplace)

Eclipse Marketplace
Main menu -> Help -> Eclipse Marketplace…

В появившемся окне в строке поиска введите Apache Directory Studio, нажмите Enter. В результатах поиска у строчки с Apache Directory Studio кликните Install.

Eclipse Marketplace. Installing Apache Directory Studio.
Apache Directory Studio in Eclipse Marketplace

В появившемся окне кликните Confirm, затем согласитесь с лицензионным соглашением и т. д. В предупреждении на неподписанный контент кликните Install anyway. Перезапустите Eclipse.

Работа в Eclipse основана на работе с перспективами (perspective, можно перевести как «точка зрения» или «ракурс»). После установки Apache Directory Studio у нас появляется новая перспектива LDAP. Откроем её через Главное меню -> Perspective -> Open perspective -> Other… В появившемся окне выберите LDAP и кликните на Open.

Мы увидим окна и вкладки, специально подобранные для работы с LDAP и Apache Directory Studio. В левой части будет вкладка LDAP Browser. В левой нижней части окно с двумя вкладками: Connections и LDAP Server.

Для начала нам нужно настроить и запустить Apache Directory Server, который входит в поставку Apache Directory Studio. В левой нижней части окна Eclipse перейдите на вкладку LDAP Server. Если нужной вкладки нет (например, мы её случайно закрыли), то можно её открыть через Главное меню -> Window -> Show View -> Other. В этой вкладке есть кнопочка New Server. Кликните её.

Apache Directory Studio. New LDAP Server
New LDAP Server

Появится окно создания сервера.

New LDAP Server Eclipse
Создаём новый сервер Apache DS

В списке выберите ApacheDS и кликните Finish.

В списке серверов появится ApacheDS в состоянии Stopped.

Выделите созданный сервер и в панели со списком серверов кликните Run (зелёная стрелка).

Run APACHEDS
Запускаем ApacheDS

Теперь создадим подключение к запущенному серверу. Кликните правой кнопкой на сервере и в контекстном меню выберите пункт Create a Connection. Перейдите на вкладку Connections.

Apache Directory Studio Connections.
Apache DS Connections

На картинке изображено:

  • Вкладка Connections.
  • Созданное подключение ApacheDS 2.0.0.
  • Числом 1 обозначена кнопка New Connection.
  • Числом 2 обозначена кнопка Open Connection.
  • Числом 3 обозначена кнопка Close Connection.

Теперь обратим внимание на LDAP Browser. Он отображает содержимое нашей службы каталогов.

LDAP Browser
LDAP Browser

В LDAP Browser мы можем просматривать всю иерархию содержимого службы каталогов. Если выбрать узловой элемент, то мы сможем просмотреть его атрибуты:

ApacheDS view element attributes in LDAP Browser
Apache DS LDAP Browser атрибуты

Чтобы продвинутся дальше нужно немного изучить теорию.

В LDAP записи хранятся в иерархическом дереве, которое называется Directory Information Tree или DIT. Обратите внимание, на корневой узел DIT на вкладке LDAP Browser.

Каждый узел имеет уникальное имя (Distinguished Name или DN). Оно состоит из нескольких пар ИмяАтрибута=Значение.

Пример уникального имени или DN:

cn=Сидоров Василий,ou=Users,dc=urvanov,dc=ru

Можно использовать относительное имя (Relative Distinguished Name или RDN. Что такое RDN?
Относительное имя или RDN — это часть DN относительно какой-нибудь родительской записи.

  • cn=Сидоров Василий — RDN относительно родительскому имени ou=Users,dc=urvanov,dc=ru.
  • cn=Сидоров Василий,ou=Users — это будет относительным именем при родительском узле dc=urvanov,dc=ru.

Каждая запись имеет набор атрибутов, но они не произвольны. Набор допустимых для записи атрибутов определяется атрибутом objectclass. Для каждого objectclass в схеме определяется допустимый набор обязательных и необязательных атрибутов. Каждый атрибут может хранить несколько значений

В следующей статье будет описано заполнение данными нашей службы каталогов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *