2009-04-14 12 views
34

Sto provando a sviluppare un'applicazione (C#) per interrogare un server LDAP. Non conosco il vero server chiamato per interrogare - c'è un modo per scoprirlo usando gli strumenti standard di Windows o qualcosa in .net?Come posso sapere quale server ospita LDAP sul mio dominio Windows?

Ho anche sentito dire che avere il nome del server (ldap: // server /) non è sempre necessario fino a quando ho dc = dominio, dc = com nella mia stringa di query, ma ho finora è stato in grado di lavorare in questo modo.

Qualche consiglio?

Grazie

risposta

15

Se stai usando AD è possibile utilizzare serverless binding per individuare un controller di dominio per il dominio predefinito, quindi utilizzare LDAP: // rootDSE per ottenere informazioni sul server di directory, come descritto nell'articolo collegato .

12

Se la macchina in uso fa parte del dominio AD, è necessario che i server dei nomi siano impostati sui server dei nomi AD (o si spera che utilizzino un percorso del server DNS che alla fine risolva i domini AD). Usando il tuo esempio di dc = domain, dc = com, se cerchi domain.com nei server dei nomi AD, restituirà un elenco degli IP di ciascun controller AD. Esempio della mia compagnia (w/il nome del dominio è cambiato, ma per il resto si tratta di un vero e proprio esempio):

 
    mokey 0 /home/jj33 > nslookup example.ad 
    Server:   172.16.2.10 
    Address:  172.16.2.10#53 

    Non-authoritative answer: 
    Name: example.ad 
    Address: 172.16.6.2 
    Name: example.ad 
    Address: 172.16.141.160 
    Name: example.ad 
    Address: 172.16.7.9 
    Name: example.ad 
    Address: 172.19.1.14 
    Name: example.ad 
    Address: 172.19.1.3 
    Name: example.ad 
    Address: 172.19.1.11 
    Name: example.ad 
    Address: 172.16.3.2 

Nota realtà sto facendo la query da una macchina non-AD, ma i nostri assistenti di nome Unix sa di inviare query per il nostro dominio AD (example.ad) oltre ai server DNS AD.

Sono sicuro che c'è un modo super-slick per fare questo, ma mi piace usare il metodo DNS quando ho bisogno di trovare i server LDAP da un server non Windows.

93

AD registra i record di risorse di posizione di servizio (SRV) nel proprio server DNS che è possibile interrogare per ottenere la porta e il nome host del server LDAP responsabile nel proprio dominio.

Basta provare questo sulla riga di comando:

C:\> nslookup 
> set types=all 
> _ldap._tcp.<<your.AD.domain>> 
_ldap._tcp.<<your.AD.domain>> SRV service location: 
     priority  = 0 
     weight   = 100 
     port   = 389 
     svr hostname = <<ldap.hostname>>.<<your.AD.domain>> 

(a condizione che il vostro nameserver è il nameserver dC, che dovrebbe essere il caso per l'AD di funzionare correttamente)

Si prega di consultare Active Directory SRV Records e Windows 2000 DNS white paper per maggiori informazioni.

+0

per chiarire, << your.AD.dominio >> è probabilmente la parte dopo la @ nel tuo indirizzo email. – icfantv

+0

Si potrebbe anche omettere il nome di dominio per recuperare tutti i domini disponibili: C: \> nslookup > tipi di set = tutti > _ldap._tcp _ldap._tcp << >> your.AD.domain1 posizione servizio SRV.: priorità = 0 peso = 100 port = 389 svr hostname = << ldap.hostname1 >>. << >> your.AD.domain1 _ldap._tcp. << >> your.AD.domain2 posizione servizio SRV : priority = 0 peso = 100 port = 389 svr hostname = << ldap.hostname1 >><< your.AD.domain2 –

+0

E ' 'type = all', non tipi – deltree

Problemi correlati