Автор Тема: account и person  (Прочитано 19967 раз)

d06pbiu

  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
account и person
« : 27 Сентябрь 2012, 21:03:49 »
Всем привет!
Как сделать так чтобы можно было использовать два структурных класса account и person в определении записи?
В инете нагуглил что можно просто в схеме поменять тип класса на вспомогательный - попробовал сделать account - AUXILIARY - вроде работает, но чем это черевато? Какие могут быть плачевные последствия?
Может можно еще как то это реализовать?

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 486
    • Просмотр профиля
Re: account и person
« Ответ #1 : 28 Сентябрь 2012, 01:10:00 »
Здравствуйте! Сами ведь понимаете, что нарушать целостность схемы данных -- не самое удачное решение. Последствий может и не быть, если у  Вас отдельностоящий сервер с узкой задачей. Но при репликации на сторонние сервера (или свои с нормальной схемой) проблемы возникнут, да и некоторые приложения могут проверять целостность схемы данных и у Вас будут возникать "непонятные" ошибки. Словом, я бы так не поступал =).
Варианты реализации зависят от задачи, которую Ваш каталог решает, точнее от того, какой набор атрибутов в записи нужен. Можно поступить по-разному:
  • Общепринятая практика: person (или его потомки) + posixAccount (AUXILIARY), но у второго объектного класса много обязательных атрибутов.
  • Если нужен только атрибут uid, можно сделать person + uidObject (AUXILIARY).
  • Можно взять класс inetOrgPerson (STRUCTURAL, потомок person) -- там есть все атрибуты из класса account, кроме host. Если атрибут host нужен обязательно, можно добавить к inetOrgPerson еще класс hostObject (AUXILIARY).
  • В крайнем случае можно сделать свой объектный класс (или унаследовать от person) с нужным набором атрибутов, но это для гурманов, к тому же все те проблемы, о которых я писал в начале, тоже придётся решать.
Егор
« Последнее редактирование: 28 Сентябрь 2012, 01:11:44 от egor »

d06pbiu

  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: account и person
« Ответ #2 : 28 Сентябрь 2012, 13:49:20 »
Спосибо за оперативность Егор!)
Вообще задача такая: был ldap-сервер с openldap 2.2.1 - использовался для аутентификации, решено перейти на более новую версию (2.4.23); со старого сервера был экспортирован ldif с вот такими классами:

 objectClass: top
 objectClass: account
 objectClass: posixAccount
 objectClass: shadowAccount
 objectClass: person
 objectClass: inetOrgPerson
 objectClass: organizationalPerson

И все атрибуты этих классов использовались ( !особенно атрибут host! ), и кстати, было всего 3 сервера с настроенной репликацией (настраивались не мной --- я смотрел схемы - они не модифицированы - как ldap мог принять такой ldif, интересно?), вот и хотелось бы вносить минимум в ldif перед импортом.

Думаю второй вариант подойдет лучше всего!
Еще раз огромное спасибо!

VamPluDie

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: account и person
« Ответ #3 : 20 Январь 2015, 12:23:42 »
hostObject & device описаны в ldapns.schema. а никто не поделится случаем? а то в комплекте с 2.4.40_2 под freebsd почему то нет. и гугл так же не спасает.
извините за глупую просьбу. все нашел сам. /usr/local/share/pam_ldap/ldapns.schema
« Последнее редактирование: 20 Январь 2015, 18:24:30 от VamPluDie »