Problema ao criar o próprio atributo no openldap

3

Eu tenho problema em criar meu próprio atributo (eg. dateOfExpire-generalized time) e depois adicionar este atributo ao próprio ObjecClass (eg. dormitory) e depois adicionar esse atributo com ObjectClass ao esquema inetorgperson existente.

Isso é o que eu adicionei ao arquivo inetorgperson.ldif:

olcAttributeTypes: ( 2.5.18.1 NAME 'dateOfExpire' DESC 'RFC4512: indicated the date of account expiry' EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SINGLE-VALUE USAGE directoryOperation  SUBSTR cas eIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )

e isso para o arquivo inetorgperson.schema:

attributetype ( 2.5.18.1 NAME 'dateOfExpire'
    DESC 'RFC4512: indicated the date of account expiry'
    EQUALITY generalizedTimeMatch
    ORDERING generalizedTimeOrderingMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
    SINGLE-VALUE
    USAGE directoryOperation )

objectclass ( 2.5.6.6.1 NAME 'dormitory'
    DESC 'RFC2256: a person'
    SUP person
    STRUCTURAL
    MUST ( sn $ cn $ dateOfExpire $ name $ uid )
    MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) )

Depois disso, adiciono este esquema com este comando:

ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f inetorgperson.ldif

Mas só tenho esse erro:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=inetorgperson,cn=schema,cn=config"
ldap_add: Other (e.g., implementation specific) error (80)
additional info: olcAttributeTypes: "2.5.18.1" is operational

Estou muito confuso sobre isso, o que isso significa? O que devo mudar / fazer de forma diferente? Obrigado por todas as suas respostas, estou realmente desesperado com isso.

    
por user1928543 08.05.2017 / 16:46

2 respostas

2

Você marcou o atributo como operacional (com USAGE directoryOperation ), daí o erro.

Os atributos operacionais não devem ser modificáveis pelos usuários; eles exigem que o código seja executado no OpenLDAP para atualizá-los com base em algum tipo de evento.

Além disso, eu recomendaria contra a alteração dos esquemas padrão, como inetOrgPerson, etc., você deve criar seu próprio esquema.

    
por 08.05.2017 / 17:05
0

Cada tipo de atributo e classe de objeto deve ter OIDs exclusivos atribuídos.

Você está reutilizando o OID 2.5.18.1 , que é atribuído ao atributo padrão createTimestamp .

Você também usou o OID 2.5.6.6.1 , que é um arco de OID que você não deve usar porque outros podem atribuir OIDs a ele.

Veja também: FAQ do OpenLDAP: Preciso atribuir um OID a cada item do esquema?

Sua classe de objeto dormitório é do tipo STRUCTURAL . Não será possível adicionar isso a entradas existentes. Use o tipo AUXILIARY .

    
por 21.07.2018 / 00:58

Tags