Não é possível adicionar atributos personalizados no OpenLDAP

1

Gostaria de adicionar atributos personalizados no OpenLDAP, mas talvez não entenda o conceito. O que eu fiz foi:

Eu criei o custom.schema

attributetype ( 1.3.6.1.4.1.4203.666.100.122
        NAME ( 'dateOfBirth' )
        SUP name
        )

attributetype ( 1.3.6.1.4.1.4203.666.100.123
        NAME ( 'IPPhone' )
        SUP name
        )

objectclass     ( 1.3.6.1.4.1.4203.666.100.1
    NAME 'customAttributes'
        DESC 'Custom attributes class'
    )

eu adicionei ao slapd.conf

include         /usr/local/etc/openldap/schema/custom.schema

E agora eu gostaria de atribuir essa classe de objeto a todos os uid que eu tenho no banco de dados atual. Então eu despejei o db, adicionei o atributo objectclass a algum uid e, enquanto importava o LDIF, o ldap diz:

65) invalid structural object class chain (inetOrgPerson/customAttributes)

A entrada do LDIF é assim:

dn: dc=sss,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: sss.com
dc: sss
structuralObjectClass: organization

dn: ou=People,dc=sss,dc=com
objectClass: organizationalUnit
ou: People
structuralObjectClass: organizationalUnit


dn: uid=zzz,ou=People,dc=sss,dc=com
objectClass: posixAccount
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: customAttributes
structuralObjectClass: inetOrgPerson
...

Poderia, por favor, me navegar como posso adicionar esses atributos personalizados?

    
por John 25.10.2011 / 14:52

3 respostas

5

Aparece no erro cadeia de classes do objeto estrutural inválido que há uma violação da regra objectClass STRUCTURAL. Sem declaração em contrário, o seu customAttributes objectClass está sendo visto como um objectClass STRUCTURAL que não pode ser e ainda funciona junto com o inetOrgPerson. Eu recomendaria tentar alterar seu esquema para algo semelhante ao seguinte:

objectclass     ( 1.3.6.1.4.1.4203.666.100.1
    NAME 'customAttributes'
    AUXILIARY
    DESC 'Custom attributes class'
    MAY (dateofBirth $ IPPhone)
)

Para mais explicações, li sobre causas comuns de erros no LDAP Guia . Além disso, uma olhada superficial no esquema que você está tentando criar poderia usar um pouco mais de reflexão na organização. Geralmente é aconselhável ter entidades objectClass sob uma árvore e entidades attributeType sob outra para evitar confusões e colisões.

    
por 25.10.2011 / 18:16
1

sua nova classe de objeto precisa referenciar os novos atributos. Geralmente feito como uma cláusula MAY

objectclass     ( 1.3.6.1.4.1.4203.666.100.1
    NAME 'customAttributes'
    DESC 'Custom attributes class'
    MAY (dateofBirth $ IPPhone)
)

Pode haver outros requisitos. O guia de administração do OpenLDAP é o melhor lugar para começar. aqui está a informação da turma

    
por 25.10.2011 / 15:28
0

Você modificou o esquema de acordo com as postagens acima? E, além disso, o arquivo .schema é legível e tem as permissões corretas?

O syslog (ou arquivo de log do slapd) dá algum erro ao reiniciar?

    
por 25.10.2011 / 21:27

Tags