Sintaxis de LDAP / ActiveDirectory BindDN

8

Estoy solucionando un firewall de hardware basado en Linux para un cliente. Este firewall de hardware se conecta a ActiveDirectory para la autenticación de inicio de sesión único.

ActiveDirectory es largley solo una versión pervertida de LDAP, que yo sepa, y utiliza la misma sintaxis de BindDN: corríjame si me equivoco.

El cliente ha configurado esto como su BindDN: las cadenas reales se han reemplazado por razones de privacidad, pero quedan caracteres especiales y espacios en blanco. "Somerandomplace \ fubar fubaz"

Esto no parece ser una sintaxis válida de BindDN para mí y he trabajado con LDAP antes, pero cuando presionamos el botón Prueba para probar este BindDN, la prueba tiene éxito. Cuando cambio solo uno de los caracteres en BindDN y ejecuto la prueba nuevamente, la prueba falla.

Estoy tratando de averiguar cuál es el problema aquí:

A) Que no entiendo completamente los matices de BindND y la sintaxis asociada

o

B) Que el dispositivo no verifica correctamente las entradas y está identificando falsamente la prueba como exitosa

Chico
fuente

Respuestas:

14

LDAP es solo un protocolo. Y como dijo Greg, la implementación de Microsoft en Active Directory cumple con los diversos RFC que lo definen. (+1 a él)

La respuesta de Doug es parcialmente correcta en el sentido de que da un ejemplo de un Bind DN válido. Pero Active Directory permite específicamente que el valor Bind DN se envíe también como otros formularios. La mejor forma de usar en mi opinión es la UserPrincipalName (UPN)que generalmente está en la siguiente forma a menos que se haya cambiado explícitamente.

El beneficio de esto sobre un valor DN normal es que la cuenta de usuario se puede mover dentro de AD y la aplicación que usa la credencial no tiene que actualizar su configuración.

También puede estar en el formulario de NetBIOS heredado que se ve así y parece ser lo que está utilizando su cliente.

  • <Nombre de dominio NetBIOS> \ <sAMAccountName> (por ejemplo, CONTOSO \ user1)

Esto tiene el mismo beneficio que el valor UPN, pero nuevamente se considera heredado. Los nombres de NetBIOS deberían haber muerto hace mucho tiempo, pero eso es una queja de otro hilo.

Ryan Bolger
fuente
¡Gracias! Este comentario sobre las 3 formas de DN es la pieza del rompecabezas que me faltaba.
Mark E. Haase
No tenía idea de que podría usar UPN como DN LDAP. Dulce.
Jonathon Reinhart
1
Estoy sorprendido de cuántos proveedores de aplicaciones que solo admiten autenticación externa contra AD (a través de LDAP) tampoco lo saben.
Ryan Bolger
2

El enlace DN sería CN = nombre de usuario, CN = Usuarios, DC = sudominio, DC = com para un usuario ubicado en el contenedor Usuarios.

Podría funcionar si solo ingresa el nombre de usuario, ya que probablemente busque la propiedad sAMAccountname si su Active Directory lo sabe. Simplemente no introduzca el nombre de usuario con el dominio.

Doug
fuente
1

La implementación LDAP de Microsoft es compatible. Cualquier carácter es válido en un DN. Si hay caracteres especiales, se deben escapar. No es necesario escapar del espacio en blanco a menos que esté al principio o al final. Un personaje se puede escapar con una barra diagonal inversa o el \ nn equivalente hexadecimal.

Nombres distinguidos
http://msdn.microsoft.com/en-us/library/windows/desktop/aa366101%28v=vs.85%29.aspx

space or # character at the beginning of a string    0x20
space character at the end of a string    0x20
,    comma    0x2C
+    plus sign    0x2B
"    double quote    0x22
\    backslash    0x5C
<    left angle bracket    0x3C
>    right angle bracket    0x3E
;    semicolon    0x3B
LF   line feed    0x0A
CR   carriage return    0x0D
=    equals sign    0x3D
/    forwards slash    0x2F 
Greg Askew
fuente