Pregunta

Tengo problemas para ejecutar una consulta compleja en el servidor LDAP de nuestra empresa. Estoy usando el siguiente script de Perl:

use Data::Dumper;
use Net::LDAP;

die "Can't connect to LDAP-Server: $@\n" 
    unless $ldap = Net::LDAP->new( 'xLDAPx' );


foreach my $filter ( 'ou=Personal', 'ou=BAR', 'ou=Personal,ou=BAR', 'ou=Personal,ou=FOO,o=FOO,dc=foo,dc=com' )
{ 
    $mesg = $ldap->search( base => "o=FOO,dc=foo,dc=com", filter => $filter );
    print Dumper($mesg), "\n\n";
}

Mientras que los dos primeros filtros funcionan (como para devolver los valores esperados), el último y complejo no lo hace. Devuelve una matriz vacía. Lo que realmente me desconcierta es que exactamente la misma cadena de consulta funciona cuando la uso con una herramienta como el Softerra LDAP Browser.

También he intentado la misma consulta utilizando ldap_search & amp; co, no disponible.

¿Alguien puede arrojar algo de luz sobre esto?

Gracias por leer

holli

Editar: Esta es la estructura del servidor:

Server
    ou=FOO
        ou=...
        ou=Personal
            uid=something

Necesito una lista de uids.

¿Fue útil?

Solución

Creo que quieres que sea más como (& amp; (ou = Personal) (ou = FOO) (o = FOO) (dc = foo) (dc = com)) . Pero no está claro en absoluto qué quiere exactamente, por lo que no puedo crear un filtro para usted.

Editado para agregar: supongo que esto es lo que quieres hacer: (|(ou=Personal)(ou=FOO))

Otros consejos

La razón es que no está proporcionando cadenas de filtro sintácticamente correctas, sino partes de un DN. No puedo imaginar que esto funcione en el navegador Ldap, simplemente lo intenté sin éxito.

Los dos primeros son cadenas de filtro correctas. Se filtran en un solo atributo de objeto en un " ({atributo} = {valor}) " Moda. La primera (" ou = Personal ") devolvería cualquier OU llamada " Personal " dentro de su base de búsqueda.

Si explica con más detalle lo que está tratando de encontrar, probablemente le pueda decir qué expresión de filtro necesita.

Escriba un filtro que se ajuste a RFC 2254  y luego ver que pasa. No necesita una consulta compleja, desea un atributo para cada entrada en una rama. Mire el argumento attrs para el método de búsqueda.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top