
He escrito un código para obtener información del usuario de un servidor Active Directory. Supongamos que el servidor Active Directory tiene nodos, cada uno de los cuales es otra instalación de Active Directory en una ubicación geográfica diferente. Por ejemplo: un servidor AD en EE. UU. y otro en Australia con un servidor AD raíz en EE. UU. con los dos primeros como nodos.
¿Funcionarían las consultas de filtro que escribo para buscar usuarios en ubicaciones geográficas si las ejecuto en el servidor AD raíz? La consulta que uso es
(|(objectClass=user)(objectClass=person)(objectClass=inetOrgPerson))
En realidad no puedo probar este escenario, pero necesito saber qué sucederá aquí.
Respuesta1
El AD es una base de datos distribuida y multimaestra, en términos generales puedes consultar a cualquiera de los Controladores de Dominio sobre un usuario y obtener la misma respuesta en cualquiera de los DC (nodos).
En AD puede configurar la replicación de cambios de datos entre servidores, de modo que si un usuario cambia algún atributo en Australia y consulta algunos datos en el servidor de Nueva York, tal vez obtenga respuestas diferentes. El administrador del dominio puede informarle sobre la replicación de tiempo en el dominio.
Una vez realizada la replicación, tienes la misma información en cualquiera de los DC. Por lo general, los tiempos de replicación son de unos minutos, pero en algunos casos solo se establece en 1 o 2 veces por día.
Espero que esto responda a tu pregunta.
Respuesta2
Su terminología WRT Active Directory no es precisa. Hay dos inquietudes que puedo ver para usted:
- Consultando la réplica más cercana del AD
- Comprender el comportamiento de las consultas en un entorno multidominio
El Catálogo global mantiene un subconjunto del contenido de todos los dominios del bosque. Si su uso del término "nodo" se refiere a dominios dispersos, las consultas en el Catálogo global le permitirán consultar todos los dominios del bosque en una sola consulta (asumiendo que los atributos que está buscando son parte del subconjunto replicado en el GC).
La ubicación de un DC físicamente cercano se logra mediante una combinación de consultas DNS y LDAP. Una búsqueda en Goooooogle sobre "dns ldap buscar el controlador de dominio más cercano" arroja algunos buenos primeros pasos (Encontrar el controlador de dominio más cercano a través de LDAP).
Si está desarrollando en Windows, puede obtener la ubicación del controlador de dominio "gratis" utilizando la API ADSI.
Respuesta3
Lo que no está claro aquí es qué quiere decir con el término "nodo".
- ¿Un único dominio de Active Directory con múltiples controladores de dominio distribuidos geográficamente?
- ¿Un dominio único con unidades organizativas que contienen usuarios y computadoras para cada ubicación geográfica?
- ¿Múltiples dominios que representan varias oficinas regionales de la empresa?
Siempre y cuando consultes controladores de dominiodel mismo dominio, obtendrás la misma respuestaa la misma consultade cualquiera de ellos (aparte de los problemas de replicación).
Pero si tiene varios dominios o si desea consultar subárboles (OU) específicos de un dominio determinado, obtendrá respuestas diferentes.
Respuesta4
Estás seguro de que quieres el "O" "|" operador en la consulta, no tiene sentido. ¿También estás equiparando nodos con dominios?
Además, lo siguiente le dará un ejemplo en el que no necesita código para realizar pruebas.
dsquery * raíz de dominio -filter (|(objectClass=user)(objectClass=person)(objectClass=inetOrgPerson))" -attr *
pero como dije el "O" | El operador no tiene sentido.
Curiosamente encontré un error en el código de respuesta de Serverfaults, será extraño si después de hacer esto desaparece