Форум проекта Pro-LDAP.ru
Общие вопросы по LDAP => Схема данных, наборы Schema, объектные классы, атрибуты и другое => Тема начата: manik207 от 24 Апрель 2017, 16:31:49
-
Добрый день, Егор!
Есть сервер openLDAP, на нем такая структура:
dc=ldap,dc=centos
|\ou=Group
|\cn=redmine
|\cn=moodle
|\ ...
|\ou=People
|\ou=System
|\uid=redmine
|\uid=moodle
|\...
|\uid=user1
|\uid=user2
|\...
Системные юзеры нужны для авторизации указанных сервисов в лдапе.
Атрибуты такие:
dn: uid=redmine,ou=System,ou=People,dc=ldap,dc=centos
objectClass: account
objectClass: simpleSecurityObject
objectClass: top
uid: redmine
userPassword:: e0NSWVBUfSQ2JEZldFhWUmJIJE9ghNalBqSE5veVo3TnlZV3BONEJ4UFlSa
nJJS2RRak5dfsgdf5VT2piM0VZdborkedsha512hashnlQaWlCYWxXcTZYL2YzakdkUC93Q2MyOHlJZWFLMEVxcEVz
ZzEw
Если этот вариант не верный - поправьте, создавала копипастом. Его задача - подключаться от имени сервиса и читать пароли.
Подключаю еще один сервис к лдапу (phpbb). Сервис требует, чтобы было поле mail у пользователя. И если оставить его пустым - выдает ошибку и не авторизует. Добавляю атрибут mail
dn: uid=redmine,ou=System,ou=People,dc=ldap,dc=centos
changetype: modify
add: objectclass
objectclass: iNetOrgPerson
-
add: mail
mail: moodle@domen.ru
При добавлении лдап ругается, что класс account и inetOrgPerson несовместимы.
ldap_modify: Object class violation (65)
additional info: invalid structural object class chain (account/inetOrgPerson)
Какой другой объектный класс, совместимый с inetOrgPerson, можно использовать для системного пользователя, чтобы пользователь оставался системным и мог читать пароли (но при этом имел атрибут mail)?
-
Здравствуйте, Анна!
При добавлении лдап ругается, что класс account и inetOrgPerson несовместимы.
ldap_modify: Object class violation (65)
additional info: invalid structural object class chain (account/inetOrgPerson)
Вы пытаетесь добавить в запись второй структурный (STRUCTURAL) объектный класс -- это нарушение структуры записи, о чём Вам и говорит slapd.
Какой другой объектный класс, совместимый с inetOrgPerson, можно использовать для системного пользователя, чтобы пользователь оставался системным и мог читать пароли (но при этом имел атрибут mail)?
Вам либо надо пересоздать запись по новой с другим структурным объектным классом (например, inetOrgPerson), либо добавить класс extensibleObject, тогда можно будет использовать любые доступные в схеме данных атрибуты:
dn: uid=redmine,ou=System,ou=People,dc=ldap,dc=centos
changetype: modify
add: objectclass
objectclass: extensibleObject
-
add: mail
mail: moodle@domen.ru
Класс simpleSecurityObject является вспомогательным (AUXILIARY), таких классов в записи может быть сколько угодно.
Кстати, ничего "системного" в записи с классами account и simpleSecurityObject нет -- привилегии даются на уровне ACL, а не объектных классов.
Егор