Active Directory против OpenLDAP

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

2 ответов


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

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

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

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

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

  • пароли могут быть только обновлено через безопасное SSL-соединение.
  • если пользователь обновляет свой пароль, пароль должен быть включенным в изменение delete с помощью новый пароль, являющийся modify add in те же изменения.
  • только администратор может сбросить пароль пользователя, не зная предыдущий пароль.
  • Active Directroy не использует атрибут userPassword, он использует атрибут unicodePwd (который процитировано-UTF16-hex-padded-base64 закодировано).

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

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


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

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

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

в OpenLDAP (или других реализациях vanilla) вы можете создать свой 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). После этого все довольно просто. Сначала определите свои атрибуты, а затем objectclasses. OpenLDAP требует, чтобы вы написали LDIF (также сначала требуются атрибуты, а затем objectclasses). Или используйте Apache Directory Studio с OpenLDAP, который является удивительным GUI и admin tool и делает OpenLDAP почти AD простоту использования.

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

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

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

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