Regardez dans le WhoAmI Extended Operation (RFC 4532).
WhoAmI sert vraiment à valider les informations de connexion soumises. Il ne devrait pas affecter ni provoquer de "restrictions de connexion" (que je connais). WhoAmI peut être fait en utilisant un binaire dédié (tel que "ldapwhoami"), ou il peut être fait en utilisant Net :: LDAP :: Extension :: WhoAmI (Perl) ou un autre langage qui supporte les opérations LDAP. Notez que "tester un mot de passe" à l'aide de la fonction "Recherche" est une méthode de test peu judicieuse. Par exemple, si mon DN est "uid = max, ou = utilisateurs, dc = société, dc = com" et que mon mot de passe est "@secret", on pourrait le faire via le binaire dédié sur une machine Linux (Note -ZZ est utilisé pour la confidentialité TLS, ce qui est peut-être non pris en charge ou en option dans votre environnement):
ldapwhoami -x -w "@secret" -D uid=max,ou=users,dc=company,dc=com -ZZ -H ldap://address.of.your.ldapserver/
Si l'utilisateur/pass combinaison est correcte, la réponse est retournée:
dn: uid = max, ou = utilisateurs, dc = entreprise, dc = com
Si la combinaison utilisateur/passe est incorrect, la réponse retournée est (en général):
(49) Pouvoirs non valides
Cela pourrait signifier, comme je l'ai dit, le mot de passe et/ou le nom d'utilisateur est erroné, l'utilisateur n'existe pas ou les listes de contrôle d'accès du serveur LDAP sont rompues de telle sorte que l'authentification n'est pas possible. Plus souvent qu'autrement, c'est le combo utilisateur/passe mal saisi, ou l'utilisateur n'existe pas. En conclusion, l'opération LDAPWhoAmI est une méthode très simple et très légère de validation des informations d'identification. Il fonctionne également via d'autres mécanismes (par exemple, Kerberos Single Sign-On, Digest-MD5, etc.).
Comment vous "comparer" si le mot de passe dans le serveur LDAP est crypté? –
@Ashwinkumar Il existe une fonction spécifique pour comparer un mot de passe. Vous fournissez le mot de passe à tester, il est également crypté, vous pouvez alors comparer les deux valeurs. La distinction est entre essayer de lier avec ces creds, ou appeler explicitement la fonction ldapCompare. – geoffc
hmm .. Dans une question récente j'ai posté http://stackoverflow.com/questions/16168293/how-to-do-password-authentication-for-a-user-using-ldap, on m'a suggéré d'utiliser bind pour le résultat de la recherche avec le mot de passe. Reliure avec les dernières œuvres 'dn'. Cependant, la liaison est essentiellement un 'login'. faire un LDAP 'ldap_compare_s' a échoué. Est-ce que je peux obtenir un mot de passe comparé au mot de passe de l'utilisateur LDAP? –