openldap allop configuração de sobreposição

3

Estou com problemas para fazer a sobreposição de allop funcionar. Eu suspeito que estou faltando alguma opção de configuração vital ou que eu fiz algo incorretamente. Qualquer ajuda é muito apreciada.

Eu preciso usar allop para obter um dispositivo Cisco trabalhando com o ldap usando o atributo memberOf. Eu já tenho o memberOf overlay funcionando corretamente e o atributo memberOf é retornado quando eu consultar com '+'.

Instalei o openldap 2.4.28 no meu servidor LTS Ubuntu 12.04.5 usando o apt-get install. Eu compilei a sobreposição allop da fonte e copiei a biblioteca allop.so para o diretório / var / lib / ldap /.

Esta versão do openldap usa o método olc config.

Eu adicionei o módulo usando o seguinte ldif:

## module.ldif
dn: cn=module,cn=config
cn: module
objectclass: olcModuleList
objectclass: top
olcmoduleload: allop.so
olcmodulepath: /usr/lib/ldap
# sudo ldapadd -Y EXTERNAL -H ldapi:/// -f module.ldif -v

Eu adicionei a configuração de sobreposição usando o seguinte ldif:

## allop.ldif
dn: olcOverlay={2}allop,olcDatabase={1}hdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: {2}allop
# sudo ldapadd -Y EXTERNAL -H ldapi:/// -f allop.ldif -v

Eu reiniciei o slapd e testei, mas os atributos operacionais ainda não foram retornados.

Aqui estão alguns resultados da execução do slapd com o rastreamento de depuração:

54198057 ldif_read_file: read entry file: "/etc/ldap/slapd.d/cn=config/cn=module{3}.ldif"
54198057 => str2entry: "# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 18d7a995
dn: cn=module{3}
objectClass: olcModuleList
objectClass: top
cn: module{3}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}allop.so
structuralObjectClass: olcModuleList
entryUUID: 1e7b5ebe-d252-1033-97f7-618a755f5e4b
creatorsName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
createTimestamp: 20140917010302Z
entryCSN: 20140917010302.779622Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20140917010302Z
"
54198057 >>> dnPrettyNormal: <cn=module{3}>
54198057 <<< dnPrettyNormal: <cn=module{3}>, <cn=module{3}>
54198057 >>> dnNormalize: <gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth>
54198057 <<< dnNormalize: <gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth>
54198057 >>> dnNormalize: <gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth>
54198057 <<< dnNormalize: <gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth>
54198057 <= str2entry(cn=module{3}) -> 0x7f04f45450c8

...

54198057 ldif_read_file: read entry file: "/etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb/olcOverlay={2}allop.ldif"
54198057 => str2entry: "# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 1b6fab9c
dn: olcOverlay={2}allop
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: {2}allop
structuralObjectClass: olcOverlayConfig
entryUUID: 5c207c24-d25a-1033-8da6-db55e5b2e477
creatorsName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
createTimestamp: 20140917020202Z
entryCSN: 20140917020202.176575Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20140917020202Z
"
54198057 >>> dnPrettyNormal: <olcOverlay={2}allop>
54198057 <<< dnPrettyNormal: <olcOverlay={2}allop>, <olcOverlay={2}allop>
54198057 >>> dnNormalize: <gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth>
54198057 <<< dnNormalize: <gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth>
54198057 >>> dnNormalize: <gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth>
54198057 <<< dnNormalize: <gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth>
54198057 <= str2entry(olcOverlay={2}allop) -> 0x7f04f45450c8

Não há nada de interessante na saída de depuração quando executo a consulta, certamente nenhuma mensagem de erro ou algo relacionado a allop.

    
por Andy Ericksen 17.09.2014 / 15:09

2 respostas

1

Você não mencionou isso na sua configuração, mas você tem a opção 'allop-URI' configurada? Se deixado em branco, ele retornará apenas atributos operacionais para ldap:///??base - ou seja, uma base de "" e um escopo "base". Você precisará especificar um padrão para o qual deve retornar os atributos operacionais, como ldap:///??sub

Observe que allop-URI não possui atributos operacionais específicos - é tudo ou nada para o escopo e a base fornecidos.

    
por 04.11.2014 / 14:50
0

Eu resolvi esse problema mudando da configuração do OLC para o slapd.conf. Parece que não há suporte para OLC para allop.

    
por 05.11.2014 / 15:59

Tags