Не видьте 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
задан 14 July 2014 в 01:51
1 ответ

Похоже, что вы пытаетесь получить значение cn для вашей ldap-записи, когда ни один из объектовClasses, который вы дали, не поддерживает эту запись с помощью 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 и либо 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
0
ответ дан 4 December 2019 в 08:35

Теги

Похожие вопросы