无法从自定义架构中看到 objectClass

无法从自定义架构中看到 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 浏览器 (JXplorer) 探索 LDAP 目录后,我找不到我定义的任何属性或对象类。有人能帮帮我吗?

答案1

看起来您正在尝试为cn您的 ldap 条目赋值,但您为该条目指定的 objectClasses 均不支持使用 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.schemarfc2307bis.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

相关内容