Integracion con Directorio Activo

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.


error-ldap05.jpg

error-ldap05.png

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


error-ldap06.jpg

error-ldap06.png

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!


bind.png

bind.png

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!