LDAP: como fazer referência a outra entrada?

1

Atualmente, estou fazendo um esquema LDAP personalizado para minha organização, mas não consigo encontrar como dar a uma classe de objeto um atributo que permita a você se referir a outra entrada.

Por exemplo: eu tenho uma classe de objeto de inscrição. Tem um atributo que vincula ao usuário cujo registro é. Esse usuário também é uma entrada (object objectclass) no banco de dados LDAP.

Quando procuro aliases, referências e algo assim, mas não consigo descobrir como fazer isso.

Alguém pode me fazer de novo?

    
por Foezjie 14.08.2012 / 18:04

2 respostas

2

.schema format

attributetype ( $OIDNUMBER NAME '$attribute-name'
    DESC '$description-of-attribute'
    SUP distinguishedName )

Ainda será necessário definir um objectclass que may / must use este attributetype .
(No OpenLDAP distinguishedName está embutido no esquema do sistema.)

Isso não é na verdade um aliasing, mas sim um tipo de atributo que permite entradas com valores dn.
O exemplo mais comum disso seria groupOfNames e member de core.schema .

attributetype ( 2.5.4.49 NAME 'distinguishedName'
       EQUALITY distinguishedNameMatch
       SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )

attributetype ( 2.5.4.31 NAME 'member'
        DESC 'RFC2256: member of a group'
        SUP distinguishedName )

objectclass ( 2.5.6.9 NAME 'groupOfNames'
        DESC 'RFC2256: a group of names (DNs)'
        SUP top STRUCTURAL
        MUST ( member $ cn )
        MAY ( businessCategory $ seeAlso $ owner $ ou $ o $ description ) )


dn: cn=postmasters,ou=groups,dc=domain,dc=tld
objectClass: groupOfNames
cn: postmasters
member: uid=user1,ou=users,dc=domain,dc=tld
member: uid=user2,ou=users,dc=domain,dc=tld
    
por 14.08.2012 / 18:51
2

O LDAP não especifica um meio para vincular automaticamente os dados autoritativos de outro objeto ou atributo. Quando você vê aliases e similares no LDAP, eles geralmente são objetos que possuem um atributo que especifica qual objeto deve ser realmente lido no lugar do alias. Isso ocorre porque o LDAP é essencialmente um armazenamento hierárquico de objetos, em vez de um armazenamento de dados relacional. Seguir aliases e semelhantes é um detalhe de implementação do que está lendo os dados do LDAP, em vez de uma função de baixo nível do próprio armazenamento LDAP (embora, às vezes, ambientes altamente abstratos como o eDirectory façam isso sozinhos).

O que você provavelmente quer fazer é algo como o descrito acima, em que você tem um atributo que contém o DN do objeto "vinculado" e garante que qualquer coisa que chame o "link" saiba fazer uma segunda pesquisa do outro DN .

    
por 14.08.2012 / 18:59

Tags