Estimado Sergio. Efectivamente hay un usuario creado con esa cuenta dentro de SIU Guarani
Bien
Para ver información de contexto. en el archivo
vendor/siu-toba/framework/php/nucleo/lib/autenticacion/toba_autenticacion_ldap.php en el método autenticar
después de la linea ldap_set_option($conexion, LDAP_OPT_PROTOCOL_VERSION, 3);
Peguen el siguente código
$dump = array( '$conexion' => var_export(get_resource_type($conexion),true),
'$bind' => var_export(@ldap_bind($conexion, $this->bind_dn, $this->bind_pass),true),
'$res_id' => var_export(get_resource_type(@ldap_search($conexion, $this->dn, sprintf($this->filter, $id_usuario))),true),
'$cantidad' => var_export(ldap_count_entries($conexion, @ldap_search($conexion, $this->dn, sprintf($this->filter, $id_usuario))),true),
'$entrada_id' => var_export(get_resource_type(ldap_first_entry($conexion, @ldap_search($conexion, $this->dn, sprintf($this->filter, $id_usuario)))),true),
'$usuario_dn' => var_export(ldap_get_dn($conexion,ldap_first_entry($conexion, @ldap_search($conexion, $this->dn, sprintf($this->filter, $id_usuario)))),true),
'$link_id' => var_export(@ldap_bind($conexion, ldap_get_dn($conexion,ldap_first_entry($conexion, @ldap_search($conexion, $this->dn, sprintf($this->filter, $id_usuario)))), $clave), true),
);
ei_arbol($dump,'autenticar');
Vuelvan a intentar loguearse y adjunten lo que se muestra en pantalla!
Saludos!
8
Estimado, Anexo pantalla.
Hola
Por como se muestran esos datos, puede ser que estén mal definidos el dn o el filter en el archivo ldap.ini.
Intenta poner en el filter
filter = "uid=%s"
Más arriba en un mensaje, esta diferente, no se si sigue igual.
Si esto no soluciona, agrega arriba de ese código que te envié antes, lo siguiente:
$parametros = array( 'dn' => $this->dn,
'filter' => $this->filter
);
ei_arbol($parametros,'parametros');
Saludos
el código quedaría asi?
ldap_set_option($conexion, LDAP_OPT_PROTOCOL_VERSION, 3);
$parametros = array( 'dn' => $this->dn,
'filter' => $this->filter
);
ei_arbol($parametros,'parametros');
$dump = array( '$conexion' => var_export(get_resource_type($conexion),true),
'$bind' => var_export(@ldap_bind($conexion, $this->bind_dn, $this->bind_pass),true),
'$res_id' => var_export(get_resource_type(@ldap_search($conexion, $this->dn, sprintf($this->filter, $id_usuario))),true),
'$cantidad' => var_export(ldap_count_entries($conexion, @ldap_search($conexion, $this->dn, sprintf($this->filter, $id_usuario))),true),
'$entrada_id' => var_export(get_resource_type(ldap_first_entry($conexion, @ldap_search($conexion, $this->dn, sprintf($this->filter, $id_usuario)))),true),
'$usuario_dn' => var_export(ldap_get_dn($conexion,ldap_first_entry($conexion, @ldap_search($conexion, $this->dn, sprintf($this->filter, $id_usuario)))),true),
'$link_id' => var_export(@ldap_bind($conexion, ldap_get_dn($conexion,ldap_first_entry($conexion, @ldap_search($conexion, $this->dn, sprintf($this->filter, $id_usuario)))), $clave), true),
);
ei_arbol($dump,'autenticar');
Si
Anexo resultado
Hola
Que $res_id sea NULL significa que falló búsqueda en el árbol, en el ambiente de test que armamos, nuestro dn = “ou=users,dc=siu,dc=edu” ; ¿En el dn de ustedes ,no estaría faltando un ou ?
Para testear los parametros por linea de comando, pueden ejecutar:
ldapsearch -z 0 -H ldap://192.168.56.5:10389 -W -D "uid=admin,ou=system" -b "ou=users,dc=siu,dc=edu" "(objectclass=*)"
Donde:
-H ldap://192.168.56.5:10389: indica que consulte al servidor LDAP en el puerto 10389 del host.
-W: indica que solicite la contraseña para el método de autenticación simple de manera interactiva.
-D “uid=admin,ou=system”: especifica el usuario con el cual se autentica en el servidor LDAP.
-b “ou=users,dc=siu,dc=edu”: especifica la base desde donde comenzar la búsqueda
“(objectclass=*)”: especifica el filtro para la búsqueda (en este ejemplo todos los objetos, este a su vez es el filtro por defecto).
Debería Responder algo como sigue:
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <ou=users,dc=siu,dc=edu> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# users, siu.edu
dn: ou=users,dc=siu,dc=edu
ou: users
objectclass: top
objectclass: organizationalUnit
# test, users, siu.edu
dn: uid=test,ou=users,dc=siu,dc=edu
samaccountname: test
memberof: admin
objectcategory: User
sn: test
cn: Test User
objectclass: simulatedMicrosoftSecurityPrincipal
objectclass: top
objectclass: person
objectclass: inetOrgPerson
objectclass: organizationalPerson
userpassword:: c2VjcmV0
uid: test
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
Saludos
4
Estimado, ejecute el siguiente comando:
ldapsearch -z 0 -H ldap://10.70.200.201:389 -W -D “CN=ReadUAIAE,OU=Cuentas de servicios,OU=Tecnologia,OU=ACES-PILAR,DC=AUSTRAL,DC=ACES” -b “DC=AUSTRAL,DC=ACES” “(objectclass=*)”
Con respuesta exitosa
Hola
Bien! que devuelve ese comando seguido de "| grep “rcorro”
ldapsearch -z 0 -H ldap://10.70.200.201:389 -W -D "CN=ReadUAIAE,OU=Cuentas de servicios,OU=Tecnologia,OU=ACES-PILAR,DC=AUSTRAL,DC=ACES" -b "DC=AUSTRAL,DC=ACES" "(objectclass=*)" | grep rcorro
Saludos!
la salida de este comando:
ldapsearch -z 0 -H ldap://10.70.200.201:389 -W -D “CN=ReadUAIAE,OU=Cuentas de servicios,OU=Tecnologia,OU=ACES-PILAR,DC=AUSTRAL,DC=ACES” -b “CN=USERS,DC=AUSTRAL,DC=ACES” “(objectclass=*)” | grep -i “rcorro”
proxyAddresses: SMTP:RCorro@austral.edu.ar
sAMAccountName: RCorro
userPrincipalName: RCorro@austral.edu.ar
mail: RCorro@austral.edu.ar
mailNickname: RCorro
targetAddress: SMTP:RCorro@austral.edu.ar
Buenas tardes estimados,
Quedo atento a las próximas acciones.
Hola!
¿Que devuelve el siguiente comando?
ldapsearch -z 0 -H ldap://10.70.200.201:389 -W -D "CN=ReadUAIAE,OU=Cuentas de servicios,OU=Tecnologia,OU=ACES-PILAR,DC=AUSTRAL,DC=ACES" -b "" "(uid=*)" | grep -B 1 -i "uid=rcorro"
Otra cosa que podemos hacer, es poner un var_dump(ldap_error($conexion)) al tratar de recuperar el $res_id en el archivo /vendor/siu-toba/framework/php/nucleo/lib/autenticacion/toba_autenticacion_ldap.php
$res_id = @ldap_search($conexion, $this->dn, sprintf($this->filter, $id_usuario));
if (! $res_id) {
var_dump(ldap_error($conexion)) ;
toba::logger()->error('[Autenticación LDAP] Fallo búsqueda en el árbol: '.ldap_error($conexion));
return false;
}
Saludos
Continuando con lo de Bind = False
3w lo está validando y Guarani no, siendo la misma información de conexión. ¿Que deberia revisar?
Nota: No se ha tocado nada en la configuración
Hola
Podes poner un var_dump(ldap_error($conexion)) al tratar de recuperar el $bind en el archivo /vendor/siu-toba/framework/php/nucleo/lib/autenticacion/toba_autenticacion_ldap.php
$bind = @ldap_bind($conexion, $this->bind_dn, $this->bind_pass);
if (! $bind) {
var_dump(ldap_error($conexion));
toba::logger()->error('[Autenticación LDAP] No es posible conectarse con el servidor: '.ldap_error($conexion));
return false;
}
Se debería ver como la imagen adjunta
Saludos!
Sergio, te comento.
-Hice pruebas nuevamente. w3 con Ldap fue un falso positivo. No esta funcionando.
- Quité las 3 lineas que me dijiste incluir y volvieron los true.
Raul
Por favor generá una solicitud GDS haciendo referencia a este foro
Saludos!