Недавно я установил централизованную систему аутентификации с использованием 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