Не удается увидеть objectClass из пользовательской схемы
Я добавил новую схему на свой ldap-сервер, но когда мне нужно создать запись с пользовательским objectClass и пользовательскими атрибутами, он не видит мои пользовательские вещи. Это просто эксперимент, поэтому OID не важны.
Мой файл custom.schema.ldif
dn: cn=deployment,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: deployment
olcAttributeTypes: ( 1000.1.1.1 NAME ( 'user' )
DESC 'Username of the deployer'
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 1000.1.1.2 NAME ( 'app' )
DESC 'Application name'
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 1000.1.1.3 NAME ( 'port' )
DESC 'Port of the application'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
olcAttributeTypes: ( 1000.1.1.4 NAME 'available'
DESC 'App is available'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )
olcObjectClasses: ( 1000.2.1.1 NAME 'deploymentClass'
DESC 'Deployment class'
MUST ( user $ app $ port $ available )
STRUCTURAL )
Затем я добавил это с:
ldapadd -w123 -x -D "cn=admin,cn=config" -f custom.schema.ldif
После перезапуска сервера я попытался создать записи с этим ldif:
dn: ou=deployment,dc=las,dc=com
objectClass: organizationalUnit
ou: deployment
dn: cn=app1_user1,ou=deployment,dc=las,dc=com
objectClass: deploymentClass
cn: app1_user1
user: user1
app: app1
port: 8888
available: 0
После попытки добавить это:
ldapadd -x -D "cn=admin,dc=las,dc=com" -w123 -f deployment.base.ldif -c
Я получил:
adding new entry "cn=app1_user1,ou=deployment,dc=las,dc=com"
ldap_add: Invalid syntax (21)
additional info: objectClass: value #0 invalid per syntax
После попытки изучить каталог LDAP с помощью браузера LDAP (JXplorer) я не смог найти какие-либо атрибуты или класс объектов, которые я определил. Кто-нибудь может мне помочь?
1 ответ
Похоже, вы пытаетесь cn
значение для вашей записи ldap, когда ни один из объектных классов, которым вы предоставили эту запись, не поддерживает использование cn.
Вы можете попытаться изменить свою схему или изменить саму запись.
dn: app=app1+user=user1,ou=deployment,dc=las,dc=com
objectClass: deploymentClass
user: user1
app: app1
port: 8888
available: 0
В качестве альтернативы, если вы используете core.schema
, memberOf overlay
и либо nis.schema
или же rfc2307bis.schema
Вы можете приготовить что-нибудь без дополнительной схемы.
dn: cn=app1+uid=user1,ou=deployment,dc=las,dc=com
objectClass: ipService
objectClass: uidObect
uid: user1
cn: app1
ipServicePort: 8888
ipServiceProtocol: TCP
dn: cn=available-deployments,ou=deployment,dc=las,dc=com
objectClass: groupOfNames
cn: available-deployments
member: cn=app1+uid=user1,ou=deployment,dc=las,dc=com