¿Cómo puedo averiguar mi cadena de conexión LDAP?

108

Estamos en una red corporativa que ejecuta el directorio activo y nos gustaría probar algunas cosas de LDAP (proveedor de membresía del directorio activo, en realidad) y hasta ahora, ninguno de nosotros puede descubrir cuál es nuestra cadena de conexión LDAP. ¿Alguien sabe cómo podemos encontrarlo? Lo único que sabemos es el dominio en el que estamos.

Allen
fuente

Respuestas:

101

El proveedor de membresía de Active Directory de ASP.NET realiza un enlace autenticado al Active Directory utilizando un nombre de usuario, contraseña y "cadena de conexión" especificados. La cadena de conexión está compuesta por el nombre del servidor LDAP y la ruta de acceso completa del objeto contenedor donde se encuentra el usuario especificado.

La cadena de conexión comienza con el URI LDAP://.

Para el nombre del servidor, puede usar el nombre de un controlador de dominio en ese dominio, digamos "dc1.corp.domain.com". Eso nos da hasta LDAP://dc1.corp.domain.com/ahora.

El siguiente bit es la ruta totalmente calificada del objeto contenedor donde se encuentra el usuario de enlace. Supongamos que está utilizando la cuenta "Administrador" y el nombre de su dominio es "corp.domain.com". La cuenta "Administrador" se encuentra en un contenedor llamado "Usuarios" ubicado un nivel debajo de la raíz del dominio. Por lo tanto, el DN completo del contenedor "Usuarios" sería la siguiente: CN=Users,DC=corp,DC=domain,DC=com. Si el usuario con el que se vincula está en una unidad organizativa, en lugar de un contenedor, la ruta incluiría "OU = ou-name".

Por lo tanto, el uso de una cuenta en una unidad organizativa denominada Service Accountsque es una sub-unidad organizativa de una unidad organizativa denominada Corp Objectsque es una sub-unidad organizativa de un dominio denominado corp.domain.comtendría una ruta totalmente calificada de OU=Service Accounts,OU=Corp Objects,DC=corp,DC=domain,DC=com.

Combine LDAP://dc1.corp.domain.com/con la ruta completa al contenedor donde se encuentra el usuario de enlace (como, por ejemplo, LDAP://dc1.corp.domain.com/OU=Service Accounts,OU=Corp Objects,DC=corp,DC=domain,DC=com) y obtendrá su "cadena de conexión".

(Puede usar el nombre del dominio en la cadena de conexión en lugar del nombre de un controlador de dominio. La diferencia es que el nombre del dominio se resolverá en la dirección IP de cualquier controlador de dominio en el dominio. Eso puede ser bueno o malo. No depende de ningún controlador de dominio único para que el proveedor de membresía funcione, pero el nombre se resuelve, por ejemplo, en un DC en una ubicación remota con conectividad de red irregular, entonces puede tener problemas con la membresía proveedor trabajando)

Evan Anderson
fuente
Con SBS 2008 al menos, parece que han comenzado a ajustarse al prefijo estándar "OU" en la cadena para las OU: CN = Your Name, OU = Users, DC = example, DC = local Estamos ejecutando el nivel funcional 2003.
gravyface
Gran respuesta. ¿Puedo proporcionar los detalles de inicio de sesión de la cuenta de consulta al controlador de dominio externo en la cadena de conexión?
Dan
¿Quiere decir que la máquina remota que accede a ActiveDirectory debería estar en su propio dominio? ¿Qué pasa si mi máquina local no está en su dominio? Si mi máquina está en un grupo de trabajo, ¿debo pasar 2 credenciales para autenticar a un usuario? Quiero decir, uno para iniciar sesión en la máquina WindowsServer y el otro es validar el nombre de usuario y la contraseña del usuario de ActiveDirectory. Estoy en lo cierto?
Dinesh Kumar P
@DineshKumarP: Tengo algunos problemas para analizarlo. El Proveedor de Membresía usa una credencial válida en el Directorio Activo (AD) para vincularse al Directorio. La computadora que ejecuta el proveedor de membresía no necesita ser miembro de ningún dominio de AD, pero debe configurarla con una credencial válida de AD para que funcione.
Evan Anderson
2
@ArthurRonald: los usuarios sin privilegios pueden vincularse y consultar Active Directory, de forma predeterminada. De hecho, probablemente sea mejor si usa usuarios sin privilegios. Active Directory tiene un modelo de ACL bastante rico, y puede controlar el acceso a objetos y atributos de forma muy granular. Debe vincular con una cuenta que tenga el privilegio suficiente para hacer lo que necesita pero no más.
Evan Anderson el
23

Escriba dsquery /?un símbolo del sistema.

Por ejemplo: dsquery user -name Ja*obtiene las cadenas de conexión para todos los usuarios con nombres que comienzan en Ja *.

ErJab
fuente
Me gusta este enfoque, da el orden correcto de las unidades organizativas y demás. Para que sea obvio, para usar esto tome LDAP: //dc1.corp.domain.com/ y la salida del comando y combínelos para formar una cadena ldap silenciosa fácilmente.
RandomUs1r
3
¿Qué herramientas necesita instalar para usar este comando?
Pred
Pred, mira esta respuesta .
Stas Bushuev
18

Acabo de usar esta herramienta de Softerra (son un excelente navegador LDAP gratuito) para obtener el DN de usuario del usuario actualmente conectado: http://www.ldapbrowser.com/download.htm

salsa
fuente
Paso 1: en el paso "Credenciales", seleccione "Usuario actualmente conectado (solo ActiveDirectory)". Paso 2: Cuando se crea la conexión, en sus Propiedades vaya a la pestaña "Entrada" y copie la URL. Paso 3: use esa URL junto con el DN encontrado con la solución de ErJab.
Nicolas Raoul
7

Siempre tuve problemas para encontrar la forma correcta de escribir la unidad organizativa. El comando dsquery ou domainrootle dará una lista de los nombres correctos de todas las unidades organizativas en su dominio. No estoy seguro de si esto ayudará a una organización más grande.

Nixphoe
fuente
4

Si abre ADSIedit, debería mostrarle la ruta cuando elija Conectarse a ...

ingrese la descripción de la imagen aquí

KERR
fuente
1

Encontré la forma más fácil :

También puedes encontrar desde

Servidor de Active Directory -> Elija la Unidad organizativa OU -> Haga clic derecho -> Propiedades -> Editor de atributos -> Nombre distinguido

Los obtuve de Microsoft Windows Server 2012 R2

Aravin
fuente