Mire en la operación extendida WhoAmI (RFC 4532).
WhoAmI cumple realmente un propósito: validar las credenciales de enlace enviadas. No debería afectar ni provocar ninguna "restricción de inicio de sesión" (que yo sepa).
WhoAmI se puede hacer usando un binario dedicado (como "ldapwhoami"), o se puede hacer usando Net :: LDAP :: Extension :: WhoAmI (Perl) u otro lenguaje similar que admita operaciones LDAP. Tenga en cuenta que "probar una contraseña" usando alguna función de "Búsqueda" es un método de prueba poco aconsejable.
Por ejemplo, si mi DN es "uid = max, ou = usuarios, dc = compañía, dc = com" y mi contraseña es "@secret", se puede hacer esto a través del binario dedicado en una caja Linux (nota -ZZ se utiliza para la confidencialidad TLS, que es posiblemente sin soporte opcional o en su entorno):
ldapwhoami -x -w "@secret" -D uid=max,ou=users,dc=company,dc=com -ZZ -H ldap://address.of.your.ldapserver/
Si el usuario/pass combinación es correcta, la respuesta devuelta es:
dn: uid = max, ou = usuarios, dc = compañía, dc = com
Si la combinación usuario/pass no es correcta, la respuesta devuelta es (por lo general):
(49) credenciales no son válidas
Esto podría significar, como ya he dicho, la contraseña y/o el nombre de usuario es incorrecto, el usuario no existe o las LCA del servidor LDAP están rotas de tal manera que la autenticación no es posible. En la mayoría de los casos, su combinación de usuario/pase está mal escrita o el usuario no existe.
Para finalizar, la operación LDAPWhoAmI es un método muy ligero y simple de validación de credenciales. También funciona a través de otros mecanismos (por ejemplo, inicio de sesión único de Kerberos, Digest-MD5, etc., etc.).
¿Cómo se "compararía" si la contraseña en el servidor LDAP está encriptada? –
@Ashwinkumar Hay una función específica para comparar las contraseñas. Proporciona la contraseña para probar, está encriptada de manera similar, luego puede comparar los dos valores. La distinción es entre intentar vincularse con estos creds o llamar explícitamente a la función ldapCompare. – geoffc
hmm .. En una pregunta reciente, publiqué http://stackoverflow.com/questions/16168293/how-to-do-password-authentication-for-a-user-using-ldap, me sugirieron utilizar bind para el resultado de búsqueda con la contraseña. Encuadernación con las últimas 'dn' obras. Sin embargo, el enlace es esencialmente un 'inicio de sesión'. haciendo un LDAP 'ldap_compare_s' falló. ¿Hay alguna manera de obtener una contraseña en comparación con la contraseña del usuario de LDAP? –