2009-04-14 7 views
34

Estoy intentando desarrollar una aplicación (C#) para consultar un servidor LDAP. No sé el nombre del servidor real para consultar: ¿hay alguna manera de averiguarlo utilizando herramientas estándar de Windows o algo en .net?¿Cómo puedo averiguar qué servidor aloja LDAP en mi dominio de Windows?

También he oído rumores de que tener el nombre del servidor (ldap: // server /) no siempre es necesario, siempre y cuando tenga dc = domain, dc = com en mi cadena de consulta, pero he hasta ahora ha podido trabajar de esta manera.

¿Algún consejo?

Gracias

Respuesta

15

Si está utilizando anuncios, puede utilizar serverless binding para localizar un controlador de dominio para el dominio predeterminado, a continuación, utilizar LDAP: // rootDSE para obtener información sobre el servidor de directorio, como se describe en el artículo enlazado .

12

Si la máquina en la que trabaja forma parte del dominio AD, debe tener sus servidores de nombres configurados en los servidores de nombre AD (o utilizar una ruta de servidor DNS que eventualmente resolverá sus dominios AD). Usando su ejemplo de dc = domain, dc = com, si busca domain.com en los servidores de nombres de AD, devolverá una lista de las direcciones IP de cada controlador AD. Ejemplo de mi compañía (w/el nombre de dominio ha cambiado, pero por lo demás es un ejemplo real):

 
    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 En realidad estoy haciendo la consulta de una máquina que no dC, pero nuestros servidores de nombres UNIX sabe para enviar consultas para nuestro dominio AD (ejemplo.ad) a los servidores AD DNS.

Estoy seguro de que hay una forma de Windows excelente para hacer esto, pero me gusta usar el método DNS cuando necesito encontrar los servidores LDAP de un servidor que no sea de Windows.

93

AD registra registros de recursos de ubicación de servicio (SRV) en su servidor DNS que puede consultar para obtener el puerto y el nombre de host del servidor LDAP responsable en su dominio.

Intenta esto en la línea de 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 condición de que el nombre del servidor es el servidor de nombres AD que debería ser el caso de la AD funcione correctamente)

favor ver Active Directory SRV Records y Windows 2000 DNS white paper para más información.

+0

para aclarar, el << your.AD.domain >> es probablemente la parte posterior a @ en su dirección de correo electrónico. – icfantv

+0

También puede omitir el nombre de dominio para recuperar todos los dominios disponibles: C: \> nslookup > tipos de conjuntos = all > _ldap._tcp _ldap._tcp << >> your.AD.domain1 ubicación de servicio SRV.: prioridad = 0 peso = 100 puerto = 389 svr nombrehost = << ldap.nombrehost1 >>. << su.AD.domain1 >> _ldap._tcp. << su.AD.domain2 >> ubicación del servicio SRV : prioridad = 0 peso = 100 = 389 puerto SVR nombre de host = << >><< ldap.hostname1 your.AD.domain2 –

+0

es 'type = all', no tipos – deltree

Cuestiones relacionadas