what validar usuario ldap_connect instalar examples example php ldap

php - validar - Problema LDAP, ldap_bind sintaxis dn no válida



search ldap php (2)

Sé que mi error va a ser algo realmente simple, pero traté de encontrar el problema y no lo veo, tal vez puedas ayudarme ...

Intento crear una función con php, por lo que puedo conectarme a LDAP y encontrar la información deseada.

Mi código php es el siguiente:

$ldapconfig[''host''] = "127.0.0.1"; $ldapconfig[''port''] = NULL; $ldapconfig[''basedn''] = "dc=example,dc=com"; $ldapconfig[''binddn''] = "user"; $ldapconfig[''bindpw''] = "password"; function ldap_authenticate($user, $pass) { global $ldapconfig; ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7); if ($user != "" && $pass != "") { $ds=ldap_connect($ldapconfig[''host''],$ldapconfig[''port'']); if(!ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) { return NULL; } ldap_set_option($ds, LDAP_OPT_REFERRALS, 0); ldap_bind( $ds, $ldapconfig[''binddn''], $ldapconfig[''bindpw'']); $r = ldap_search( $ds, $ldapconfig[''basedn''], ''sAMAccountName='' . $user); if ($r) { $result = ldap_get_entries( $ds, $r); if ($result[0]) { if (ldap_bind( $ds, $result[0][''dn''], $pass) ) { return $result[0][''mail''][0]; } } } } return NULL;

Cuando trato de ejecutar el código me da el siguiente error: ldap_bind sintaxis DN no válida en la línea xxxx y esa línea es la siguiente:

ldap_bind( $ds, $ldapconfig[''binddn''], $ldapconfig[''bindpw'']);


Como se indica en el error, su DN de enlace es el formato incorrecto. Los DN representan la ruta completa al objeto, por lo que en tu caso debería ser algo como esto (parece que estás en AD?)

"cn = nombre de usuario, ou = usuarios de dominio, dc = ejemplo, dc = com"

Dependiendo de su sabor de LDAP (Active Directory, OpenLDAP, etc.), es posible que pueda usar un uid (tan solo ''nombre de usuario'') para enlazar, pero es mejor asumir que siempre necesita el DN completo.

Puede utilizar una herramienta LDAP como Apache Directory Studio para ayudar a generar consultas y averiguar qué DN de objeto son. O también está ldp.exe (siempre que sea AD), pero Directory Studio es más fácil de usar.