Active Directory против OpenLDAP - PullRequest
       31

Active Directory против OpenLDAP

27 голосов
/ 15 июня 2009

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

Ответы [ 2 ]

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

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

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

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

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

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

14 голосов
/ 02 июля 2009

Для гетерогенных сред вы хотите использовать сервер общего назначения, такой как 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: somevalue Для того, чтобы получить следующую тысячу записей, клиентское приложение должно как-то знать повторить запрос и запросить атрибут атрибута; 1001-2000. это требует приложений для обработки Microsoft Active Directory в особый способ по сравнению с другими Каталог продукции.

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

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

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

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

...