En cuanto a su búsqueda, tengo un par de puntos para usted. Primero, la búsqueda usa objectClass (no indexado) en lugar de objectCategory (indexado). Enorme problema de rendimiento con esa consulta. Se podría casi siempre querer combinar los dos juntos en función de lo que está tratando de recuperar:
(&(objectCategory=person)(objectClass=user)) = All users (no contacts)
(&(objectCategory=person)(objectClass=contact)) = All contacts (no users)
(&(objectCategory=person)) = All users and contacts
Como para buscar los usuarios de un grupo se puede enumerar la lista de objetos miembro del grupo específico. En el atributo de miembro del objeto de grupo es el distinguishedName de cada usuario.
This article describes enumerating members of a group...
no se olvide de que puede que tenga que manejar grupos anidados del grupo principal, ya que no hay una forma predeterminada para manejar esto con consultas LDAP. Para eso puede que necesite evaluar si el objeto miembro es un grupo y luego obtener el atributo de miembro para ese grupo de niños.
Por último, debe tener el hábito de especificar un prefijo dns para su consulta.
Sin prefijo DNS:
LDAP://ou=ouname,dc=domain,dc=com
Con prefijo DNS (los tres trabajos):
LDAP://servername/ou=ouname,dc=domain,dc=com
LDAP://servername.domain.com/ou=ouname,dc=domain,dc=com
LDAP://domain.com/ou=ouname,dc=domain,dc=com
un único dominio no le causará mucho problema, pero cuando tratas de ejecutar una búsqueda en un entorno de dominio múltiple le picarán sin esta adición. Espero que esto te ayude a acercarte más a tu objetivo.
Esa fue una respuesta muy reflexiva. – wcm
Agregar (objectCategory = persona) realmente hizo la búsqueda notablemente más rápida. Muchas gracias. – wcm
Incorrecto. En el atributo de miembro del objeto de grupo se encuentra el distinguishedName de cada usuario, O OTRO ** NOMBRE ** DE GRUPO ... –