LINUX.ORG.RU
ФорумAdmin

[LDAP]Как допиливать схему для OpenLDAP?

 


0

0

Хочу на локалхосте поставить Foswiki с аутентификацией пользователей по LDAP'ному справочнику. OpenLDAP запустил со схемами core, cosine, inetorgperson и nis. MigrationTools'ами создал и загрузил base.ldif, passwd.ldif и group.ldif. LDIF для каждого пользователя выглядит примерно так:

dn: uid=camel,ou=People,dc=otherdomain,dc=com
uid: camel
cn: camel
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {CRYPT}wF.kUlbCqQE5.
shadowLastChange: 14261
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/camel

То есть атрибутов gn и sn нету, а их хочется добавить, поскольку в Foswiki имена пользователей должны быть из двух слов (например ИмяФамилия или ТролльОбыкновенный). Однако добавить их не получается, выдаёт такую ошибку

ldapadd: Object class violation (65)
additional info: attribute 'givenName' not allowed

Вопрос, как правильно их добавить в схему? Обилие чиселок смущает, всякие OID и SYNTAX. Есть где-нибудь учебник по написанию схем доступный пониманию простых смертных?

★★★★★

А добавление objectClass: inetOrgPerson не помогает? Они, вроде, не конфликтуют по атрибутам с posixAccount.

undertaker ★★
()
Ответ на: комментарий от undertaker

Не помогает.

Нэ понимаю. Посмотрел LDIF на работающем сервере, там у пользователей есть и sn, и gn. Добавил пару objectclass'ов, не помогло.

# cat ldapman.ldif
dn: uid=ldapman,ou=People,dc=otherdomain,dc=com
uid: ldapman
cn: ldapman
gn: Ldap
sn: Man
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
objectClass: person
objectClass: inetOrgPerson
objectClass: organizationalPerson
userPassword: {crypt}$1$h8QSf6XQd4uABqKruOeBi0
shadowLastChange: 14261
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/ldapman

# ldapadd -x -W -D "cn=admin,dc=otherdomain,dc=com" -f ldapman.ldif
adding new entry "uid=ldapman,ou=People,dc=otherdomain,dc=com"
ldapadd: Object class violation (65)
additional info: invalid structural object class chain (account/person)

Camel ★★★★★
() автор топика
Ответ на: комментарий от dimon555

account и person конфликтуют.

Совершенно верно, я уже сам подобрал комбинацию. Вот такой LDIF нормально загружается.

dn: uid=ldapman,ou=People,dc=otherdomain,dc=ru
uid: ldapman
cn: ldapman
gn: Ldap
sn: Man
#objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
objectClass: person
objectClass: inetOrgPerson
№objectClass: organizationalPerson
userPassword: {crypt}$1$h8W5ht/5$CTQSf6XQd4uABqKruOeBi0
shadowLastChange: 14261
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/ldapman


Спасибо вам.

Camel ★★★★★
() автор топика

> Обилие чиселок смущает, всякие OID и SYNTAX.

Присоединяюсь :)

> Есть где-нибудь учебник по написанию схем доступный пониманию простых смертных?

Метод научного тыка мне помогал ;)

const86 ★★★★★
()

Осильте наконец ASN.1. Всё очень упростится :)

zenith ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.