Назад | Перейти на главную страницу

Как изменить / добавить новый объектный класс к записи в OpenLDAP

Недавно я установил централизованную систему аутентификации с использованием OpenLDAP. Теперь мне нужно расширить количество пользователей, определенных в базе данных, чтобы включить новый класс объектов, который содержит некоторые данные о них, связанные с безопасностью. Как я могу изменить существующие записи, чтобы добавить этот новый класс объектов? Я новичок в LDAP, поэтому не откусывайте мне голову, если мне удалось задать глупый вопрос: P Спасибо!

Вот пример файла LDIF для добавления objectClass posixAccount к существующей записи uid=testuser,ou=people,dc=example,dc=com например objectClass inetOrgPerson:

dn: uid=testuser,ou=people,dc=example,dc=com
changetype: modify
add: objectClass
objectClass: posixAccount
-
add: homeDirectory
homeDirectory: /home/testuser
-
add: uidNumber
uidNumber: 1000
-
add: gidNumber
gidNumber: 1000

В - важно отделить Добавить блоки. Необходимо убедиться, что все необходимые атрибуты (для posixAccount homeDirectory, uidNumber, gidNumber) добавляются в тот же файл.

Файл LDIF можно добавить, например, с участием

ldapmodify -x -D 'cn=root,dc=example,dc=com' -W -f filename.ldif

Вы можете запустить ldapmodify чтобы изменить одну или несколько записей, вам просто нужно передать программе учетные данные и файл, содержащий все изменения, которые вы хотите сделать

В качестве примера (взятого прямо из руководства openldap), если ваш файл содержит это, он добавит / изменит все эти поля

dn: uid=john.doe,ou=People,dc=example,dc=com
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: john.doe
givenName: John
sn: Doe
cn: John Doe
mail: john.doe@example.com
userPassword: password

Схему OpenLdap и ObjectClass легко расширить. Загляните внутрь связанной схемы, если есть объект, который вам нужен (находится в файловой системе Debian / etc / ldap / schema)

После того, как вы можете изменить свои сущности ldap и присоединить к ним новый объектный класс (и, соответственно, новые типы атрибутов).

Если вы хотите создать свой собственный тип атрибута и / или свой собственный объектный класс, вам необходимо запросить номер объекта OID (Регистрация OID).

Затем следуйте этой схеме:

objectIdentifier YOUR_OID <IANA NUMBER>
objectIdentifier YOUR_OBJECTCLASS YOUR_OID:1
objectIdentifier YOUR_ATTRIBUTETYPE YOUR_OID:2

Затем определите свой тип атрибута:

attributetype( YOUR_ATTRIBUTETYPE:1 NAME "your attribute name"
    DESC "quick description"
    EQUALITY typoofequality
    SYNTAX valid syntax

И ваш класс объекта:

objectclass(YOUR_OBJECTCLASSS:1 NAME "your objectclass name"
    DESC "quick description"
    SUP top #or another objectclass inheritence
    MUST (list of must attributes, separated by "$")
    MAY (list of may attributes, separated by "$") )

Номер, следующий за YOUR_ATTRIBUTETYPE / YOUR_OBJECTCLASS, должен быть уникальным (т.е. по одному номеру для каждого атрибута)

Для справки взгляните на Открыть спецификацию схемы LDAP