Что люди используют для CN с inetOrgPerson в каталогах LDAP - PullRequest
5 голосов
/ 19 октября 2011

Я использовал givenName+" "+surname для поля CN и проснулся вчера с криком «а как же Джон Смит»?Я могу представить любую крупную организацию, в которой работают несколько человек с одинаковыми именами.Так что, конечно, это не сработает.Что люди используют вместо этого?

РЕДАКТИРОВАТЬ Примечание: в inetOrgPerson CN является частью DN.

РЕДАКТИРОВАТЬ Примечание: в этомЯ ожидаю, что ситуация возрастет до сотен тысяч записей пользователей.

Ответы [ 2 ]

12 голосов
/ 19 октября 2011

В каталоге LDAP, независимо от того, является ли он OpenLDAP или Active-Directory, правило состоит в том, что DistinguishName (DN) должно быть уникальным независимо от атрибута (или атрибутов), используемых для составления относительного отличительного имени (RDN).

Как люди могут убедиться, что он уникален

  1. Я бы сказал, что в малом бизнесе тот, кто создает запись в каталоге, гарантирует, что она уникальна, в первую очередь по знаниям,второе по предварительному поиску.Если дубликат появился, он находит некоторые решения, такие как «Джон Э Смит».Используя это решение, если имя меняется (брак, развод и т. Д.), Запись LDAP должна «переместиться» из одного DN в другое.Лучше избегать изменения DN записи, когда это возможно, но в небольшом каталоге это не важно.

  2. Начиная со среднего бизнеса, уникальность в большинстве случаев определяется идентификатором сотрудника.из людских ресурсов.Например FR12345678.Я видел, что в больших компаниях люди заходили со своим ID сотрудника.Для того, что я здесь расскажу, более стандартно использовать uid атрибут для имени объекта, несмотря на cn (но некоторые каталоги не позволяют выбирать атрибут именования, я думаю, что это функция X500).

  3. В большинстве каталогов (не в AD) вы можете использовать более одного атрибута для составления RDN.Например, sn=Assin+TelephoneNumber=1234 является действительным RDN в openLDAP, и это может иметь смысл в УАТС.Еще одна вещь

В некоторых каталогах (предназначенных для системного администрирования) некоторые атрибуты на стороне сервера проверяются как уникальные по всему дереву.Это случай sAMAccountName или userPrincipalName в Active-Directory, и они используются для целей регистрации.Использование атрибута CN с «Name-Name Name» обязывает администраторов гарантировать уникальность.Вы можете использовать уникальный атрибут в OpenLDAP для этого в определении базы данных в slapd.conf, добавив:

# index since the unique overlay will search for matching mail attributes
index mail eq

overlay unique
unique_attributes mail

Если уникальное наложение не скомпилировано, вам нужно будет перекомпилировать с:

./configure ... --enable-unique
5 голосов
/ 03 ноября 2011

Добавление к ответу JPBlanc с некоторыми из моего опыта.У нас есть несколько серверов / деревьев ldap, где я работаю.Наш сервер AD использует DisplayName в качестве значения CN.Из 4K + пользователей у нас было всего несколько случаев, когда возникали дубликаты.Я полагаю, что действие по умолчанию состоит в том, чтобы присвоить 1 значение, если есть дублирование.Это удивительно редко, даже с высокой скоростью оборота в самой большой части этой пользовательской базы.У нас есть два разных дерева электронных каталогов, которые связаны друг с другом и используют имя пользователя.Имя пользователя - первое имя + фамилия.Любые дубликаты там имеют добавочный номер.Как вы можете себе представить, это часто случается с Браунами, Смитами и другими общими именами.Другое дерево, которое является каталогом ADLDS (ранее ADAM), использует уникально сгенерированный номер для каждой новой записи в качестве CN.Это в основном автоматически увеличиваемое число, которое контролируется внешним процессом загрузки.Наконец, у нас есть каталог для внешних партнеров (думаю, независимых агентов), который использует комбинацию адреса электронной почты и идентификационного номера в качестве CN.

Я выполняю много работ по обслуживанию на пользовательских базах и моей наименее любимой схемеэто внешне сгенерированный номер.Если мне позвонят в службу поддержки о Джо Брауне во всех других системах, я по крайней мере смогу понять, где мне нужно искать его, чтобы найти его.Конечно, простой поисковый фильтр даст мне все Брауны, но мне все еще нужно написать и выполнить его.Поэтому мой совет - использовать некоторую часть имени для CN и каким-то образом обеспечить уникальность.С административной точки зрения это будет немного проще.Действительно, CN важен, но вы будете иметь дело с остальными атрибутами пользователя гораздо больше, так что не переживайте слишком сильно.

...