Подтвердить что ты не робот

Active Directory vs OpenLDAP

Каковы основные различия между этими двумя реализациями протокола LDAP? Что лучше для гетерогенной среды? Любые хорошие сайты об этой теме?

4b9b3361

Ответ 1

Для hetrogenous сред вы хотите использовать универсальный сервер, такой как OpenLDAP. Преимуществом AD обычно является то, что он уже содержит учетные записи пользователей для ваших внутренних пользователей - их можно синхронизировать с отдельным сервером LDAP, хотя это добавляет сложности.

Что касается специфики протокола, то документы для Oracle Virtual Directory имеют довольно хорошее резюме. (OVD - это продукт, который можно использовать для прокси-сервера AD и перевести некоторые его причуды в более стандартный интерфейс.):

http://download.oracle.com/docs/html/E10286_01/app_bundled_plugins.htm#CHDGDBBG

Атрибуты изменения Атрибуты в Active Directory и ADAM с большим количеством то 1000 значений возвращаются 1000 в время с именем, которое включает диапазон возвращаемых значений (или 1500 для Windows 2003). Диапазон возвращается клиенту в форме: член; 1-1000: некоторое значение. Чтобы получить следующую тысячу записей, клиентское приложение должно как-то знать повторить запрос и запросить атрибут, 1001-2000. Эта требует приложений для обработки Microsoft Active Directory в особым способом по сравнению с другими продуктов каталога.

Обновления паролей Microsoft Active Directory и ADAM имеют специальные правила о том, как пароль пользователь может быть обновлен с помощью LDAP:

  • Пароли могут обновляться только через безопасное SSL-соединение.
  • Если пользователь обновляет свой собственный пароль, исходный пароль должен быть включенным в модификацию delete с новый пароль, являющийся модификацией, добавляет та же операция изменения.
  • Только администратор может reset пароль пользователя, не зная предыдущий пароль.
  • Active Directroy не использует атрибут userPassword, он использует unicodePwd (который codeed-UTF16-hex-padded-base64 encoded).

Отображение ObjectClass Большинство LDAP каталоги используют inetOrgPerson и Групповые классы groupOfUniqueNames для пользователей и групп. Microsoft Active Каталог использует пользователя и группу objectClasses с атрибутами требования к NOS для Active Directory Microsoft. "

Это некоторые из основных, но есть и другие.

Ответ 2

Вот некоторые отличия, которые я знаю с головы. OpenLDAP можно назвать универсальным сервером LDAP, подобным многим другим серверам LDAP поставщика (Fedora DS 389, Oracle Internet Directory, IBM Tivoli Directory Server). Active Directory немного настроен для набора продуктов Microsoft (то есть: запуск домена Microsoft). Есть плюсы и минусы каждого.

OpenLDAP пуст после установки и не имеет структуры (называемой DIT). Он даже не имеет корневой вход из коробки. AD будет поставляться с базовой структурой и имеет инструменты GUI, готовые для вас, чтобы начать заполнять пользователей. OpenLDAP и другие ожидают, что вы создадите DIT вручную, чтобы создать структуру. Поэтому вам придется планировать, где вы собираетесь размещать своих пользователей, группы, роли и думать об ACL или делегировании, если ваш проект включает такие вещи. Например, у вас может быть домен для widgets.com. В AD отгруженная структура будет выглядеть примерно так:

+ dc=widgets,dc=com
|-- cn=Computers
|-- cn=Users
|-- cn=Groups

В OpenLDAP (или других версиях ванили) вы можете проектировать свой DIT разными способами. Вы можете использовать соглашение о домене (dc = foo, dc = bar), или вы можете использовать что-то, организованное по географической области (o = foo, c = bar). Это не имеет большого значения, но вы должны пойти с тем или другим. AD использует соглашение DC и не дает вам выбора, но другие LDAP-серверы могут следовать любому соглашению. Если вы пытаетесь вписаться в большой домен MS, я бы придерживался соглашения DC для обеспечения согласованности и простоты интеграции. Но для этого примера мы притворимся, что наша компания (o) в одной стране (c) не имеет регионов или подразделений (ou):

+ o=widgets,c=us
|-- cn=Machines
|-- cn=People
|-- cn=Groups
|-- cn=Roles

Затем вы можете расширить свою схему, если это необходимо. Если вы хотите расширить схему AD, AD потребует, чтобы вы добавляли элементы схемы через плагин MMC-консоли редактора редакторов Active Directory (создайте пользовательскую MMC). После этого это довольно просто. Сначала определите свои атрибуты, а затем свои объекты. OpenLDAP требует, чтобы вы записывали LDIF (также сначала требуются атрибуты, а затем objectclasses). Или используйте Apache Directory Studio с OpenLDAP, который является удивительным графическим интерфейсом и административным инструментом и упрощает использование OpenLDAP near-AD.

AD не позволяет вам запрашивать все на анонимной странице 389. Если вы хотите получить информацию о схеме (называемую каталогом), вам нужно запросить 3289 и выполнить проверку подлинности. Это напоминает мне о скрытии LDAP DIB и DIT, но я не знаю, пытается ли AD сделать то же самое здесь.

AD имеет предел запроса по умолчанию, равный 10000. Если вы хотите сосать все за один выстрел, вам нужно использовать элементы управления поисковым вызовом на вашем клиенте или в вашем коде или изменить предел запроса по умолчанию на контроллере домена, который вы ищете. Обратите внимание, что управление пейджингом может быть проблематичным. Я получил их для работы в java, используя библиотеки Netscape, но некоторые клиенты LDAP, похоже, работают некорректно, хотя они утверждают, что поддерживают пейджинговые элементы управления (YMMV).

Аутентификация AD немного странная. Вы можете аутентифицироваться как имя пользователя, отформатированное по электронной почте (-D имя_пользователя @domain), или вы можете использовать полное DN пользователя. Если в OpenLDAP есть способ сделать это, я не знаю, как это сделать, но я бы не стал беспокоиться. Это странно по сравнению с другими серверами LDAP. Обычный LDAP обычно следует за форматом DN (cn = username, cn = Users, o = widgets, c = us).

Короче говоря, AD упрям ​​и OpenLDAP является общим. И из-за этого AD легко встает, но OpenLDAP может быть более гибким.