Что решает LDAP? - PullRequest
       16

Что решает LDAP?

60 голосов
/ 19 мая 2009

Я связывался с LDAP во многих проектах, в которых участвовал, но, по правде говоря, я не совсем понимаю. Я подумал, что это просто каталог пользователя, но после того, как обнаружил, что он может содержать любые объекты в иерархической структуре.

Я установил openldap в свою коробку и нашел много уроков, касающихся только установки.

Что такое LDAP? В каких сценариях LDAP является правильным выбором? Какие концепции LDAP я должен знать для работы с ним? Каковы преимущества LDAP? Это используется только потому, что старые приложения использовали его? Есть ли в Интернете хороший документ, объясняющий все эти вопросы?

UPDATE : В дополнение к ответам я нашел эту ссылку , которая содержит краткое руководство для начинающего LDAP, такого как я.

Ответы [ 11 ]

39 голосов
/ 19 мая 2009

Что такое LDAP? В каких случаях LDAP является правильным выбором?

По своей сути, LDAP - это протокол для доступа к объектам, которые подходят для хранения в каталоге. Является ли что-то «подходящим» - это полностью субъективное определение, которое оставлено на усмотрение разработчиков, но обычно это означает наборов многих объектов, каждый из которых имеет редко (или никогда) обновленные данные , где каждый объект имеет очевидные или канонические способ поиска:

  • телефонная книга (поиск по имени или номеру телефона)
  • заголовков в библиотеке (поиск по названию, автору и т. Д.)
  • арендаторы здания (поиск по этажам, апартаментам, имени и т. Д.)

и т. Д.

Обратите внимание, что LDAP сам по себе является просто протоколом и не предоставляет никакого фактического хранилища - во многом аналогичным образом HTTP ничего не говорит о том, используете ли вы Apache, Jetty, Tomcat, Mongrel и другие. в качестве веб-сервера. (Одна проблема с LDAP в целом - это запутанное повторное использование имен для обозначения разных вещей. В Википедии есть хороший раздел по этому вопросу.)

13 голосов
/ 31 мая 2009

DIT - это иерархическая схема описания, которая очень хорошо подходит для алгоритмов B-Tree, что в большинстве случаев приводит к огромной производительности поиска. Сервер каталогов, такой как OpenDS, возвращает индексированные поиски в микросекундах, тогда как системы СУБД работают намного медленнее. Серверы каталогов (часто называемые серверами LDAP) обмениваются ресурсами (ОЗУ, ЦП) для быстрого чтения. Системы RDBMS обеспечивают большую функциональность с точки зрения управления данными. Нужна скорость с минимальными или нулевыми обновлениями, простота и небольшой сетевой протокол? Используйте сервер каталогов. Нужны возможности управления данными и майнинга, и / или высокая скорость изменения базы данных с реляционными аспектами, определенными между данными? Используйте СУБД (MySQL - ваш лучший выбор здесь).

9 голосов
/ 19 мая 2009

LDAP имеет O (1) производительность чтения, в обмен на O (что-то хуже) производительность записи. Он идеально подходит для данных, к которым часто обращаются, но которые редко меняются - каталоги людей, имена и адреса компьютеров и т. Д. (отсюда и сокращение: упрощенный протокол доступа к каталогам.)

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

5 голосов
/ 12 мая 2010

Одна перспектива, на которой я хотел бы остановиться, - это приложение LDAP поверх хранилища постоянных данных, а база данных - хранилище постоянных данных. Оба могут быть использованы для хранения пользовательской информации.

LDAP дает вам иерархию, которую сложнее сделать в базе данных. Вы можете создать иерархию в базе данных, но сложнее сделать такие вещи, как делегирование (эти строки принадлежат только вам) или списки ACL для строк. Таким образом, устранение проблем безопасности из базы данных легче, если вы используете LDAP для хранения пользовательских идентификаторов. Пытаться решить это в базе данных странно.

В то же время, LDAP ужасен для отчетов против (преобразовать LDAP в БД для отчетов). Хранение атрибутов в глубине дерева, которые необходимо быстро найти, может быть проблематичным для производительности (не делайте этого, располагайте БД на стороне или попробуйте сгладить запрос, изменив структуру DIT). Хранение атрибутов повсюду в действительно глубоком DIT - это просто плохой дизайн LDAP или системы, но иногда это неизбежно, если вы привязаны к продукту поставщика или устаревшему приложению.

5 голосов
/ 19 мая 2009

Эта ссылка объяснит LDAP http://blogs.oracle.com/raghuvir/entry/ldap

Мы используем LDAP в нашем офисе для поиска адресов электронной почты всей компании. Мы используем его как службу единого источника для наших внутренних приложений.

3 голосов
/ 20 мая 2009

Я работаю неполный рабочий день и студентом полного дня. Моя учебная программа поощряет (читай требует) множество групповых проектов.

Я использовал openLdap и phpLdapAdmin для управления доступом к моим репозиториям Subversion и Mercurial, проектам Trac, Hudson и т. Д. Его было нелегко установить, но время, сэкономленное на администрировании, было Божьим посланием.

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

2 голосов
/ 29 марта 2014

См. Ссылку:

http://www.umich.edu/~dirsvcs/ldap/doc/guides/slapd/1.html#RTFToC1

Что глубоко объясняет LDAP:

Например, вы можете увидеть это изображение в этой документации,

http://www.umich.edu/~dirsvcs/ldap/doc/guides/slapd/guide-51.gif

2 голосов
/ 19 мая 2009

LDAP - это протокол доступа; он предоставляет только API для базовой технологии, для которой вы пытаетесь найти приложения - служба каталогов . OpenLDAP является одной из служб каталогов с открытым исходным кодом; У Sun есть еще одна реализация под названием OpenDS. Active Directory и Novell NDS - это еще два приложения, которые обычно встречаются в этой области.

Каталог может использоваться для хранения информации о любом виде ресурса и взаимосвязях между ресурсами - например, правами пользователя на каталог, принтер или устройство доступа к сети.

2 голосов
/ 19 мая 2009

LDAP - это просто протокол, в статье в Википедии это объясняется адекватно http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol

Это способ запроса базовой организационной структуры, такой как Microsoft Active Directory. Вы можете использовать запросы LDAP для получения всевозможной информации о пользователях, использовать ее для настройки прав приложений и т. Д.

1 голос
/ 20 мая 2013

Есть ли в Интернете хороший документ, объясняющий все эти вопросы?

IBM опубликовала отличную Красную книгу о LDAP. Название: Понимание LDAP - разработка и внедрение .

Его можно скачать по предыдущей ссылке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...