Domanda

Sto riscontrando problemi nell'esecuzione di una query complessa sul nostro server LDAP aziendale. Sto usando il seguente script 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";
}

Mentre i primi due filtri funzionano (come nel restituire i valori previsti), l'ultimo e il complesso no. Restituisce un array vuoto. Ciò che mi ha davvero sconcertato è che la stessa stringa di query funziona esattamente quando la utilizzo con uno strumento come il browser LDAP Softerra.

Ho anche provato la stessa query usando ldap_search & amp; co, inutilmente.

Qualcuno può far luce su questo?

Grazie per aver letto

Holli

Modifica: Questa è la struttura del server:

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

Ho bisogno di un elenco di uid.

È stato utile?

Soluzione

Penso che tu voglia che sia più simile a (& amp; (ou = Personal) (ou = FOO) (o = FOO) (dc = foo) (dc = com)) . Ma non sei affatto chiaro su cosa desideri esattamente, quindi non posso creare un filtro per te.

Modificato per aggiungere: suppongo che questo sia quello che vuoi fare: (|(ou=Personal)(ou=FOO))

Altri suggerimenti

Il motivo è che non vengono fornite stringhe di filtro sintatticamente corrette, ma parti di un DN. Non riesco a immaginare che funzioni in Ldap Browser: mi sono appena provato senza successo.

I primi due sono stringhe di filtro corrette. Filtrano su un singolo attributo oggetto in un " ({attributo} = {valore}) " moda. Il primo (" ou = Personal ") restituirebbe qualsiasi unità organizzativa denominata " Personal " all'interno della tua base di ricerca.

Se spieghi più in dettaglio cosa stai cercando di trovare, posso probabilmente dirti quale espressione di filtro hai bisogno.

Scrivi un filtro conforme a RFC 2254  e poi vedi cosa succede. Non hai bisogno di una query complessa, vuoi un attributo per ogni voce in un ramo. Guarda l'argomento attrs per il metodo di ricerca.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top